6
September
2022
Installieren Sie den Apache2-Webserver unter Linux Mint 21 neu und installieren Sie PHP 8.1
16:34

Installieren Sie den Apache2-Webserver unter Linux Mint 21 neu und installieren Sie PHP 8.1

6 September 2022 16:34

Nach der Umstellung auf Linux Mint 21 „Vanessa“, das auf der Ubuntu-Jammy-Paketbasis basiert, lief der Apache2-Webserver nicht mehr.
Wie ich die Arbeit des Webservers wiederhergestellt habe, wird unten beschrieben.

Probleme mit dem Start des Webservers Apache2

Das Problem war wie folgt - nach der Neuinstallation von Linux -Mint wurde der Dienst nicht gestartet. "apache2 ":
sudo service apache2 start
Job for apache2.service failed because the control process exited with error code.
See "Systemmctl status apache2.service" and "journalctl -xeu apache2.service" for details.
Die Protokolle zeigen, dass der Dienst die Konfigurationsdatei /etc/apache2/apache2.conf nicht finden kann.

Ein Versuch, durch Neustall zu beheben, führte zu nichts:
sudo apt-get update && sudo apt-get purge apache2 && sudo apt-get install apache2

Auch nach einer vollständigen Entfernung Apache2 Spuren der alten Installation blieben: "which apache2"

  • sollte eine leere Linie angezeigt werden, aber die Schlussfolgerung war unterschiedlich, was den /usr/sbin.

Das Problem lösen

1) Löschen Sie die alte Version

sudo apt-get purge apache2

2) Löschen von Spuren der früheren Installation

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

3) Fügen Sie das PPA-Repository "ondrej/apache2" hinzu und aktualisieren Sie den Cache der Pakete:

Kommentar. Wenn das Betriebssystem Debian, es sind keine Befehle erforderlich "apt-add-repository ".

Nur in Debian (muss in den Rest OSes zu Beginn nicht erledigt werden):

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

In Ubuntu und Linux Mint:

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

4) Wir installieren Apache2

sudo apt-get install apache2

5) Überprüfen Sie die Konfiguration

sudo apache2ctl configtest

Fehlermeldung:
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

Sie müssen den Namen oder die IP -Adresse des Webservers in der Direktive 'ServerName 'in der Konfigurationsdatei

sudo nano /etc/apache2/apache2.conf

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

ServerName linux-pc

Wo ist linux-pc - ein Name, der nach dem Symbol @ im Terminal angezeigt wird

Speichern Sie die Konfiguration CTRL+O, CTRL+X

6) Starten Sie den Apache2 -Dienst:

sudo service apache2 start

7) Wir überprüfen die Arbeit des Webservers, die Öffnung des Browsers und den Übergang zur Adresse. Fügen Sie das Präfix http: // hinzu

Zum Beispiel http://linux-pc

8) Richten Sie virtuelle Hosts im Ordner ein "/etc/apache2/sites-available"

Ein Beispiel für eine Testdatei (Inhalt ohne Kommentar 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 weiche Links aus dem von Sites-fähigen Katalog:

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

Überprüfen:

ls -l

10) Fügen Sie in der Hosts -Datei ein Pseudonym hinzu

sudo nano /etc/hosts

127.0.0.1 test

Ctrl+O, Ctrl+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 Arbeit der Website mit dem Übergang zu http: // test

14) Wenn der Inhalt der Datei anstelle des Ergebniss der PHP -Operation angezeigt wird (weil die dynamische Site in der PHP -Sprache),
sie müssen das PHP -Modul für Apache2 neu installieren

Zunächst finden wir heraus, welche PHP -Module für Apache2 zur Installation verfügbar sind:

apt-cache search libapache2-mod-fp*

Beispielsweise gibt es Module für Apache2: Php 7.4 und Php8.1

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

Libapache2-mod-php8.1 - eine in HTML eingebettete Skriptsprache, die serverseitig ausgeführt wird (Apache 2-Modul)
LIBapache2-mod-php7.4 - Übergangspaket

Ich installiere zuerst den PHP der entsprechenden Version und den PHP für die Befehlszeile.

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

Ich weise PHP 8.1 als "Haupt" zu, wenn mehrere parallele Konfigurationen und Versionen von PHP vorhanden sind:

sudo update-alternatives -config php

Ich entferne die BIBLIOTHEK 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

Installieren Sie sofort nur odin Modul LIBapache2-mOD-FP8.1:

sudo apt install libapache2-mod-php8.1

Wir erlauben den Start des Php8.1 -Moduls für Apache, den Befehl:

sudo a2enmod php8.1

In der Konsole werden Nachrichten über die erfolgreiche Registrierung des Moduls angezeigt

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 Site unter http://test. Wenn etwas nicht funktioniert, überprüfen wir die Magazine

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

16) Es ist notwendig, das Programm zu debuggen. Oft sind Fehler mit der Inkompatibilität der alten Versionen von Freiimvorkov (Anbieter) mit der neuen Version von PHP 8.1 verbunden.
Die verbleibenden Probleme werden im Code des PHP -Programms gelöst, basierend auf der Analyse von Magazinen im Katalog /var/log/apache2.


Zugabe von 22.11.22: Aufnahme von PHP 8.1 in den apache2 -Webserver

Wenn der apt-Upgrade-Befehl anzeigt, dass PHP 8.1 in Apache2 nicht standardmäßig 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.

Schalten Sie den PHP 8.1 in Apache2 ein:

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

Überprüfen der PHP -Version:

php --version

Servicestatus "Der PHP 8.1 fastCGI Process Manager":

systemctl status php8.1-fpm

das Ergebnis des phpinfo () -Teams;
PHP Version 8.1.2-1ubuntu2.8



Verwandte Veröffentlichungen