Genau auf dieses Problem bin ich kürzlich mit Plesk 9.5 unter CentOS gestoßen.
Ich kann nicht sicher sagen, ob es durch ein Update auf Plesk verursacht wurde oder nicht. Der Kunde glaubt nicht, dass in letzter Zeit Änderungen vorgenommen wurden, aber Apache konnte mit diesem Fehler nicht starten.
Nach einer Analyse des Systems, um sicherzustellen, dass es nicht auf einen Verstoß zurückzuführen ist, habe ich einige Fehlerbehebungsmaßnahmen durchgeführt und festgestellt, dass mod_php
es aus der Apache-Konfiguration entfernt wurde. Nach der Überprüfung der Plesk-Einstellungen verwendete jeder vhost auf der Box FastCGI und SuExec.
Bei Verwendung von FastCGI und SuExec können Sie die PHP-Anweisungen in php.conf (FastCGI) und .htaccess (SuExec) nicht ändern.
Der Kunde hatte die beleidigenden Zeilen ursprünglich auskommentiert, aber dadurch wurde die Sitzungsunterstützung für alles unterbrochen. Die einzige Möglichkeit, dies zu beheben, war das manuelle Hinzufügen von mod_php zurück zu httpd.conf.
Fügen Sie dem Abschnitt mit den anderen LoadModule die folgende Zeile hinzu. Stellen Sie sicher, dass der Pfad (../modules/) mit den übrigen Modulen dort übereinstimmt. Die Chancen stehen gut, dass es bereits auf Ihrem System vorhanden ist und während des Updates einfach aus der Konfiguration entfernt wurde.
bash# vi /etc/httpd/conf/httpd.conf
LoadModule php5_module ../modules/libphp5.so
bash# apachectl restart
Dies hat mich unvorbereitet überrascht, und ich kann nicht sicher sagen, ob es das Upgrade ist, das das Problem verursacht hat, oder ob dies die beste Lösung ist. Ich bin offen für Kommentare, rate jedoch dringend davon ab, die PHP-Direktiven zu kommentieren, /etc/httpd/conf.d/php.conf
da dies zu Problemen führen wird.
Der Apache httpd-2.4 kann mit dem oben genannten Fehler fehlschlagen, wenn Sie ihn versehentlich so konfiguriert haben, dass er ein anderes MPM-Modul als Prefork verwendet (da nur Prefork MPM unter Linux (CentOs7 / RHEL7) einwandfrei funktioniert) die Angelegenheit.
/etc/httpd/conf.modules.d/10-php.conf
LoadModule php5_module modules / libphp5.so
/etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_prefork_module modules / mod_mpm_prefork.so
quelle
Dies kann passieren, wenn Sie Apache so konfiguriert haben, dass es ein anderes MPM als mod_prefork verwendet. Überprüfen Sie, welches Modul vom
httpd -V
Befehl verwendet wird. Es sollte dir etwas zeigen wie:Ist dies nicht der Fall, überprüfen Sie
wie hier beschrieben und stellen Sie sicher, dass die nächste Zeile vorhanden und unkommentiert ist:
Wenn Sie ein anderes Modul verwenden müssen, müssen
mod_prefork
Sie diese Zeilen kommentieren oder löschen.quelle
Wie bereits von David kommentiert, liegt dies wahrscheinlich daran, dass der PHP-Mod von Apache2 deaktiviert wurde.
Für mich war es ein Fehler, als ich Apache (neu) startete:
Dann in journalctl -xe:
Dies geschah beim Upgrade von Ubuntu 17.10 auf 18.04 (und in der Folge von PHP7.1 auf 7.2), wodurch libapache2-mod-php * anscheinend vollständig deaktiviert wurde.
Unter Ubuntu sollte das folgende Problem behoben sein:
quelle
Kommentieren Sie diese Zeilen einfach aus.
ich hatte
Dann führen Sie die "Neu konfigurieren, wenn Sie in Plesk, dann Apache neu starten" schien gut zu funktionieren. Wäre dies nach dem plesk-Update # 53 vor 10 Minuten passiert?
quelle
Erstellen Sie vor dem Upgrade von Atomic eine Sicherungskopie der Datei
php.conf
. Überschreiben Sie dann nach Abschluss des Upgrades die neue Datei mit der alten.quelle
Ich hatte das ähnliche Problem, erkannte, dass das php5-Modul kommentiert wurde, was bedeutet, dass es nicht geladen werden konnte und in phpmyadmin conf gab es mir Fehler, weil php_admin_value vorhanden war, das wahrscheinlich mit php5_module funktionierte und es nicht vorhanden war. Ich ging zu httpd.conf und kommentierte nicht:
quelle
Bearbeiten : Nachdem ich meine Kommentare unten implementiert hatte, stellte ich fest, dass es einen weiteren Grund gab, warum ich auf dieses Problem gestoßen bin. Auf dem Server ist PHP-FPM implementiert. Ein Teil der Implementierung von PHP-FPM bedeutete, dass dies
/etc/httpd/conf.d/php.conf
deaktiviert (dh in php.conf.bak umbenannt) wurde. Das letzte Update brachte eine neue php.conf. Infolgedessen war die PHP-FPM-Konfiguration widersprüchlich und verursachte die genannten Fehler. Die Lösung bestand darin, die php.conf einfach in so etwas wie umzubenennenphp.conf.bak.feb2019
. Dadurch wird die php.conf nicht geladen und es besteht kein Konflikt mit php-fpm./// Vor der Bearbeitung: /////
Die Lösung für mich war eine Kombination der hier gegebenen Antworten.
Ich bemerkte diesen Fehler nach der Aktualisierung eines Oracle Linux 7-Servers, der schon lange nicht mehr aktualisiert wurde
Wie von @dasharathmasirkar, @davidhoude @alexlanger vorgeschlagen, ist das Problem darauf zurückzuführen, dass mpm prefork config nach dem Update überschrieben wird.
Um das zu erwähnen:
überprüfe
/etc/httpd/conf.modules.d/00-mpm.conf
und stelle sicher, dass die folgende Zeile nicht kommentiert ist:Stellen Sie außerdem sicher, dass die andere Worker-MPM auskommentiert ist, damit kein Konflikt entsteht:
Dann starte Apache neu:
apachectl restart
quelle