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

标签 php apache centos7 centos-web-panel

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

系统:Centos 7,带 Centos Web 面板 (CWP)、PHP 5.6/7.0/7.1/7.2、Apache 2.4

我的 PHP 版本位于 /opt/alt/phpXX/usr 下,即 /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

非常感谢

最佳答案

我想我已经解决了...希望我昨天发布了这个问题...你总是在发布后立即解决...!

我基本上按照本指南设置了自己的 systemd 服务,指向 php-fpm 可执行文件 - 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 正常启动、启用、重新启动服务即可。

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

关于php - PHP-FPM 的多个版本,安装和配置...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48709936/

相关文章:

php - MySql - 使用 IF ELSE 进行动态表选择

php - 如何为codeigniter项目完美设置虚拟主机?

apache - 将环境变量设置为 cookie (apache)

docker - Docker:交易检查错误

javascript - 根据 Internet 可用性从在线样式表切换到离线样式表

php - 异常 : Handshake Failed(Android-studio, 联机数据库)

php - Magento 处理您的请求时出错

ruby-on-rails - Rails 应用程序未在默认的 80 端口上运行。但在 80 以外的所有端口上运行

centos - 挂载文件时获取权限被拒绝错误

apache - 如何为 easyapache 4 安装 mod_cloudflare