多个版本的PHP-FPM,安装和配置......?

时间:2018-02-09 16:16:06

标签: php apache centos7 centos-web-panel

我几天前应该问过这个问题 - 我一直试图在不同的虚拟主机下运行多个版本的PHP-FPM。

系统:Centos 7 w / Centos Web Panel(CWP),PHP 5.6 / 7.0 / 7.1 / 7.2,Apache 2.4

我在/opt/alt/phpXX/usr下有我的PHP版本,即/opt/alt/php72/usr

虚拟主机内容示例(网站在PHP7.2下运行): -

<Directory "/home/bbb/public_html">
    AddHandler application/x-httpd-php72 .php
    AllowOverride All
</Directory>

到目前为止,我尝试将其添加到虚拟主机......

<IfModule proxy_fcgi_module>
    <FilesMatch \.(phtml|php[0-9]*)$>
        SetHandler proxy:unix:/opt/alt/php72/usr/var/run/php-fpm/bbb.sock|fcgi://bbb
    </FilesMatch>
</IfModule>

但是在服务器上运行的PHP-FPM服务是通过yum(版本5.4.16)安装的默认包。它的二进制文件从/usr/sbin运行,并从/etc/php-fpm.d/xxx.conf/etc/php.ini读取。

问题..

如何启动/运行位于相应PHP安装中的实际PHP-FPM可执行文件,即/opt/alt/php72/usr/sbin/php-fpm

非常感谢

1 个答案:

答案 0 :(得分:1)

想想我已经对它进行了排序......希望我昨天发布这个问题......你总是在发布后立即弄明白......!

我基本上设置了我自己的指向php-fpm可执行文件的systemd服务,遵循本指南 - https://scottlinux.com/2014/12/08/how-to-create-a-systemd-service-in-linux-centos-7/

我在系统上复制了另一个php-fpm服务的内容,在/usr/lib/systemd/system/php72-phpfpm.service中创建了一个新服务,这就是我想出来的......

[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=simple
#PIDFile=/usr/local/cwp/php71/var/run/cwp-php-fpm.pid
ExecStart=/opt/alt/php72/usr/sbin/php-fpm --nodaemonize --fpm-config /opt/alt/php72/usr/etc/php-fpm.conf -R
ExecReload=/bin/kill -USR2 $MAINPID
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

然后使用systemctl正常启动,启用,重启服务。

希望能帮助别人......