本来
php7.3
使用的蛮好的。突然有一个旧项目,框架所使用的 php 版本是php5.6
。这个时候就尴尬了。不可能一一去修改源码。这个时候,就得再安装一个php5.6
。还好 nginx 配合多版本 php 使用非常的方便。
PHP 下载地址: http://php.net/releases/
下载编译安装
# 还是一样,习惯将文件下载的 `/usr/local/src` 下
cd /usr/local/src
wget http://cn2.php.net/get/php-5.6.40.tar.gz
tar -xzvf php-5.6.40.tar.gz
cd php-5.6.40
# 下边就开始配置
配置如下:
# 因为之前有一个 /alidata/service/php 目录,这里使用 php5.6 加以区分
./configure --prefix=/alidata/service/php5.6 \
--with-config-file-path=/alidata/service/php5.6/etc \
--enable-inline-optimization --disable-debug \
--disable-rpath --enable-shared --enable-opcache \
--enable-fpm --with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--enable-session \
--enable-ftp \
--enable-xml \
--with-curl --with-zlib \
--enable-zip \
--with-bz2 \
--enable-pdo \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-readline
注意要使用的库一定要带上。比如 gd 库。要不额外弄,伤脑筋。
然后执行:
make && make install
# 直到安装结束
cp php.ini-production /alidata/service/php5.6/etc/php.ini
/alidata/service/php5.6/bin/php -v
PHP 5.6.40 (cli) (built: Mar 19 2019 15:21:19)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
cd /alidata/service/php5.6/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
将 listen = 127.0.0.1:9000
改成 listen = 127.0.0.1:9001
,因为 9000 已经被 php7 使用了。
配置 php-fpm 服务
因为 PHP 7 的服务文件为 php-fpm.service 所以这里用 php5-fpm.service
cd /usr/local/src/php-5.6.40
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/php5-fpm.service
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=/alidata/service/php5.6/var/run/php-fpm.pid
ExecStart=/alidata/service/php5.6/sbin/php-fpm --nodaemonize --fpm-config /alidata/service/php5.6/etc/php-fpm.conf
然后
# 重新载入
systemctl daemon-reload
# 设置开机启动
systemctl enable php5-fpm
# 开机启动
systemctl start php5-fpm
结束
到这里,安装配置已经完成。然后修改 nginx 的配置。只需要将
location ~ \.php($|/) {
fastcgi_pass 127.0.0.1:9000;
……
}
改成
location ~ \.php($|/) {
fastcgi_pass 127.0.0.1:9001;
……
}
再重启 nginx /alidata/service/nginx/sbin/nginx -s reload
。
另外,用户组,根据自己环境来。还有,这里没有配置环境变量。因为 php7 有了。这里通过 /alidata/service/php5.6/bin/php
来访问。