centos php7 php5 共存,CentOS 7 和 Nginx 下实现多版本 PHP 的共存

最近想安装 Discuz! X3.2

因为服务器只安装了 PHP 7, 而 Discuz! X3.2 没记错的话应该是 14 年的产品了, 所以肯定不支持 PHP 7

所以这里就需要 PHP 5

在网上搜了一下, 没有搜到很好的教程, 很多教程安装下来都有很多莫名其妙的错误, 所以决定自己动手实践

使用 yum 安装肯定是不可能了, 因为已经存在一个 PHP 7 了, 所以这里用编译安装

首先去 php.net 下载最新版本的 PHP 5

到发稿为止, 最新的 PHP 5 版本是 PHP 5.6.31

需要选择合适的下载地址, 否则下载会很慢

由于这台服务器在香港, 所以选择香港的下载地址

首先随意点击一个下载地址进行下载

0f6df2b28050f8e589abf718f2702e22.png

然后让下载停止, 并且拷贝下载链接

或者是直接下载到本地然后上传到服务器, 这里采用 wget 下载

d2d460d0221ad9aa402865ca7b5e4d0e.png

拷贝地址之后得到这样的下载地址 :

补充 :

你的服务器在哪个国家, 只要前面加上缩写前缀就可以了

然后进入服务器, 进入你要下载存放的目录

输入命令 :

wget http://cn.php.net/distributions/php-5.6.31.tar.gz

97329141beede9bb96cf8ecbef3e7806.png

下载完成之后, 解压

tar zxvf php-5.6.31.tar.gz

33526b69c1ef6690dda88879c0571079.png

之后进入 PHP-5.6.30 目录

cd php-5.6.31

接下来可以进行 PHP 5 的安装了

PHP 5 的安装由于采用编译安装, 所以会比 PHP 7 的 yum 安装要麻烦一点

首先进行配置

但是配置需要在一定的环境中进行, 所以这里需要安装环境和依赖

yum install -y gcc gcc-c++ libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel sqlite-devel bzip2-devel libXpm-devel libmcrypt libmcrypt-devel libcurl libcurl-devel libicu libicu-devel icu

之后输入命令

./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 --enable-mbregex --enable-phar --enable-posix --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-zip --enable-inline-optimization --enable-intl --with-icu-dir=/usr --with-gd --with-xpm-dir --with-bz2 --with-gettext --with-iconv --with-mcrypt --with-mhash --with-zlib --with-pcre-regex --with-regex

--prefix=要安装的目录

这条命令是 PHP 5 的安装路径, 可以自行选择, 修改之后后面也要记得修改

补充 :

PHP 5.5 的安装命令

./configure --prefix=/usr/local/php55 --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 --enable-mbregex --enable-phar --enable-posix --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-zip --enable-inline-optimization --enable-intl --with-icu-dir=/usr --with-gd --with-xpm-dir --with-bz2 --with-gettext --with-iconv --with-mcrypt --with-mhash --with-zlib --with-pcre-regex --with-regex

PHP 5.4 的安装命令

./configure --prefix=/usr/local/php54 --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 --enable-mbregex --enable-phar --enable-posix --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-zip --enable-inline-optimization --enable-intl --with-icu-dir=/usr --with-gd --with-xpm-dir --with-bz2 --with-gettext --with-iconv --with-mcrypt --with-mhash --with-zlib --with-pcre-regex --with-regex

这里包含了很多组建, 可以通过自己的需要只挑选自己需要的组件

看到和如下一样的图表示配置已经完成

148d8bbafcf77f7b8e0e601936a44e6b.png

接下来进行编译

make

这一步花费的时间非常长, 耐心等待就可以了

22b5c781a572dd47b2d5452363941583.png

如果看到这一步就说明已经编译成功了

补充 : PHP 5.4 安装的时候, 会提示

configure: error: libXpm.(a|so) not found.

这是因为我们的系统是 64 位的

需要执行下面的命令 :

ln -s /usr/lib64/libXpm.so* /usr/lib/

接下来安装就可以了

make install

6042a72eaaa19382d9126c1de26eee89.png

接下来要对一些文件进行配置

创建 PHP 配置文件, 并且编辑

cp php.ini-development /usr/local/php5/lib/php.ini

vi /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 上传限制, 找到

max_execution_time

将后面的 30 改成 0

找到

post_max_size

将后面的数字改成你想要的, 单位 M

找到

upload_max_filesize

将后面的数字改成你想要的, 单位 M

到此为止 PHP 的配置已经完成了, 接下来配置 PHP-FPM

首先创建 PHP-FPM 的配置文件

cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf

并且编辑

vi /usr/local/php5/etc/php-fpm.conf

找到

user = nobody

group = nobody

将其中的 nobody 改为 nginx

user = nginx

group = nginx

找到

listen = 127.0.0.1:9000

改为

listen = 127.0.0.1:9001

因为 PHP 7 的 PHP-FPM 已经占用了 9000 端口, 这里给 PHP 5 分配 9001端口

接下来配置 PHP-FPM 服务

cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/php5-fpm.service

并且编辑

vi /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

其中的

${prefix}

${exec_prefix}

改为你刚刚安装 PHP 5 的路径

如果按照本文方式安装, 即

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

重新载入 systemd

systemctl daemon-reload

启动 PHP5-FPM

systemctl start php5-fpm

如果要设置开机启动

systemctl enable php5-fpm

接下来用 PHP 信息页对 PHP 5 的安装进行测试

在建立 info.php 信息页和配置完 Nginx 配置文件之后

输入网址, 就可以看到是否共存正常

8592ab54aed69ec53f1a4b9ec68240b9.png

67d292ea9319b27570c03a67d9515c80.png

值得提醒的是, 在配置 Nginx 的过程中, 由于 PHP 5 对应的端口是 9001, 并不是 9000

所以, 需要将 Nginx 配置文件中的

fastcgi_pass 127.0.0.1:9000;

改为

fastcgi_pass 127.0.0.1:9001;

以下是一份完整的实例

server {

listen 80;

server_name php5-demo.jonny.website;

root /www/php5-demo;

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 5 上运行了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值