Es sieht so aus, als ob Apache2 nicht gestartet werden kann

Es sieht so aus, als ob Apache2 nicht gestartet werden kann

Tut mir leid, aber ich bin neu im Sysadmin-Bereich und ein absoluter Neuling bei Linux (ein absoluter Neuling), also bitte ich euch um Hilfe, weil ich keine Ahnung habe, was das verursacht (wie ich bereits gesagt habe, bin ich ein absoluter Neuling bei Linux). Ich habe versehentlich (was für ein Glück) Sachen mit tasksel entfernt, als ich versuchte, die GUI zu installieren, und dann einige davon neu installiert (zumindest die, an die ich mich erinnern konnte). Was ich jetzt habe, ist, dass Apache2 nicht startet:

startet nicht

und der Syntaxfehler in Zeile 146 von /etc/apache2/apache2.conf sieht aus wie

Das

Der dritte Fehler in /etc/apache2/mods-enabled/php7.1.load sieht so aus

Das Tatsächlich gibt es in /usr/lib/apache2/modules/ keine Datei mit der Bezeichnung „libphp7.1“, sondern nur „libphp8.1“ (tut mir leid, dass ich hier neue Screenshots habe). Kann mir bitte jemand sagen, was ich jetzt tun soll? Konfigurationsdatei von 7.1 auf 8.1 ändern oder einfach 7.1 installieren?

Antwort1

Höchstwahrscheinlich hat sich die PHP-Version in Ihrem System geändert (gilt für Debian/Ubuntu und Derivate, in anderen Distributionen können einige Pfade abweichen), aber nicht in Ihrer Apache-Konfiguration. Führen Sie Folgendes aus:

php -v 

Überprüfen Sie, welche Version geladen wird, indem Sie Folgendes ausführen:

ls -l /etc/apache2/mods-enabled/php*

Wenn Ihre Version von der von Apache geladenen Version abweicht, ist das Ergebnis

lrwxrwxrwx 1 root root 29 ago 17 12:19 php7.4.conf -> ../mods-available/php7.4.conf
lrwxrwxrwx 1 root root 29 ago 17 12:19 php7.4.load -> ../mods-available/php7.4.load

und Ihre neue Version ist jetzt 8.1. Überprüfen Sie, welche Module zur Ausführung verfügbar sind:

ls -l /etc/apache2/mods-available/

-rw-r--r-- 1 root root  855 jun 13 08:43 php7.4.conf
-rw-r--r-- 1 root root  102 jun 13 08:43 php7.4.load
-rw-r--r-- 1 root root  855 ago 15 07:24 php8.1.conf
-rw-r--r-- 1 root root  101 ago 15 07:24 php8.1.load

in der Liste erscheinen die alten (nicht funktionierenden) und neuen php8.1, führen Sie Folgendes aus, um neue Symlinks zu diesen Modulen der neuen Version zu erstellen

sudo ln -s /etc/apache2/mods-available/php8.1.conf  /etc/apache2/mods-enabled/php8.1.conf
sudo ln -s /etc/apache2/mods-available/php8.1.load  /etc/apache2/mods-enabled/php8.1.load

alte symbolische Links entfernen

sudo rm /etc/apache2/mods-enabled/php7.4.*

und starten Sie Apache neu

sudo service apache2 restart

Antwort2

libphp-7.1.sofehlt entweder auf Ihrem System oder ist an einer Stelle, die nicht so konfiguriert ist, dass Apache sie finden kann. Wahrscheinlich wurde sie während eines Upgrades entfernt, aber das ist schwer zu sagen.

Sie stellen fest, dass PHP auf einem Linux-Server ein ziemliches Chaos ist. Besonders auf etwas wie Ubuntu LTS (das Ihre Distribution sein kann oder nicht, das ist nur meine Sichtweise), wo Sie die Stabilität von LTS erhalten, dann aber in einer misslichen Lage stecken, die Sie zwingt, Monate oder Jahre hinter neuen Versionen anderer Software zurückzubleiben, die von neueren Funktionen von „Paket X“ abhängen, um richtig zu funktionieren. Unten erfahren Sie, wie ich damit auf Ubuntu umgehe. Wenn Sie Redhat, Slack, SuSE oder Yggdrasil Linux verwenden, wird dies nicht viel helfen.

Sie können nicht einfach eine neuere Version von PHP installieren, ohne irgendwann auf Abhängigkeitsprobleme mit der Betriebssystemsoftware zu stoßen. Manchmal können diese Abhängigkeiten mit der MySQL/MariaDB-Funktionalität kollidieren, was zu einem sehr verworrenen Problem vom Typ „Red Pill“ führen kann. Wie eine Person oben kommentiert hat, ist die mit dem Standardbetriebssystem gebündelte PHP-Version manchmal so veraltet, dass ihre Verwendung nicht sinnvoll ist (was definitiv bei allem unter PHP 8.0 der Fall ist und mit 7.4, Stand 29.03.22, sicherlich problematisch). Auch verwirrend für neue Administratoren, weil„Warum sollte für Ihr Betriebssystem so veraltete Software verfügbar sein?“, richtig? Ubuntu portiert anscheinend Sicherheitsprobleme auf LTS-Versionen zurück, aber es erfordert eine Menge Recherche, umverifizierenein bestimmter CVE ist tatsächlich in den LTS-Paketen gepatcht. Manchmal ist ein Fix verfügbar und bereits im Tarball/Git-Repo eines bestimmten Pakets implementiert, aber der Patch/Backport wartet noch darauf, dass ein Ubuntu-Betreuer ihn tatsächlich in das Deb-Paket einbindet, damit Sie ihn installieren können. Aus Sicherheitsgründen ist es tückisch, Software ohne Repo zu installieren, weil Sie sich dann auf einen manuellen Prozess verlassen müssen, um daran zu denken, dieses OOB-Paket zu aktualisieren, und das funktioniert nie wirklich. Administratoren gehen, die Leute vergessen es.

Glücklicherweise gibt es diesen Debian-Betreuer Ondřej Surý (eigentlich eher ein Zauberer) aus der Tschechischen Republik, der es auf sich genommen hat, ein Repo herauszubringen, das alle Grundlagen für die Aktualisierung von PHP auf Debian/Ubuntu-Systemen enthält. Sie könnenkonfigurierendieses wunderbarerepound PHP aktualisieren und es trotzdem wartbar halten. Als Bonus können Sie aktualisierenNginXUndApacheauch durch sein Repo, da einige der neueren PHP-Funktionen Änderungen an diesen Paketen erfordern. Sie können wahrscheinlich bessere Anweisungen unter einem der oben genannten Links finden, aber es gibt eine Handvoll Websites, dieführe dich durchsowie alle erforderlichen Änderungen am Nginx- oder Apache-Stack.

Ein Wort der Warnung: Bevor Sie das Ondřej Surý-Repo installieren, holen Sie sich eine Liste vonalledie aktuell installierten PHP/NginX/Apache-Pakete (z. B.: dpkg -l | egrep -i '(apache|nginx|php)'(oder eine ähnliche Beschwörungsformel von apt aptitude apt-get). Die Namen dieser Pakete ändern sich manchmal, und die Abhängigkeiten bringen manchmal eine Mischung von Versionen der PHP-Pakete mit sich. Zum Beispiel gab es etwas, das mit demmb-ZeichenfolgePaket vor ein paar PHP-Versionen. Es erforderte einigemanuelle Eingriffe

Natürlich lässt sich all dies manchmal durch ein Betriebssystem-Upgrade vermeiden (z. B.: „Crazy Camel“ -> „Damaged Dingo“), aber selbst dann fehlen in der neuesten LTS-Version möglicherweise modernste Funktionen, die manche Drittanbieter-Stacks benötigen, und Sie sitzen immer noch im selben Boot.

Wie dem auch sei, viel Glück und vergessen Sie nicht, einen Snapshot Ihrer VM zu erstellen, bevor Sie irgendetwas tun!

verwandte Informationen