6
septembre
2022
«Réinstallation du serveur Web Apache2 dans Linux Mint 21 et installation PHP 8.1»
16:34

«Réinstallation du serveur Web Apache2 dans Linux Mint 21 et installation PHP 8.1»

6 septembre 2022 16:34

Après la transition vers Linux Mint 21 «Vanessa», qui est basé sur la base du package Ubuntu Jammy, le serveur Web Apache2 a cessé de fonctionner.
Comment j'ai restauré le travail du serveur Web, il est décrit ci-dessous.

Problèmes avec le lancement du serveur Web apache2

Le problème était le suivant - après avoir réinstallé Linux Mint, le service n'a pas été lancé "apache2":
Sudo service apache2 start
Job for apache2.service failed because the control process exited with error code.
See "mctl status apache2.service" and "journalctl -xeu apache2.service" for details.
Les magazines montrent que le service ne trouve pas de fichier de configuration /etc/apache2/apache2.conf.

Une tentative de réparation par réinstallation n'a rien conduit à:
sudo apt-get update && sudo apt-get purge apache2 && sudo apt-get install apache2

Aussi, après un retrait complet Apache2 des traces de l'ancienne installation subsistaient "which apache2 "

  • devrait être affiché une ligne vide, mais la conclusion était différente, indiquant le dossier /usr/sbin.

Résoudre le problème

1) Supprimer l'ancienne version

sudo apt-get purge apache2

2) Supprimer les traces de l'installation passée

sudo apt-get autoremove
sudo rm /usr/sbin/apache2

3) Ajoutez le référentiel PPA "ondrej/apache2" et mettez à jour le cache des packages :

Commentaire. Si le système d'exploitation est Debian, alors il n'y a pas de commande par défaut "apt-add-repository".

Seulement dans Debian, le reste n'a pas besoin d'être fait au début:

sudo apt-get install software-properties-commsur
sudo apt-get update

Dans Ubuntu et Linux Mint:

sudo apt-add-repository ppa:ondrej/apache2
sudo apt-get update

4) Nous installons apache2

sudo apt-get install apache2

5) Vérifiez la configuration

sudo apache2ctl configtest

Message d'erreur:
AH00558:apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this messaGe

Vous devez spécifier le nom ou l'adresse IP du serveur Web dans la directive 'ServerName' dans le fichier de configuration:

sudo nano /etc/apache2/apache2.Conf

Plus près du début du fichier, ajoutez la ligne

ServerName linux-pc

Où est linux-pc - Un nom qui est affiché dans le terminal après le symbole @

Enregistrer la configuration Ctrl + O, CTEL + X

6) Lancez le service Apache2:

sudo service apache2 start

7) Nous vérifions le travail du serveur Web, l'ouverture du navigateur et la transition vers l'adresse, assurez-vous d'ajouter le préfixe http: //

Par exemple, http://linux-pc

8) Configurer des hôtes virtuels dans le dossier "/etc/apache2/sites-available"

Un exemple de fichier de test (contenu sans commentaire grep -v "^[[:blank:]]#" test.conf):

<VirtualHost *:80>
ServerName test
ServerAdmin webmaster@localhost
DocumentRoot /home/user/test/
<Directory "/home/user/test">
Options Indexes MultiViews
AllowOverride None
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/errortest.log
CustomLog ${APACHE_LOG_DIR}/accesstest.log combined
</VirtualHost>

9) Créez des liens souples à partir du catalogue compatible sur les sites:

cd /etc/apache2/sites-enabled
sudo ln -s ../sites-available/test.conf test.conf

Vérifier:

ls -l

10) Dans le fichier des hôtes, ajoutez un pseudonyme

sudo nano /etc/hosts

127.0.0.1 test

Ctrl + o, Ctrl + x

12) Re-lisez la configuration ou redémarrez le service Apache2 comme suit:

sudo service apache2 reload

13) Nous vérifions les travaux du site Web par la transition vers http://test

14) Si, au lieu du résultat de l'opération PHP, le contenu du fichier est affiché (car le site dynamique dans le langage PHP),
vous devez réinstaller le module PHP pour apache2

Tout d'abord, nous découvrons quels modules PHP pour Apache2 sont disponibles pour l'installation:

apt-cache search libapache2-mod-php*

Par exemple, il existe des modules pour apache2: php 7.4 et php8.1

Ensuite, nous décidons quel PHP est nécessaire pour le projet. Par exemple, si le moteur Twig Twig a une ancienne version, sélectionnez 7.4, sinon 8.1

Libapache2-mod-php8.1 - un langage de script intégré au HTML, exécuté côté serveur (module Apache 2)
Libapache2-mod-php7.4 - paquet de transition

J'installe d'abord le PHP de la version correspondante et du PHP pour la ligne de commande.

sudo apt-get install php8.1 php8.1-cli

J'attribue PHP 8.1 comme «principal» s'il existe plusieurs configurations et versions parallèles de PHP:

sudo update-alternatives --config php

Je supprime la BIBLIOTHÈQUE libapache2-mod-php8.1 ainsi que libapache2-mod-php (Cette astuce résout de nombreux problèmes):

sudo apt purge libapache2-mod-php8.1 libapache2-mOd-php

Installez immédiatement uniquement le module une libapache2-mod-php8.1:

sudo apt install libapache2-mod-php8.1

Nous permettons le lancement du module PHP8.1 pour Apache, la commande:

sudo a2enmod php8.1

Dans la console, les messages sur l'enregistrement réussi du module sont affichés

Considering dependency mpm_prefork for php8.1:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.1:
Module php8.1 already enabled

15) Ouvrez le site à http://test. Si quelque chose ne fonctionne pas, nous vérifions les magazines

su -
cd /var/log/apache2
tail errortest.log

16) Il est nécessaire de déboguer le programme. Les erreurs sont souvent associées à l'incompatibilité des anciennes versions de Freimvorkov (fournisseur) avec la nouvelle version de PHP 8.1.
Les problèmes restants sont résolus en place dans le code du programme PHP, sur la base de l'analyse des magazines dans le catalogue /var/log/apache2.


Ajout du 22/11/22: inclusion de PHP 8.1 dans le serveur Web Apache2

Si l'instruction apt upgrade écrit que PHP 8.1 в ApaChe2 n'est pas activé par défaut

NOTICE: Not enabling PHP 8.1 FPM by default.
NOTICE: To enable PHP 8.1 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php8.1-fpm
NOTICE: You are seeing this message because you have apache2 package installed.

Allumez le PHP 8.1 dans Apache2:

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.1-fpm
sudo systemctl reload apache2

Vérification de la version PHP:

php --version

État du service "Le PHP 8.1 FastCGI Process Manager":

systemctl status php8.1-fpm

Le résultat de l'instruction phpinfo ();
PHP Version 8.1.2-1ubuntu2.8



Publications connexes