6
September
2022
Neuinstallation des Apache2-Webservers unter Linux Mint 21 und Installation von PHP 8.1
16:34

Neuinstallation des Apache2-Webservers unter Linux Mint 21 und Installation von PHP 8.1

6 September 2022 16:34

Nach der Umstellung auf Linux Mint 21 „Vanessa“, das auf der Ubuntu-Jammy-Paketbasis basiert, lief Apache2 nicht mehr.
Nachfolgend wird beschrieben, wie ich den Webserver wiederhergestellt habe.

Probleme beim Starten des Apache2-Webservers

Das Problem war folgendes: Nach der Neuinstallation von Linux Mint wurde der Dienst „Apache2“ nicht gestartet:
sudo service apache2 start
Job für apache2.service ist fehlgeschlagen, da der Steuerungsprozess mit einem Fehlercode beendet wurde.
Weitere Informationen finden Sie unter „systemctl status apache2.service“ und „journalctl -xeu apache2.service“.
Aus den Protokollen geht hervor, dass der Dienst die Konfigurationsdatei /etc/apache2/apache2.conf nicht findet.

Ein Versuch, das Problem durch eine Neuinstallation zu beheben, hat zu nichts geführt:
sudo apt-get update && sudo apt-get purge apache2 && sudo apt-get install apache2

Auch nach der vollständigen Deinstallation von Apache2 blieben Spuren der alten Installation von „which apache2“ zurück

  • sollte eine leere Zeile ausgeben, aber die Ausgabe war anders und zeigte auf den Ordner /usr/sbin.

Das Problem lösen

1) Entfernen Sie die alte Version

sudo apt-get purge apache2

2) Entfernen Sie Spuren der vorherigen Installation

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

3) Fügen Sie ein PPA-Repository hinzu „ondrej/apache2“ und aktualisieren Sie den Paketcache:

Kommentar. Wenn das Betriebssystem Debian ist, verfügt es standardmäßig nicht über den Befehl „apt-add-repository“.

Nur unter Debian, andere müssen nicht zuerst ausgeführt werden:

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

Unter Ubuntu und Linux Mint:

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

4) Installieren Sie Apache2

sudo apt-get install apache2

5) Überprüfen Sie die Konfiguration

sudo apache2ctl configtest

Fehlermeldung:
AH00558: Apache2: Der vollständig qualifizierte Domänenname des Servers konnte anhand von 127.0.0.1 nicht zuverlässig ermittelt werden. Legen Sie die Anweisung „ServerName“ global fest, um diese Nachricht zu unterdrücken

Sie müssen den Namen oder die IP-Adresse des Webservers in der Anweisung „ServerName“ in der Konfigurationsdatei angeben

sudo nano /etc/apache2/apache2.conf

Fügen Sie die Zeile näher am Anfang der Datei hinzu

ServerName linux-pc

Dabei ist Linux-PC der Name, der im Terminal nach dem @-Symbol angezeigt wird

Speichern Sie die Konfiguration Strg+O, Strg+X

6) Starten Sie den Apache2-Dienst:

sudo service apache2 start

7) Überprüfen Sie den Betrieb des Webservers, indem Sie den Browser öffnen und die Adresse aufrufen, wobei Sie immer das Präfix http:// hinzufügen

Zum Beispiel,http://linux-pc

8) Konfigurieren Sie virtuelle Hosts im Ordner „/etc/Apache2/sites-available“.

Beispieltestdatei (Inhalt ohne Kommentare 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) Erstellen Sie Softlinks aus dem Verzeichnis mit aktivierten Sites:

cd /etc/apache2/sites-enabled

sudo ln -s ../sites-available/test.conf test.conf

Wir prüfen:

ls -l

10) Fügen Sie einen Alias in der Hosts-Datei hinzu

sudo nano /etc/hosts

127.0.0.1 test

Strg+O, Strg+X

12) Lesen Sie die Konfiguration erneut oder starten Sie den Apache2-Dienst wie folgt neu:

sudo service apache2 reload

13) Wir überprüfen die Funktionsfähigkeit der Website, indem wir auf http://test gehen

14) Wenn der Inhalt der Datei anstelle des Ergebnisses der PHP-Arbeit angezeigt wird (da die Site in PHP-Sprache ist),

sie müssen das PHP-Modul für Apache2 neu installieren

Lassen Sie uns zunächst herausfinden, welche PHP-Module für Apache2 zur Installation verfügbar sind:

apt-cache search libapache2-mod-php*

Es gibt beispielsweise Module für Apache2: PHP 7.4 und PHP8.1

Als nächstes entscheiden wir, welches PHP für das Projekt benötigt wird. Wenn die Twig-Vorlagen-Engine beispielsweise eine alte Version hat, wählen Sie 7.4, andernfalls 8.1

libapache2-mod-php8.1 – in HTML eingebettete Skriptsprache, serverseitig ausgeführt (Apache 2-Modul)
libapache2-mod-php7.4 – Übergangspaket

Ich installiere zunächst PHP der entsprechenden Version und PHP für die Kommandozeile.

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

PHP 8.1 weise ich als „Master“ zu, wenn es mehrere parallele Konfigurationen und PHP-Versionen gibt

sudo update-alternatives --config php

Ich entferne das Modul libapache2-mod-php8.1 zusammen mit libapache2-mod-php(dieser Trick löst viele Probleme):

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

Ich installiere sofort nur ein Modul libapache2-mod-php8.1:

sudo apt install libapache2-mod-php8.1

Wir ermöglichen den Start des PHP8.1-Moduls für Apache mit dem Befehl:

sudo a2enmod php8.1

Die Konsole zeigt Meldungen über die erfolgreiche Modulregistrierung an

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) Öffnen Sie die Website unter http://test. Wenn etwas nicht funktioniert, überprüfen Sie die Protokolle

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

16)Das Programm muss debuggt werden. häufig sind Fehler mit der Inkompatibilität alter Framework-Versionen (Hersteller) mit der neuen Version von PHP 8.1 verbunden.
Andere Probleme werden lokal im PHP-Programmcode gelöst, basierend auf der Analyse der Protokolle im Verzeichnis /var/log/apache2.


Update vom 22.11.22: Aktivierung von PHP 8.1 im Apache2-Webserver

Wenn der apt upgrade-Befehl besagt, dass PHP 8.1 in Apache2 standardmäßig nicht aktiviert ist

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.

Aktivieren Sie PHP 8.1 in Apache2:

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

PHP-Version prüfen:

php --version

Dienststatus „Der PHP 8.1 FastCGI Process Manager“:

systemctl status php8.1-fpm

Das Ergebnis des Befehls phpinfo();
PHP Version 8.1.2-1ubuntu2.8



Verwandte Veröffentlichungen