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
  • Вопрос задан
  • 3522 просмотра
Решения вопроса 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
добавлю в копилку еще вариант нескольких пхп на генту
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы