it-swarm.com.de

Fehler Starten Sie Apache "PHP-Wert"

Nach dem Aktualisieren meines vps erhalte ich den folgenden Fehler:

Fehler beim Starten von Apache: Starten von httpd: Syntaxfehler in Zeile 31 von /etc/httpd/conf.d/php.conf: Ungültiger Befehl 'php_value', möglicherweise falsch geschrieben oder von einem Modul definiert, das nicht in der Serverkonfiguration enthalten ist [FAILED]

Aktivieren Sie Module auf PHP:

[PHP-Module] bz2 kalender Core ctype curl date dom ereg exif fileinfo filter ftp Gd gettext gmp hash iconv imap intl ionCube Loader json libxml mbstring mcrypt mhash mysql mysqli openssl pcntl pcre PDO pdo_mysql wddx xml xmlreader xmlrpc xmlwriter xsl Zip zlib [Zend-Module] der ionCube PHP Loader

Zeile relativ zum Fehler:

php_value session.save_handler "files"

Was bedeutet der Fehler und wie kann ich ihn beheben?

12
David E.

Ich bin kürzlich mit Plesk 9.5 unter CentOS auf genau dieses Problem gestoßen.

Ich kann nicht sicher sagen, ob es durch ein Update von Plesk verursacht wurde oder nicht. Der Kunde glaubt nicht, dass kürzlich Änderungen vorgenommen wurden, aber Apache konnte mit diesem Fehler nicht beginnen.

Nach einer Bewertung des Systems, um sicherzustellen, dass es nicht auf einen Verstoß zurückzuführen ist, führte ich eine Fehlerbehebung durch und stellte fest, dass mod_php wurde aus der Apache-Konfiguration entfernt. Nach Überprüfung der Plesk-Einstellungen verwendete jeder vhost auf der Box FastCGI und SuExec.

Bei Verwendung von FastCGI und SuExec können Sie die Anweisungen PHP] in php.conf (FastCGI) und .htaccess (SuExec) nicht ändern.

Der Kunde hatte ursprünglich die beleidigenden Zeilen auskommentiert, aber dies unterbrach die Sitzungsunterstützung für alles. Die einzige Möglichkeit, das Problem zu beheben, bestand darin, mod_php manuell wieder zu httpd.conf hinzuzufügen.

Fügen Sie dem Abschnitt mit den anderen LoadModules 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 ü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 aber dringend davon ab, die PHP-Direktiven in /etc/httpd/conf.d/php.conf wie es Sachen kaputt machen wird.

12
David Houde

Ungültiger Befehl 'php_value', möglicherweise falsch geschrieben oder von einem Modul definiert, das nicht in der Serverkonfiguration enthalten ist

Der Apache httpd-2.4 kann mit dem obigen Fehler fehlschlagen, wenn Sie ihn versehentlich so konfiguriert haben, dass er ein anderes MPM-Modul als Prefork verwendet (da nur Prefork MPM unter PHP unter Linux (CentOs7/RHEL7) einwandfrei funktioniert. Das Korrigieren der Apache httpd-Konfiguration zur Verwendung von Prefork MPM wird behoben die Angelegenheit.

  1. /etc/httpd/conf.modules.d/10-php.conf

    LoadModule php5_module modules/libphp5.so

  2. /etc/httpd/conf.modules.d/00-mpm.conf

    LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

6

Dies kann passieren, wenn Sie Apache so konfiguriert haben, dass ein anderes MPM als mod_prefork verwendet wird. Überprüfen Sie mit dem Befehl httpd -V, Welches Modul verwendet wird. Es sollte Ihnen etwas zeigen wie:

...
Server MPM: prefork
...

Wenn nicht, überprüfen Sie

/etc/httpd/conf.modules.d/00-mpm.conf

wie beschrieben hier und stellen Sie sicher, dass die nächste Zeile darin vorhanden und nicht kommentiert ist:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Wenn Sie ein anderes Modul als mod_prefork Verwenden müssen, müssen Sie diese Zeilen kommentieren oder löschen.

1
Alex Langer

Wie bereits von David kommentiert, liegt dies wahrscheinlich daran, dass der Mod PHP==) von Apache2 deaktiviert wurde.

Für mich erschien es als Fehler beim (Neustarten) von Apache:

Job für Apache2.service fehlgeschlagen, da der Steuerungsprozess mit Fehlercode beendet wurde. Weitere Informationen finden Sie unter "systemctl status Apache2.service" und "journalctl -xe".

Dann in journalctl -xe:

AH00526: Syntaxfehler in Zeile 31 von /etc/Apache2/sites-enabled/Host.conf Ungültiger Befehl 'php_value', möglicherweise falsch geschrieben oder von einem Modul definiert, das nicht in der Serverkonfiguration enthalten ist

Dies geschah beim Upgrade von Ubuntu 17.10 auf 18.04 (und folglich von PHP7.1 auf 7.2), wodurch libapache2-mod-php * anscheinend vollständig deaktiviert wurde.

Unter Ubuntu sollte Folgendes behoben werden:

Sudo a2enmod php7.2
Sudo systemctl restart Apache2
1
ywarnier

Kommentieren Sie einfach diese Zeilen aus.

Ich hatte

#php_value session.save_handler "files"
#php_value session.save_path    "/var/lib/php/session"

Führen Sie dann die Option "Rekonfigurieren, wenn Sie in Plesk sind, dann Apache neu starten" aus. Wäre dies nach dem plesk Update # 53 vor 10 Minuten passiert?.

0
Jimmy

Ich hatte das ähnliche Problem, stellte fest, 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 wahrscheinlich mit php5_module funktionierte und es nicht vorhanden war. Ich ging zu httpd.conf und kommentierte:

LoadModule php5_module "c:/wamp/bin/php/php5.5.12/php5Apache2_4.dll"
0
Nickool

Bearbeiten: Nachdem ich meine Kommentare unten implementiert hatte, stellte ich fest, dass es einen anderen Grund gab, warum ich auf dieses Problem stieß. Auf dem Server ist PHP-FPM implementiert. Ein Teil der Implementierung von PHP-FPM bedeutete, dass /etc/httpd/conf.d/php.conf Deaktiviert (d. H. 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. Das Update bestand darin, php.conf einfach in php.conf.bak.feb2019 Umbenennen. Infolgedessen wird php.conf nicht geladen und daher besteht kein Konflikt mit php-fpm.

/// Vor dem Bearbeiten: /////

Die Lösung für mich war eine Kombination der hier gegebenen Antworten.

Ich habe diesen Fehler nach dem Aktualisieren eines Oracle Linux 7-Servers festgestellt, der seit langem nicht mehr aktualisiert wurde

Wie von @dasharathmasirkar, @davidhoude @alexlanger vorgeschlagen, ist das Problem darauf zurückzuführen, dass die mpm prefork-Konfiguration nach dem Update überschrieben wurde.

Um das zu erwähnen:

aktivieren Sie /etc/httpd/conf.modules.d/00-mpm.conf und stellen Sie sicher, dass die folgende Zeile nicht kommentiert ist:

# prefork MPM: Implements a non-threaded, pre-forking web server
# See: http://httpd.Apache.org/docs/2.4/mod/prefork.html
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Stellen Sie außerdem sicher, dass die mpm des anderen Arbeitnehmers auskommentiert ist, damit keine Konflikte auftreten:

# worker MPM: Multi-Processing Module implementing a hybrid
# multi-threaded multi-process web server
# See: http://httpd.Apache.org/docs/2.4/mod/worker.html
# LoadModule mpm_worker_module modules/mod_mpm_worker.so

Starten Sie dann Apache neu: apachectl restart

0
ymdahi

Erstellen Sie vor dem Ausführen des Upgrades von Atomic eine Sicherungskopie der Datei php.conf. Überschreiben Sie dann nach Abschluss des Upgrades die neue Datei mit der alten.

0
David E.