GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment compiler et installer PHP 7.4 en tant que PHP-FPM &FastCGI pour ISPConfig 3 sur Ubuntu 18.04 LTS

Ubuntu 18.04 est livré avec PHP 7.2 comme version PHP par défaut. Les principales versions de PHP ne sont pas compatibles à 100 % entre elles, de sorte qu'un site Web peut nécessiter une version plus récente ou plus ancienne de PHP pour fonctionner. ISPConfig le prend en charge pour utiliser plusieurs versions de PHP sur le même serveur, la version de PHP peut être sélectionnée pour chaque site Web individuellement dans les paramètres du site Web. Ce tutoriel montre comment installer PHP 7.4 en mode FPM et FCGI aux côtés de PHP 7.2 sur un serveur Ubuntu 18. Les versions PHP supplémentaires sont installées dans le dossier /opt, leur installation n'affecte donc pas la version PHP par défaut

1 Remarque préliminaire

Je vais installer PHP 7.4. Veuillez noter que PHP-FPM peut être utilisé à la fois sur les serveurs Apache et Nginx, tandis que FastCGI n'est disponible que pour les serveurs Apache.

2 Installer les prérequis

Installez les prérequis pour compiler PHP et l'éditeur nano que j'utiliserai pour éditer les fichiers de configuration :

apt -y install build-essential nano net-tools autoconf
apt -y install libfcgi-dev libfcgi0ldbl libjpeg-turbo8-dev libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-dev libzip-dev libsqlite3-dev libonig-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
cd /usr/include
ln -s x86_64-linux-gnu/curl

(La dernière commande est nécessaire si vous construisez PHP avec --with-imap, car sinon ./configure s'arrêtera avec l'erreur suivante :

vérification de crypt dans -lcrypt... oui
configure :erreur :impossible de trouver la bibliothèque imap (libc-client.a). Veuillez vérifier votre installation c-client.
[email protected] :/tmp/php-7.4.0

)

3 Compiler PHP 7.4 en tant que PHP-FPM et Fastcgi

Téléchargez et extrayez l'archive PHP :

cd /tmp
wget https://www.php.net/distributions/php-7.4.0.tar.gz
tar xfz php-7.4.0.tar.gz
cd php-7.4.0

Configurez et compilez PHP 7.4 comme suit (vous pouvez ajuster la commande ./configure à vos besoins, jetez un œil à

./configure --help

pour voir toutes les options disponibles ; si vous utilisez une commande ./configure différente, il est possible que des bibliothèques supplémentaires soient requises ou que le processus de construction échoue) :

./configure --prefix=/opt/php-7.4 --with-pdo-pgsql --with-zlib-dir --with-freetype --enable-mbstring --enable-soap --enable-calendar --with-curl --with-zlib --enable-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable -sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --with-zip --with-pdo-mysql --with-mysqli - -with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data - -with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-intl --with-pear --enable-fpm

Le dernier commutateur (--enable-fpm) garantit que cette version de PHP fonctionnera avec PHP-FPM.

faire
faire installer

Copiez les fichiers aux bons emplacements :

cp php.ini-production /opt/php-7.4/lib/php.inicp /opt/php-7.4/etc/php-fpm.conf.default /opt/php-7.4/etc/php-fpm. confcp /opt/php-7.4/etc/php-fpm.d/www.conf.default /opt/php-7.4/etc/php-fpm.d/www.conf

Ajustez /opt/php-7.4/etc/php-fpm.conf

sed -i 's/;pid =run\/php-fpm.pid/pid =run\/php-fpm.pid/g' /opt/php-7.4/etc/php-fpm.conf 

Puis mettez à jour /opt/php-7.4/etc/php-fpm.d/www.conf :

cp /opt/php-7.4/etc/php-fpm.d/www.conf.default /opt/php-7.4/etc/php-fpm.d/www.conf

Si vous avez déjà installé des versions PHP supplémentaires, veuillez vérifier que le port n'est pas déjà utilisé :

netstat -tapn | grep -E ".*899.*php-fpm"

Si vous utilisez nginx comme serveur Web, ajustez /opt/php-7.4/lib/php.ini :

sed -i 's/;date.timezone =/date.timezone ="Europe\/Berlin"/g' /opt/php-7.4/lib/php.ini
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /opt/php-7.4/lib/php.ini

3.1 Créer le fichier d'unité systemd

Ensuite, nous allons créer le fichier d'unité système qui est utilisé pour démarrer et arrêter le démon PHP-FPM.

nano /lib/systemd/system/php-7.4-fpm.service

avec le contenu suivant :

[Unité]
Description=Le gestionnaire de processus PHP 7.4 FastCGI
Après=network.target

[Service]
Type=simple
PIDFile =/opt/php-7.4/var/run/php-fpm.pid
ExecStart=/opt/php-7.4/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.4/ etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

Activez le service et rechargez systemd :

systemctl enable php-7.4-fpm.service
systemctl daemon-reload

Enfin, lancez PHP-FPM.

systemctl démarrer php-7.4-fpm.service

Pour activer Zend OPcache :

echo zend_extension=opcache.so>> /opt/php-7.4/lib/php.ini

3.2 Activer Memcache (facultatif)

Installez Memcache avec ces commandes.

cd /opt/php-7.4/etc
../bin/pecl -C ./pear.conf update-channels
../bin/pecl -C ./pear.conf install memcaché

et activez memache

echo extension=memcached.so>> /opt/php-7.4/lib/php.ini

3.3 Installer l'extension xDebug (facultatif)

Le module xDebug est une extension de débogage pour PHP. L'installation est facultative.

Installez xDebug avec ces commandes.

cd /opt/php-7.4/etc
../bin/pecl -C ./pear.conf update-channels
../bin/pecl -C ./pear.conf install xdebug

et activez xDebug

echo zend_extension=/opt/php-7.4/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so>> /opt/php-7.4/lib/php.ini

Redémarrez enfin le démon php-fpm :

systemctl start php-7.4-fpm.service

Testez la version PHP :

cd /opt/php-7.4/bin
./php --version

3.4 Activer PHP 7.4 dans ISPConfig

Dans ISPConfig 3.1, vous pouvez configurer la nouvelle version PHP sous Système> Versions PHP supplémentaires. Dans l'onglet Nom, il vous suffit de saisir un nom pour la version de PHP (par exemple, PHP 7.4) - cette version de PHP sera répertoriée sous ce nom dans les paramètres du site Web dans ISPConfig :

Accédez à l'onglet Paramètres FastCGI et remplissez les champs comme suit :

Chemin vers le binaire PHP FastCGI : /opt/php-7.4/bin/php-cgi
Chemin vers le répertoire php.ini : /opt/php-7.4/lib
 

Accédez ensuite à l'onglet Paramètres PHP-FPM et remplissez les champs comme suit :

Chemin d'accès au script d'initialisation PHP-FPM : php-7.4-fpm
Chemin vers le répertoire php.ini : /opt/php-7.4/lib
Chemin vers le répertoire du pool PHP-FPM : /opt/php-7.4/etc/php-fpm.d
 

  • PHP :http://www.php.net/
  • ISPConfig :http://www.ispconfig.org/
  • Debian :http://www.debian.org/

Ubuntu
  1. Comment installer PHP 7.4 et 8.0 sur Ubuntu 18.04 ou 20.04

  2. Comment installer PHP 7 (PHP-FPM &FastCGI) pour ISPConfig 3 sur Debian 8 (Jessie)

  3. Comment installer PHP 7 en tant que PHP-FPM &FastCGI pour ISPConfig 3 sur Debian 8 (Jessie)

  4. Comment installer PHP 5.6 sur Ubuntu 16.04 LTS

  5. Comment installer PHP 7.4 sur Ubuntu 20.04 LTS

Comment installer PHP 5.6, PHP 8.0 et PHP 8.1 sur Ubuntu 20.04 LTS

Comment installer Apache/PHP-FPM sur Ubuntu 16.04 LTS

Comment installer Lighttpd avec PHP et MariaDB sur Ubuntu 16.04 LTS

Comment installer Lighttpd, PHP et MariaDB sur Ubuntu 20.04 LTS

Comment installer ISPConfig sur Ubuntu 20.04 LTS

Comment utiliser plusieurs versions de PHP (PHP-FPM et FastCGI) avec ISPConfig 3 (Ubuntu 12.04 LTS)