Write the Code. Change the World.

3月 19

本来 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 来访问。

发表评论

电子邮件地址不会被公开。 必填项已用*标注