twix007
@twix007

Как запустить php 5.6 и php 7 одновременно?

Как реализовать для каждого виртуального хоста свою верисию php на Apache?
возможно ли без докера и подобного?
Если нет, то наткнулся на apache-multiphp, но докер новое пока и не знаю как правильно реализовать....

Вдруг кому пригодится (сделал мануал для себя):

sudo apt-get install apache2 apache2-utils
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install libapache2-mod-fastcgi libapache2-mod-fcgid
sudo apt-get install php5.6-fpm php5.6 php5.6-mcrypt php5.6-mbstring php5.6-mysql php5.6-zip php5.6-gd php5.6-xml
sudo apt-get install php7.0-fpm php7.0 php7.0-mcrypt php7.0-mbstring php7.0-mysql php7.0-zip php7.0-gd php7.0-xml
sudo a2enmod actions
sudo a2enmod fastcgi
sudo a2enmod fcgid
sudo a2enmod rewrite
sudo a2enmod suexec
sudo a2enmod include

sudo nano /etc/apache2/sites-available/php56.conf
<IfModule mod_fastcgi.c>
    AddHandler php56-fcgi-www .php
    Action php56-fcgi-www /php56-fcgi-www
    Alias /php56-fcgi-www /usr/lib/cgi-bin/php56-fcgi-www
    FastCgiExternalServer /usr/lib/cgi-bin/php56-fcgi-www -socket /run/php/php5.6-fpm.sock -pass-header Authorization
    <Directory "usr/lib/cgi-bin">
        Require all granted
    </Directory>
</IfModule>
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName php56
    DocumentRoot /var/www/html/php56
    <Directory "/var/www/html/php56">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        SetHandler php56-fcgi-www
    </Directory>
</VirtualHost>

sudo nano /etc/apache2/sites-available/php70.conf
<IfModule mod_fastcgi.c>
    AddHandler php70-fcgi-www .php
    Action php70-fcgi-www /php70-fcgi-www
    Alias /php70-fcgi-www /usr/lib/cgi-bin/php70-fcgi-www
    FastCgiExternalServer /usr/lib/cgi-bin/php70-fcgi-www -socket /run/php/php7.0-fpm.sock -pass-header Authorization
    <Directory "usr/lib/cgi-bin">
        Require all granted
    </Directory>
</IfModule>
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName php70
    DocumentRoot /var/www/html/php70
    <Directory "/var/www/html/php70">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        SetHandler php70-fcgi-www
    </Directory>
</VirtualHost>

sudo mkdir -p /var/www/html/php56
sudo nano /var/www/html/php56/index.php
<?php phpinfo() ?>

sudo mkdir -p /var/www/html/php70
sudo nano /var/www/html/php70/index.php
<?php phpinfo() ?>

sudo a2dissite 000-default (вимкнути сайт за замовчуванням)
sudo a2ensite php56
sudo a2ensite php70
sudo service apache2 restart
  • Вопрос задан
  • 3506 просмотров
Решения вопроса 1
t-alexashka
@t-alexashka
Сразу пишу legacy код
докер, жмокер, не придумывайте. ставьте пхп как fpm.
apt-get install php5.6-fpm
apt-get install php7.1-fpm

и настраивайте в конфиге сервера какой именно сокет слушать, 5.6 или 7.1 или любой другой.

P.S. а еще лучше через nginx все это делать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sashkets
@sashkets
Прекратил отвечать после 24.02.2022
добавлю в копилку еще вариант нескольких пхп на генту
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽