{{tag>netadmin apache apache2 php php-fpm config}} ====== Apache: modes d'exécution des scripts PHP ====== Pour configurer Apache 2 afin de pouvoir interpréter les scripts PHP, deux possibilités: * Utiliser le **module mod_php** qui intègre directement un moteur PHP dans apache via le mécanisme de module. * S'appuyer sur le module **FastCGI** pour rediriger les requêtes sur un **interpréteur PHP externe**. La méthode legacy consiste à utiliser le module apache mod_php. C'est celle qui requiert le moins de paramétrages complémentaires. Elle a néanmoins quelques inconvénients: * Les processus peuvent occuper plus de mémoire. * Le module mod_php pour apache nécessite d'utiliser le MPM perfork et celui-ci ne gère pas le protocole HTTP2. PPH-FPM s’exécute indépendamment d'Apache, cela réduit l'empreinte mémoire du serveur web. Il est instancié seulement quand c'est nécessaire ce qui réduit également la charge du serveur. Installer apache2 et vérifier que le MPM utilisé est mpm_event apt-get install apache2 La commande ci-dessous doit retourner un résultat si mpm_event est bien chargé: a2query -m | grep event Activer le module Apache proxy FastCGI a2enmod proxy_fcgi ===== Multiples versions de PHP ===== Chaque hôte virtuel peut être en mesure de s'appuyer sur un serveur PHP-FPM exécutant une version de PHP différente. Le plus simple pour un système Debian est d'utiliser le dépot d'Ondřej Surý développeur Debian (https://deb.sury.org/) apt-get install apt-transport-https lsb-release ca-certificates wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list apt-get update apt-get install php5.6 php5.6-fpm Installation de PHP 7.3 apt-get install php7.3 php7.3-fpm NOTICE: Not enabling PHP 7.3 FPM by default. NOTICE: To enable PHP 7.3 FPM in Apache2 do: NOTICE: a2enmod proxy_fcgi setenvif NOTICE: a2enconf php7.3-fpm NOTICE: You are seeing this message because you have apache2 package installed. Vérifier l'état des services php-fpm systemctl status php5.6-fpm.service systemctl status php7.3-fpm.service ===== Références ===== * https://buzut.net/configuration-dun-serveur-linux-php/ * https://tecadmin.net/install-php-debian-9-stretch/ * https://stackoverflow.com/questions/46378017/install-php5-6-in-debian-9 * https://stackoverflow.com/questions/42696856/running-two-php-versions-on-the-same-server