Running two versions of PHP on the same server

I have two projects on the local server, one project runs on PHP5.6, and the other on PHP7.0. Can I now include these two project-based versions? I already tried to add AddHandler application/x-httpd-php7.phphtaccess to one of the projects, but it does not work. Currently, PHP7.0 and PHP5.6-fpm are already installed on the server. Below is a screenshot of phpinfo.

enter image description here

+20
source share
6 answers

. FastCgi php. . , Apache . , PHP . , Linux Mint 18.

  1. , Apache, php PPA. site56.local PHP 5.6 site70.local PHP 7.0. php5.6-fpm php7.0-fpm, :

    sudo apt-get install php5.6-fpm
    sudo apt-get install php7.0-fpm
    
  2. /usr/lib/cgi-bin/ ( , , -) :

    sudo nano /usr/lib/cgi-bin/php56-fcgi
    sudo nano /usr/lib/cgi-bin/php70-fcgi
    
  3. php56 conf /etc/apache2/conf-available/php5.6-fpm.conf, /etc/apache2/conf-available/php5.6-fpm.conf :

    <IfModule mod_fastcgi.c>
        AddHandler php56-fcgi .php
        Action php56-fcgi /php56-fcgi
        Alias /php56-fcgi /usr/lib/cgi-bin/php56-fcgi -socket /var/run/php/php5.6-fpm.sock -pass-header Authorization
        Action php70-fcgi /php70-fcgi
        Alias /php70-fcgi /usr/lib/cgi-bin/php70-fcgi -socket /var/run/php/php7.0-fpm.sock -pass-header Authorization
    </IfModule>
    <Directory /usr/lib/cgi-bin>
        Require all granted
    </Directory>
    
  4. apache:

    sudo a2enconf php5.6-fpm
    
  5. php5.6 php5.7, , apache:

    sudo a2dismod php5.6 php7.0
    sudo systemctl restart apache2
    
  6. .htacces , php7.0, :

    AddHandler php70-fcgi .php
    
  7. phpinfo , - , !

PS: , htaccess apache2.conf httpd.conf

site56.local/phpinfo.php:
enter image description here

site70.local/phpinfo.php:
enter image description here

+25

, , PHP , :

# ls -la/etc/apache2/conf-enabled | grep php

# ls -la/etc/apache2/mods-enabled | grep php

PHP-FPM :

VirtualHost .

Include "conf-available/php7.2-fpm.conf"

,

# vim/etc/apache2/sites-enabled/symfony.local.conf

<VirtualHost *:80>
    ServerName symfony.local

    Include "conf-available/php7.2-fpm.conf"

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/symfony.local/curr/public

    <Directory /var/www/symfony.local/curr/web>
        AllowOverride All
    </Directory>
</VirtualHost>
+7

debian 9 Stretch. , , , , :

sudo apt-get install php5.6-fpm

sudo apt-get install php7.0-fpm

sudo a2enconf php5.6-fpm

php5.6 php5.7, , apache.

sudo a2dismod php5.6 php7.0

sudo systemctl restart apache2

php 5.6.

, php 7, vhost:

ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/var/run/php/php7.0-fpm.sock|fcgi://localhost/path/to/my/main/file"

:)

+2

Makubex, . LAMP, , fastcgi . php, script fastcgi.

sudo apt-get install libapache2-mod-fastcgi php5.6-fpm php5.6 php5.6-dev php5.6-mcrypt php5.6-mbstring php5.6-mysql php5.6-zip php5.6-gd php5.6-xml php7.1-fpm libapache2-mod-fastcgi php7.1-fpm php7.1 php7.1-dev php7.1-mbstring php7.1-mysql php7.1-zip php7.1-gd php7.1-xml php7.1-curl php7.1-intl php7.1-json php7.1-mcrypt

:

a2enmod actions
a2enmod fastcgi

. PHP- php-fpm xdebug Ubuntu 16.04

+2

, , .

ProxyPassMatch "^/php70project/.*\.php(/.*)?$" "fcgi://localhost:9070/var/www/" enablereuse=on

Apache vhost, php php70project vhost root/var/www 7, fastcgi.

unix-

ProxyPassMatch "^/php70project/.*\.php(/.*)?$" "unix:/var/run/php70fpm.sock|fcgi://localhost/var/www"

It does not work properly. Unfortunately, I could not find the correct code to get this working, but since there is no example for using a unix socket with a subfolder on this page https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html it may be just impossible.

0
source

moved as a comment, this is not an answer.

0
source

Source: https://habr.com/ru/post/1671892/


All Articles