То есть суть - свой сервер с белым ip, домен, поддомены. Домен работает на CMS, которой только пятерку подавай. Надо на поддомене сделать SPA на фреймворке, которому нужен php7.
В сети куча рецептов для бубунты, центос и дебиана. А кто-нибудь пробовал завести две версии на альте? Перечитал, что можно, но в голове образовалась такая каша, что просто не соображу, куда копать. При этом общее представление есть, но как это реализовать на альте - вообще никак не соображу.
[SOLVED]
В общем, как всегда - башка не варит, а руки делают.
Имеем - свежеустановленный starterkit server с профилем office, предустановлены apache, поддержка php5, IP в локалке 192.168.0.226.
Нужна восьмерка, потому что в девятке пятый пых уже отсуствует.
Тест и все настройки делались с виндовой машины.
В винде - в файле hosts добавляем
192.168.0.226 test.site
192.168.0.226 test56.site
192.168.0.226 test7.site
Далее, на сервере (все делаю от рута)
apt-get install php5-fpm-fcgi php7-fpm-fcgi apache2-mod_fcgid
в /etc/httpd2/conf/sites-available создаем файл test.conf со следующим содержимым
<VirtualHost *:80>
ServerName www.test.site
ServerAlias test.site
ServerAdmin admin@test.site
DocumentRoot /var/www/vhosts/test
ErrorLog /var/www/vhosts/test/log/error_log_a2
TransferLog /var/www/vhosts/test/log/access_log_a2
<Directory "/var/www/vhosts/test">
AllowOverride All
Require all granted
Satisfy Any
Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php index.html
AddDefaultCharset UTF-8
php_flag register_globals off
php_value memory_limit 512M
php_value date.timezone Asia/Yekaterinburg
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.test.site
RewriteRule ^(.*)$ http://test.site/$1 [R=permanent,L]
RewriteBase /
RewriteCond $1 !^(index\.php|uploads|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
<ifModule mod_deflate.c>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/plain text/html
AddOutputFilterByType DEFLATE text/css
AddoutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
AddOutputFilterByType DEFLATE text/xml application/xml application/xhtml+xml application/rss+xml
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon
</IfModule>
</IfModule>
</Directory>
</VirtualHost>
Немножко избыточно для теста, но пусть будет. Взял с рабочего конфига. Почти все настройки в апаче 2.2 были в .htaccess, теперь переехали в конфиг, поскольку есть к нему доступ и в соответствии с рекомендациями apache.org
Далее в /var/www/vhosts создаем три папки, с подпапками
/var/www/vhosts/test
/var/www/vhosts/test/log
/var/www/vhosts/test56
/var/www/vhosts/test56/log
/var/www/vhosts/test7
/var/www/vhosts/test7/log
На папки логов выставляем права для записи, чтобы апач мог логи писать.
В каждой папке создаем index.php следующего содержания, для наглядности в каждом меняем заголовок
<html><body><h1>Test.site</h1><hr>
<?
echo phpinfo();
?>
возвращаемся к конфигам. Копируем test.conf в test56.conf и test7.conf.
Редактируем test56.conf и test7.conf следующим образом
<VirtualHost *:80>
ServerName www.test56.site
ServerAlias test56.site
ServerAdmin admin@test56.site
DocumentRoot /var/www/vhosts/test56
ErrorLog /var/www/vhosts/test56/log/error_log_a2
TransferLog /var/www/vhosts/test56/log/access_log_a2
ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/var/run/php5-fpm/php5-fpm.sock|fcgi://localhost/var/www/vhosts/test56"
<Directory "/var/www/vhosts/test">
то есть, меняем все test.site (включая и то, что ниже в mod_rewrite и - самое главное - добавляем ProxyPassMatch. Для php7, соответственно, будет
ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/var/run/php7-fpm/php7-fpm.sock|fcgi://localhost/var/www/vhosts/test7"
Далее, не забыть включить proxy, сайты, запустить php7-fpm и перезагрузить конфиги апача
a2enmod fcgid
a2enmod proxy
a2enmod proxy_fcgi
a2ensite test
a2ensite test56
a2ensite test7
service php7-fpm start
service httpd2 condreload
Если я ничего не пропустил и вы повторили все вдумчиво - то вэлкам в браузер и набирайте test.site, test56.site, test7.site
В каждом случае получаем вывод phpinfo, в котором сразу видно, что test.site и test56.site используют php5 (был установлен по умолчанию), а test7.site использует php7.
Разница между test.site & test56.site в том, что первый использует mod_php5, второй php5-fpm, и test7 использует php7-fpm.
Пока дальше не копал, думаю, все будет нормально и в дальнейшем.
PS. Свежеустановленный сервер по умолчанию имеет выключенный апач, так что надо его ручками запускать, ну и в автозагрузку включить кроме апача еще и php7-fpm