- 准备工作
在编译安装PHP之前,需要安装好所需的依赖库,如mysql、openssl等。安装命令如下:
yum install -y zlib-devel libxml2-devel libjpeg-devel libpng-devel libmcrypt-devel openssl-devel mysql-devel freetype-devel libcurl-devel libxslt-devel bzip2-devel;
- 配置选项
在准备好依赖库之后,需要配置编译选项。进入PHP的源码目录,执行如下命令:
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/png --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-exif --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl=/usr/local/openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-ftp --enable-intl --with-xsl;
- 编译和安装
配置好编译选项之后,执行如下命令进行编译和安装:
make && make install
过程中可能会出现如下常见错误及解决办法。
- “configure: error: libpng.(a|so) not found” 错误解决办法
出现这个错误是因为缺少libpng库。可以通过如下命令安装:
yum install -y libpng-devel
- “configure: error: jpeglib.h not found” 错误解决办法
出现这个错误是因为缺少jpeg库。可以通过如下命令安装:
yum install -y libjpeg-devel
- 示例1:
假设安装PHP过程中出现"configure: error: OpenSSL version 1.0.1 or greater required",我们需要先卸载OpenSSL,然后重新安装1.0.1或更高版本。
卸载OpenSSL命令如下:
yum remove openssl*
安装OpenSSL 1.0.1或更高版本命令:
wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
tar -zxvf openssl-1.0.2l.tar.gz
cd openssl-1.0.2l
./config shared zlib --prefix=/usr/local/openssl
make && make install
重新配置和编译PHP即可。
- 示例2:
假设PHP编译安装后,在使用pecl安装扩展时出现了"cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly"错误,这是因为缺少了autoconf。我们可以通过如下命令安装:
yum install autoconf
安装完成后,再次尝试安装扩展即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CentOS编译安装PHP常见错误及解决办法 - Python技术站