Commençons du début. Je suppose que vous préféreriez utiliser php-fpm au lieu du module Apache.
d'abord installer apache:
sudo apt-get update
sudo apt-get install apache2
Suivant installer plusieurs PHP:
Debian 9:
installer PHP 7:
sudo apt-get install php7.0-cli php7.0-fpm php-pear libapache2-mod-fastcgi
Configurer les dépôts:
sudo apt-get install apt-transport-https
sudo curl https://packages.sury.org/php/apt.gpg | apt-key add -
sudo echo 'deb https://packages.sury.org/php/ stretch main' > /etc/apt/sources.list.d/deb.sury.org.list
sudo apt-get update
Installer PHP 5:
sudo apt-get install php5.6-cli php5.6-fpm
Debian 8:
installer PHP 5:
sudo apt-get install php5 php5-fpm php-pear libapache2-mod-fastcgi
Configurer les dépôts:
Modifier /etc/apt/sources.list
et ajouter les lignes suivantes à la fin du fichier :
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all
Installation de clés GPG:
wget https://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg
sudo apt-get update
installer PHP 7:
sudo apt-get install php7.0 php7.0-fpm
commutateur suivant de prefork et permettent modules nécessaires:
Pour Debian 8:
a2dismod php5 mpm_prefork
Pour Debian 9 :
a2dismod php7 mpm_prefork
suivant pour les deux:
a2enmod actions fastcgi alias proxy_fcgi mpm_worker
systemctl restart apache2
Modifier le contenu de /etc/apache2/mods-enabled/fastcgi.conf
à la suivante:
<IfModule !mod_fastcgi.c>
AddHandler fcgid-script fcg fcgi fpl
</IfModule>
<IfModule mod_fastcgi.c>
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</IfModule>
maintenant créer un document dossiers racine pour les sites web:
mkdir -p /var/www/example.com/public_html
mkdir -p /var/www/test.com/public_html
Ajouter des utilisateurs sys ces sites:
sudo useradd example --home-dir /var/www/example.com
sudo useradd test --home-dir /var/www/test.com
Configurer la propriété:
sudo chown -R example.example /var/www/example.com
sudo chown -R test.test /var/www/test.com
Par exemple le site example.com
utilisera PHP 5 et le site Web test.com
utilisera PHP 7.
Créer des fichiers de configuration pour les sites web:
Site sur PHP 5:
touch /etc/apache2/sites-available/example.com.conf
ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/example.com.conf
cat /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<IfModule mod_fastcgi.c>
AddType application/x-httpd-fastphp5 .php
Action application/x-httpd-fastphp5 /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi-example.com
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi-example.com -socket /var/run/php5-fpm-example.com.sock -pass-header Authorization
</IfModule>
</VirtualHost>
Site sur PHP 7:
touch /etc/apache2/sites-available/test.com.conf
ln -s /etc/apache2/sites-available/test.com.conf /etc/apache2/sites-enabled/test.com.conf
cat /etc/apache2/sites-available/test.com.conf
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/test.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<IfModule mod_fastcgi.c>
AddHandler php7-fcgi .php
Action php7-fcgi /php7-fcgi virtual
Alias /php7-fcgi /usr/lib/cgi-bin/php7-fcgi-test.com
FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi-test.com -socket /var/run/php/php7.0-fpm-test.com.sock -pass-header Authorization
</IfModule>
</VirtualHost>
Créer configs piscine (j'ai utilisé ce qui suit):
Site sur PHP 5:
cat /etc/php5/fpm/pool.d/example.com.conf
[example.com]
user = example
group = example
listen = /var/run/php5-fpm-example.com.sock
listen.owner = www-data
listen.group = www-data
php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = off
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir =/
Site sur PHP 7:
cat /etc/php/7.0/fpm/pool.d/test.com.conf
[test.com]
user = test
group = test
listen = /var/run/php/php7.0-fpm-test.com.sock
listen.owner = www-data
listen.group = www-data
php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = off
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir =/
Redémarrez apache et services php-FPM:
sudo systemctl restart apache2 php5-fpm php7.0-fpm
Amusez-vous!
Je pense que c'est possible, mais seulement si vous utilisez FastCGI – RiggsFolly
http://gggeek.altervista.org/2007/07/21/running-multiple-php-versions-on-a-single-apache-install/Cela peut vous aider. –
@GeorgeJPadayatti: Ceci est pour un environnement Windows – Z0q