安装多个 PHP 版本(PHP7, PHP5)
安裝 PHP 5.6
PHP 5 和 PHP 7 的安裝其實是大同小異。目前最新版本是 php-5.6.21。先下載源碼:
[root@lnmp ~]# cd /usr/local/src
[root@lnmp src]# wget -c http://cn2.php.net/distributions/php-5.6.21.tar.gz
解壓:
[root@lnmp src]# tar -zxvf php-5.6.21.tar.gz
configure. 其中安裝路徑為 /usr/local/php5:
[root@lnmp src]# cd php-5.6.21/
[root@lnmp php-5.6.21]# ./configure? --prefix=/usr/local/php5 --enable-fpm --with-mysql? --with-mysqli --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --enable-mbstring --enable-xml --enable-session --enable-ftp --enable-pdo
安裝:
[root@lnmp php-5.6.21]# make
[root@lnmp php-5.6.21]# make install
配置 PHP 5.6
[root@lnmp php-5.6.21]# cp php.ini-development /usr/local/php5/lib/php.ini
[root@lnmp php-5.6.21]# vim /usr/local/php5/lib/php.ini
查找 mysql.default_socket 改成
mysql.default_socket = /var/lib/mysql/mysql.sock
查找 mysqli.default_socket 改成:
mysqli.default_socket = /var/lib/mysql/mysql.sock
根據自己需要修改時區,查找 date.timezone,將前面的 ; 去掉,改成:
date.timezone = PRC
好了,PHP 5.6 已經安裝完成:
root@lnmp php-5.6.21]# /usr/local/php5/bin/php -v
PHP 5.6.21 (cli) (built: May 18 2016 17:31:13)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
配置 php-fpm
[root@lnmp php-5.6.21]# cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf
[root@lnmp php-5.6.21]# vim /usr/local/php5/etc/php-fpm.conf
查找 user 將
user = nobody
group = nobody
改成
user = nginx
group = nginx
查找 listen 將
listen = 127.0.0.1:9000
改成
listen = 127.0.0.1:9001
這里是因為 PHP 7 已經占用了 9000 端口,所以用 9001 端口
配置 php-fpm 服務
因為 PHP 7 的服務文件為 php-fpm.service 所以這里用 php5-fpm.service
[root@lnmp php-5.6.21]# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/php5-fpm.service
[root@lnmp php-5.6.21]# vim /usr/lib/systemd/system/php5-fpm.service
將:
PIDFile=${prefix}/var/run/php-fpm.pid
ExecStart=${exec_prefix}/sbin/php-fpm --nodaemonize --fpm-config ${prefix}/etc/php-fpm.conf
改成
PIDFile=/usr/local/php5/var/run/php-fpm.pid
ExecStart=/usr/local/php5/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php5/etc/php-fpm.conf
這里做的就是用剛才 PHP 5 安裝路徑替代 prefix 變量
重新載入 systemd
[root@lnmp php-5.6.21]# systemctl daemon-reload
可以設置開機啟動:
[root@lnmp php-5.6.21]# systemctl enable php5-fpm
立即啟動 php-fpm
[root@lnmp php-5.6.21]# systemctl start php5-fpm
查看狀態:
[root@lnmp php-5.6.21]# systemctl status php5-fpm
php5-fpm.service - The PHP FastCGI Process Manager
?? Loaded: loaded (/usr/lib/systemd/system/php5-fpm.service; disabled)
?? Active: active (running) since Wed 2016-05-18 18:06:40 CST; 28s ago
?Main PID: 5867 (php-fpm)
?? CGroup: /system.slice/php5-fpm.service
?????????? ├─5867 php-fpm: master process (/usr/local/php5/etc/php-fpm.conf)
?????????? ├─5868 php-fpm: pool www
?????????? └─5869 php-fpm: pool www
May 18 18:06:40 lnmp.cn systemd[1]: Started The PHP FastCGI Process Manager.
[root@lnmp php-5.6.21]#
配置不同的 nginx 站點使用不用的 PHP 版本
為網站創建一個目錄:
[root@lnmp php-5.6.21]# mkdir -p /www/dev.lnmp.cn
創建 phpinfo 文件
[root@lnmp php-5.6.21]# vim /www/dev.lnmp.cn/phpinfo.php
輸入,并保存:
<?php
phpinfo();
創建 nginx 站點配置文件
[root@lnmp php-5.6.21]# cd /etc/nginx/conf.d/
[root@lnmp conf.d]# vim dev.lnmp.cn.conf
輸入,并且保存:
server {
??? listen?????? 80;
??? server_name? dev.lnmp.cn;
??? root???????? /www/dev.lnmp.cn;
??? location / {
??????? index? index.php index.html index.htm;
??? }
??? location ~ \.php$ {
??????? fastcgi_pass?? 127.0.0.1:9001;
??????? fastcgi_index? index.php;
??????? fastcgi_param? SCRIPT_FILENAME? $document_root$fastcgi_script_name;
??????? include??????? fastcgi_params;
??? }
}
控制那個站點使用那個版本的 PHP 關鍵是在 fastcgi_pass 的端口:
fastcgi_pass?? 127.0.0.1:9001;
9001 是 PHP 5 端口,如果要用 PHP 7,則用 9000端口。
應該大功告成了,立即 reload nginx
[root@lnmp conf.d]# systemctl reload nginx
查看 phpinfo
總結
以上是生活随笔為你收集整理的安装多个 PHP 版本(PHP7, PHP5)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: F28335第一篇——看门狗的开断
- 下一篇: 手把手教你学SVN