Устанавливаем одновременно две разные версии php-fpm для разных виртуальных хостов
Купить виртуалку под VPN можно тут
[bash title=»код»]yum install php73-php-fpm
yum install php56-php-fpm[/bash]
Делаем автозапуск
[bash title=»код»]chkconfig php73-php-fpm
chkconfig php56-php-fpm[/bash]
Конфиги php-fpm
[bash title=»код»]/etc/opt/remi/php73/php-fpm.d/www.conf
/opt/remi/php56/root/etc/php-fpm.d/www.conf[/bash]
Для одновременного запуска, на одном из конфигов меняем порт. Стандартный 9000б ставим на версию 5.6 порт 9001
listen = 127.0.0.1:9001
Ставим остальные необходимые пакеты
[bash title=»код»]yum install php56-php-cli php56-php-pdo php56-php-mysqlnd php56-php-gd php56-php-mbstring php56-php-mcrypt php56-php-xml
yum install php73-php-cli php73-php-pdo php73-php-mysqlnd php73-php-gd php73-php-mbstring php73-php-mcrypt php73-php-xml[/bash]
Запускаем php-fpm
[bash title=»код»]service php56-php-fpm start
service php73-php-fpm start[/bash]
Устанавливаем или обновляем до httpd 2.4
Это нужно для того, чтобы проще регулировать конфиг с версией подключаемого php
На версии httpd 2.2 можно подключать php-fpm при помощи:
[bash title=»код»]ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9001/home/www/директория сайта/$1[/bash]
или
[bash title=»код»]ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/home/www/директория сайта/$1[/bash]
Но мы не такие, и ставим httpd 2.4
[bash title=»код»]yum —enablerepo=extras install centos-release-scl
yum install httpd24[/bash]
Копируем наши старые конфиги виртуальных хостов, потом переделаем. Если ничего не было или было, но не нужно, убиваем старый апач
[bash title=»код»]yum remove httpd[/bash]
Активируем новый.
[bash title=»код»]scl enable httpd24 bash[/bash]
Хотите запускать апач по длиннющей команде и править конфиге в в каталогах по умолчанию, ваше право. Но мы не такие.
Копируем существующие конфиги к себе в домашний каталог из каталога
[bash title=»код»]/opt/rh/httpd24/root/etc/httpd/[/bash]
Дальше убиваем существующие каталоги с конфигами
[bash title=»код»]rm /opt/rh/httpd24/root/etc/httpd/conf/
rm /opt/rh/httpd24/root/etc/httpd/conf.d/[/bash]
Ну или можете каждый раз ходить сюда и править что нужно
Создаём симлинки на конфиги
[bash title=»код»]ln -s /etc/httpd/conf/ /opt/rh/httpd24/root/etc/httpd/
ln -s /etc/httpd/conf.d/ /opt/rh/httpd24/root/etc/httpd/[/bash]
Теперь конфиги доступны по стандартному пути апача для Centos
Ну и для пущей красоты клонируем стартовый скрипт, попутно переименовав его в httpd, для удобного запуска
[bash title=»код»]cp /etc/init.d/httpd24-httpd /etc/init.d/httpd[/bash]
Почти всё.
Открываем наш конфиг
[bash title=»код»]nano /etc/httpd/conf/httpd.conf[/bash]
Дальше смотрим чтобы по пути инклюда не было лишних конфигов и правим виртуальные хосты
[bash title=»код»]<VirtualHost *:8080 >
ServerName hd.zp.ua
ServerAdmin [email protected]
DocumentRoot /home/www/hd.zp.ua
<Directory "/home/www/hd.zp.ua">
AllowOverride All
Require all granted
Options -Indexes
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</VirtualHost>[/bash]
Тут можно менять версию php-fpm SetHandler «proxy:fcgi://127.0.0.1:9000» или SetHandler «proxy:fcgi://127.0.0.1:9001″
Если используете cloudflare, добавьте в самый низ конфига /etc/httpd/conf/httpd.conf
[bash title=»код»]<IfModule mod_remoteip.c>
# CloudFlare Header
RemoteIPHeader X-Forwarded-For
# Trusted Proxy List
RemoteIPInternalProxy 127.0.0.1
RemoteIPTrustedProxy 103.21.244.0/22
RemoteIPTrustedProxy 103.22.200.0/22
RemoteIPTrustedProxy 103.31.4.0/22
RemoteIPTrustedProxy 104.16.0.0/12
RemoteIPTrustedProxy 108.162.192.0/18
RemoteIPTrustedProxy 141.101.64.0/18
RemoteIPTrustedProxy 162.158.0.0/15
RemoteIPTrustedProxy 172.64.0.0/13
RemoteIPTrustedProxy 173.245.48.0/20
RemoteIPTrustedProxy 188.114.96.0/20
RemoteIPTrustedProxy 190.93.240.0/20
RemoteIPTrustedProxy 197.234.240.0/22
RemoteIPTrustedProxy 198.41.128.0/17
RemoteIPTrustedProxy 199.27.128.0/21
# CloudFlare IPv6 Address Ranges
RemoteIPTrustedProxy 2400:cb00::/32
RemoteIPTrustedProxy 2405:8100::/32
RemoteIPTrustedProxy 2405:b500::/32
RemoteIPTrustedProxy 2606:4700::/32
RemoteIPTrustedProxy 2803:f800::/32
</IfModule>[/bash]
Добавляем httpd в автозапуск
[bash title=»код»]chkconfig httpd on[/bash]
и стартуем
[bash title=»код»]service httpd start[/bash]
Надеюсь ошибок нет.