下载最新的PHP版本,此时的PHP最新版本为php-7.1.7
首先先装上一堆依赖:
[root@localhost src]# yum -y install php-mcrypt libmcrypt libmcrypt-devel autoconf freetype gd jpegsrc libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel
开始安装PHP7:
[root@localhost src]# tar -zxvf php-7.1.7.tar.gz
[root@localhost src]# cd php-7.1.7
[root@localhost php-7.1.7]# ./configure \
> --prefix=/usr/local/php7 \
> --with-config-file-path=/usr/local/php7/etc \
> --with-apxs2=/usr/local/apache2/bin/apxs \
> --with-pdo-mysql=mysqlnd \
> --with-mysqli=mysqlnd \
> --with-mysql-sock=/var/lib/mysql/mysql.sock \
> --with-libxml-dir=/usr/local/libxml2 \
> --with-png-dir=/usr/local/libpng \
> --with-jpeg-dir=/usr/local/jpeg \
> --with-freetype-dir=/usr/local/freetype \
> --with-gd=/usr/local/gd \
> --with-zlib-dir=/usr/local/zlib \
> --with-mcrypt=/usr/local/libmcrypt \
> --with-xpm-dir=/usr/lib64 \
> --enable-soap \
> --enable-mbstring=all \
> --enable-mysqlnd \
> --enable-sockets \
> --enable-fpm \
> --enable-fastcgi \
> --enable-opcache
上面编译时配置支持了很多东西,可按需要进行添加,检查没有错误,就可以进行安装,若有错误,则根据提示依次安装相关依赖库。
然后就可以开始编译安装了:
[root@localhost php-7.1.7]# make
[root@localhost php-7.1.7]# make install
安装完成后,将源码包中的配置文件复制到PHP安装目录下
[root@localhost php-7.1.7]# cp php.ini-development /usr/local/php7/etc/php.ini
复制php-fpm配置文件:
[root@localhost php-7.1.7]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
[root@localhost php-7.1.7]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
复制php-fpm启动脚本,用于启动php-fpm
[root@localhost php-7.1.7]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm
[root@localhost php-7.1.7]# chmod 755 /etc/init.d/php7-fpm
启动php-fpm:
[root@localhost php-7.1.7]# /etc/init.d/php7-fpm start
php-fpm支持的操作:
start:启动PHP的FastCGI进程
stop:强制终止PHP的FastCGI进程
quit:平滑终止PHP的FastCGI进程
restart:重启PHP的FastCGI进程
reload:重新加载PHP的php.ini
logrotate:重新启用log文件
切换PHP版本,修改PHP的环境变量:
[root@localhost php-7.1.7]# vim /etc/profile
PATH=/usr/local/php/bin:$PATH
export PATH
将这里的路径切换成PHP7的安装路径,即可切换成php7的版本了
[root@localhost php-7.1.7]# source /etc/profile
当需要为PHP添加扩展时,在Linux下需要进行编译,例如安装openssl扩展:
首先进入源码安装包中ext下的openssl目录中
[root@localhost openssl]# phpize
发现会报错:
Cannot find config.m4. Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module
这时需要再将该目录下的config0.m4复制到config.m4中
[root@localhost openssl]# cp config0.m4 config.m4
[root@localhost openssl]# phpize
[root@localhost openssl]# ./configure --with-php-config=/usr/local/php7/bin/php-config
[root@localhost openssl]# make
[root@localhost openssl]# make install
然后再修改php.ini添加extension=openssl.so即可
此时若重启Apache,则会报如下错误:
/etc/init.d/httpd: line 80: 1612 Segmentation fault $HTTPD -k $ARGV
这是因为Apache配置模块加载错误导致的,修改Apache配置文件httpd.conf:
#LoadModule php5_module module/libphp5.so
LoadModule php7_module module/libphp7.so
此时再次重启httpd服务即可。