apache — Несколько версий PHP-FPM, установка и настройка …?

Я должен был спросить здесь несколько дней назад — я пытался получить несколько версий PHP-FPM, работающих на разных виртуальных хостах.

Система: Centos 7 с веб-панелью Centos (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-FPM, расположенный в соответствующей установке PHP, т.е. /opt/alt/php72/usr/sbin/php-fpm?

Большое спасибо

1

Решение

Думаю, я все разобрал … хотел бы я вчера опубликовал этот вопрос … вы всегда разбираетесь в этом сразу после публикации …!

В основном я настроил свой собственный сервис 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.

Надеюсь, что это помогает другим …

1

Другие решения

Других решений пока нет …