GNU/Linux >> Tutoriels Linux >  >> Arch Linux

Comment compiler PHP7.0/PHP7.1 à partir de la source sur Arch Linux

Ce tutoriel vous montre comment compiler PHP7.0/PHP7.1 sur Arch Linux et l'installer avec PHP7.2. Arch Linux est une distribution à diffusion continue avec les logiciels les plus récents et les plus performants. PHP7.2 a atterri dans le référentiel Arch Linux. Certaines applications Web telles que WordPress fonctionnent bien avec PHP7.2, mais d'autres comme NextCloud ne prennent actuellement pas en charge PHP7.2. La prochaine version de NextCloud - NextCloud 13 - serait compatible avec PHP7.2.

Hier, j'ai effectué une mise à niveau sur mon serveur Arch Linux, ce qui a entraîné le remplacement de PHP7.2 par PHP7.1 et mon interface Web NextCloud a cessé de fonctionner. L'AUR (Arch User Repository) fournit PHP7.0. J'ai essayé de l'installer avec Yaourt, mais la vérification de la signature a échoué, je n'ai donc pas eu d'autre choix que de compiler PHP7.0/PHP7.1 moi-même.

Comment compiler PHP7.0/PHP7.1 sur Arch Linux

Tout d'abord, mettez à niveau tous les logiciels.

sudo pacman -Syu

Installez wget et téléchargez le code source PHP. J'utilise la dernière version de PHP7.0. Remplacez le numéro de version par votre version préférée.

sudo pacman -S wget

wget http://php.net/distributions/php-7.0.26.tar.gz

Extrayez l'archive.

tar xvf php-7.0.26.tar.gz

Cd dans le répertoire nouvellement créé.

cd php-7.0.26

Installez les outils de construction et les dépendances.

sudo pacman -S gcc make bison gawk re2c libxml2 libwebp freetype2 c-client libmcrypt libxslt

Configurez l'environnement avec les paramètres suivants. Copiez l'intégralité de la commande et collez-la dans la fenêtre de votre terminal.

./configure \
--prefix=/opt/php-7.0.26                      \
--with-config-file-path=/opt/php-7.0.26/etc   \
--with-zlib-dir                              \
--with-freetype-dir                          \
--enable-mbstring                            \
--with-libxml-dir=/usr                       \
--enable-soap                                \
--enable-calendar                            \
--with-curl                                  \
--with-mcrypt                                \
--with-zlib                                  \
--with-gd                                    \
--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                                 \
--enable-zip                                 \
--with-pcre-regex                            \
--with-pdo-mysql                             \
--with-mysqli                                \
--with-mysql-sock=/var/run/mysqld/mysqld.sock \
--with-jpeg-dir=/usr                         \
--with-png-dir=/usr                          \
--enable-gd-native-ttf                       \
--with-openssl                               \
--with-fpm-user=http                         \
--with-fpm-group=http                        \
--enable-ftp                                 \
--with-imap                                  \
--with-imap-ssl                              \
--with-kerberos                              \
--with-gettext                               \
--with-xmlrpc                                \
--with-xsl                                   \
--enable-opcache                             \
--enable-fpm

Quand c'est fait, compilons PHP7 avec la commande make. Remplacez 2 par le nombre de cœurs de processeur sur votre machine. Par défaut make utilise 1 cœur, vous pouvez accélérer le processus de compilation en utilisant tous les cœurs disponibles.

make -j2

Le processus de compilation peut prendre un certain temps, selon la puissance de votre CPU. Une fois terminé, lancez un test.

make test

Installez maintenant PHP. Le répertoire d'installation est /opt/php-7.0.26/ .

sudo make install

À partir de la capture d'écran, nous pouvons voir que le binaire PHP-FPM est installé sur /opt/php-7.0.26/sbin/ et le répertoire de configuration de PHP-FPM est /opt/php-7.0.26/etc/ . Avant d'exécuter PHP-FPM, nous devons créer le fichier de configuration PHP-FPM. Il existe deux exemples de fichiers de configuration afin que nous puissions simplement les copier.

sudo cp /opt/php-7.0.26/etc/php-fpm.conf.default /opt/php-7.0.26/etc/php-fpm.conf

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

Modifiez le www.conf fichier de configuration.

sudo nano /opt/php-7.0.26/etc/php-fpm.d/www.conf

Par défaut, PHP-FPM écoute sur le socket TCP 127.0.0.1:9000, on peut le faire écouter sur le socket Unix. Trouvez la ligne suivante.

listen = 127.0.0.1:9000

Ajoutez un point-virgule au début pour le commenter. Ajoutez ensuite la ligne suivante en dessous.

listen = /run/php-fpm/php7.0-fpm.sock

Ensuite, trouvez les 3 lignes suivantes et décommentez-les.

;listen.owner = http
;listen.group = http
;listen.mode = 0660

Enregistrez et fermez le fichier. Copiez ensuite le fichier php.ini.

sudo cp ~/php-7.0.26/php.ini-production /opt/php-7.0.26/etc/php.ini

Modifiez le fichier.

sudo nano /opt/php-7.0.26/etc/php.ini

Ajoutez ce qui suit au bas du fichier.

include_path = "/opt/php-7.0.26/lib/php"

Enregistrez et fermez le fichier. Nous pouvons maintenant démarrer PHP-FPM avec :

sudo /opt/php-7.0.26/sbin/php-fpm

Créer une unité de service Systemd

Créer une unité de service Systemd pour PHP7.0.

sudo nano /etc/systemd/system/php7.0-fpm.service

Copiez et collez les lignes suivantes dans le fichier.

[Unit]
Description=The PHP FastCGI Process Manager
After=network.target

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

[Install]
WantedBy=multi-user.target

Enregistrez et fermez le fichier. Nous pouvons maintenant tuer le PHP7.0-FPM en cours d'exécution et l'exécuter via systemd. Trouvez le PID du processus maître PHP7.0-FPM.

ps aux | grep php-fpm

Comme vous pouvez le voir, le PID est 5066 sur ma machine. Donc je peux le tuer avec :

sudo kill 5066

Notez que le binaire PHP7.2-FPM est également nommé php-fpm .Si vous utilisez pkill php-fpm , alors PHP7.2-FPM et PHP7.0-FPM s'arrêteront. Démarrez maintenant php7.0-fpm via systemd.

sudo systemctl start php7.0-fpm

Activer le démarrage automatique au démarrage.

sudo systemctl enable php7.0-fpm

Vérifiez son statut.

systemctl status php-fpm

Faire en sorte que Nginx utilise PHP7.0-FPM

Pour que Nginx utilise PHP7.0 au lieu de PHP7.2, ouvrez le fichier de bloc du serveur Nginx, recherchez la ligne suivante.

fastcgi_pass unix:/run/php-fpm/php-fpm.sock;

Changez-le en

fastcgi_pass unix:/run/php-fpm/php7.0-fpm.sock;

Il peut y avoir plus d'une instance de cette ligne. Vous devez tous les changer. Ensuite, faites http (l'utilisateur du serveur Web sur Arch Linux) en tant que propriétaire de /run/php-fpm/php7.0-fpm.sock fichier.

sudo chown http:http /run/php-fpm/php7.0-fpm.sock

Testez la configuration de Nginx.

sudo nginx -t

Si le test réussit, rechargez Nginx pour que les modifications prennent effet.

sudo systemctl reload nginx

C'est ça! J'espère que ce tutoriel vous a aidé à compiler PHP7.0/7.1 à partir des sources sur Arch Linux. Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour obtenir d'autres conseils et astuces utiles.


Arch Linux
  1. Comment compiler Brotli à partir de la source sur CentOS 7

  2. Comment compiler l'outil de compression Brotli à partir de la source sur Debian 9

  3. Comment compiler l'outil de compression Brotli à partir de la source sur Fedora 29

  4. Comment utiliser Pacman sur Arch Linux

  5. Comment compiler et installer un logiciel à partir du code source sous Linux

Comment installer Virtualbox dans Arch Linux

Comment installer un logiciel à partir de la source sous Linux

Comment connecter l'iPhone à Arch Linux

Comment installer Skype sur Arch Linux

Comment installer Java sur Arch Linux

Comment compiler le noyau Linux à partir de la source pour créer un noyau personnalisé