下載最新的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服務即可。