2

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

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

我在/opt/alt/phpXX/usrie下有我的 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)安装的默认包。它的二进制文件从 and 运行和/usr/sbin读取。/etc/php-fpm.d/xxx.conf/etc/php.ini

问题..

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

非常感谢

4

1 回答 1

2

认为我已经对其进行了排序...希望我昨天发布了这个问题...您总是在发布后立即弄清楚...!

我基本上按照本指南设置了指向 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 正常启动、启用、重新启动服务。

希望对其他人有所帮助...

于 2018-02-09T17:26:22.457 回答