Erreur lors du démarrage d'Apache «valeur php»


12

Après la mise à jour de mon vps, j'obtiens l'erreur suivante:

Impossible de démarrer apache: démarrage de httpd: erreur de syntaxe à la ligne 31 de /etc/httpd/conf.d/php.conf: commande non valide 'php_value', peut-être mal orthographiée ou définie par un module non inclus dans la configuration du serveur [FAILED]

Activer les modules sur PHP:

[PHP Modules] bz2 calendar 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 pdo_sqlite shon slm shm_sql wddx xml xmlreader xmlrpc xmlwriter xsl zip zlib [modules Zend] le chargeur PHP ionCube

Ligne relative à l'erreur:

php_value session.save_handler "fichiers"

Que signifie l'erreur et comment puis-je la corriger?

Réponses:


12

J'ai récemment rencontré ce problème exact en utilisant Plesk 9.5 sur CentOS.

Je ne peux pas dire avec certitude si cela a été causé par une mise à jour de Plesk ou non. Le client ne pense pas que des modifications aient été apportées récemment, mais Apache n'a pas réussi à démarrer avec cette erreur.

Après une évaluation du système pour m'assurer qu'il n'était pas dû à une violation, j'ai effectué un dépannage et j'ai déterminé qu'il mod_phpavait été supprimé de la configuration Apache. Après avoir vérifié les paramètres de Plesk, chaque vhost sur la boîte utilisait FastCGI et SuExec.

Lorsque vous utilisez FastCGI et SuExec, vous ne pouvez pas modifier les directives PHP dans php.conf (FastCGI) et .htaccess (SuExec).

Le client avait initialement commenté les lignes incriminées, mais cette session a interrompu le support pour tout. La seule façon dont j'ai pu le résoudre était d'ajouter manuellement mod_php à httpd.conf.

Ajoutez la ligne suivante à la section avec les autres LoadModules. Assurez-vous que le chemin (../modules/) correspond au reste des modules qui s'y trouvent. Il y a de fortes chances qu'il existe déjà sur votre système et qu'il ait simplement été supprimé de la configuration lors de la mise à jour.

bash# vi /etc/httpd/conf/httpd.conf
LoadModule php5_module ../modules/libphp5.so

bash# apachectl restart

Cela m'a pris au dépourvu et je ne peux pas dire avec certitude que c'est la mise à niveau qui a causé le problème ou si c'est la meilleure solution. Je suis ouvert aux commentaires, mais je vous déconseille fortement de commenter les directives php /etc/httpd/conf.d/php.confcar cela casserait les choses.


merci David, a sauvé la journée. Mon journal yum montre une mise à jour automatique de php 5.3.26 mais je ne comprends pas vraiment pourquoi httpd.conf a été écrasé. Cordialement

Je vous remercie! Je suis allé sur httpd.conf et j'ai vu que la ligne LoadModule php5_module pathfilename avait été commentée, je viens de supprimer le # et tout est revenu à la normale.
Nickool

J'ai obtenu cette erreur après une mise à niveau d'Ubuntu 16.04 vers 18.04.1. Je ne connais pas la cause et il n'y a pas de répertoire de modules, à la place un répertoire mods-available et mods-enabled. J'ai ajouté des liens symboliques pour php7.2.conf et php7.2.load vers mods-enabled pointant vers mods-available, puis apache2 a pu démarrer.
Chris Jenks

6

Commande «php_value» non valide, peut-être mal orthographiée ou définie par un module non inclus dans la configuration du serveur

Apache httpd-2.4 peut échouer avec l'erreur ci-dessus si vous l'avez configuré par erreur pour utiliser un autre module mpm que prefork (car seul prefork mpm fonctionne correctement avec php sur Linux (CentOs7 / RHEL7). La correction de la configuration Apache httpd pour utiliser prefork mpm résoudra le problème.

  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


1

Cela peut se produire si vous avez configuré Apache pour utiliser un autre MPM que mod_prefork. Vérifiez quel module est utilisé par httpd -Vcommande. Cela devrait vous montrer quelque chose comme:

...
Server MPM: prefork
...

Si ce n'est pas le cas, vérifiez

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

comme décrit ici et assurez-vous que la ligne suivante y est présente et non commentée:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Si vous devez utiliser un autre module que mod_preforkvous devrez commenter ou supprimer ces lignes.


1

Comme indiqué précédemment par David, cela est probablement dû au fait que le mod PHP a été désactivé depuis Apache2.

Pour moi, cela est apparu comme une erreur lors du (re) démarrage d'Apache:

Le travail pour apache2.service a échoué car le processus de contrôle s'est terminé avec un code d'erreur. Voir "systemctl status apache2.service" et "journalctl -xe" pour plus de détails.

Ensuite, dans journalctl -xe:

AH00526: Erreur de syntaxe sur la ligne 31 de /etc/apache2/sites-enabled/host.conf Commande non valide 'php_value', peut-être mal orthographiée ou définie par un module non inclus dans la configuration du serveur

Cela s'est produit lors de la mise à niveau d'Ubuntu 17.10 vers 18.04 (et par conséquent de PHP7.1 vers 7.2), ce qui a apparemment complètement désactivé libapache2-mod-php *.

Sur Ubuntu, ce qui suit devrait le corriger:

sudo a2enmod php7.2
sudo systemctl restart apache2

0

Commentez simplement ces lignes.

j'ai eu

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

Ensuite, exécutez la "reconfiguration si vous êtes dans Plesk, puis redémarrez apache" semble fonctionner correctement. Si cela s'était produit après la mise à jour de Plesk # 53 il y a 10 minutes.


Salut, je n'utilise pas Plesk, j'utilise Zpanel. Que dois-je reconfigurer? Merci
David E.

J'ai essentiellement supprimé ces lignes, puis un redémarrage apache peut le corriger. Mais j'ai dû reconfigurer le vhost dans plesk. C'est juste un bouton, pas sûr de l'équivalent dans cpanel.
Jimmy

C'est un peu dérangeant. Cela fait partie du php de base - vous devez sauter à travers les cerceaux au moment de la compilation pour désactiver le support de session. Et selon le manuel, ils sont tous les deux modifiables en PHP_INI_ALL (mais cela pourrait valoir la peine d'essayer php_admin_value). Votre gestionnaire de session fonctionne-t-il? Utilisez-vous mod_php?
symcbean

1
Cela venait juste d'arriver. La mise en commentaire des lignes incriminées permettra à Apache de démarrer, mais supprimera le support de session entre autres. Il y a de fortes chances que mod_php ait été désactivé. J'utilise également Plesk.
David Houde

0

Avant d'exécuter la mise à niveau depuis Atomic, effectuez une sauvegarde du fichier php.conf. Ensuite, une fois la mise à niveau terminée, remplacez le nouveau fichier par l'ancien.


0

J'ai eu le même problème, j'ai réalisé que le module php5 était commenté, ce qui signifie qu'il ne pouvait pas se charger et dans phpmyadmin conf il me donnait des erreurs à cause de php_admin_value qui fonctionnait probablement avec php5_module et qui n'était pas en place. Je suis allé sur httpd.conf et je n'ai pas commenté:

LoadModule php5_module "c:/wamp/bin/php/php5.5.12/php5apache2_4.dll"

0

Edit : Après avoir implémenté mes commentaires ci-dessous, j'ai constaté qu'il y avait une autre raison pour laquelle je rencontrais ce problème. Le serveur a implémenté PHP-FPM. Une partie de l'implémentation de PHP-FPM signifiait qu'il /etc/httpd/conf.d/php.confétait désactivé (c'est-à-dire renommé en php.conf.bak). La récente mise à jour a apporté un nouveau php.conf. En conséquence, la configuration PHP-FPM était en conflit et provoquait les erreurs mentionnées. Le correctif consistait simplement à renommer php.conf en quelque chose comme php.conf.bak.feb2019. Par conséquent, php.conf n'est pas chargé et il n'y a donc pas de conflit avec php-fpm.

/// Avant l'édition: /////

La solution pour moi était une combinaison des réponses fournies ici.

J'ai remarqué cette erreur après la mise à jour d'un serveur Oracle Linux 7 qui n'a pas été mis à jour depuis longtemps

Comme suggéré par @dasharathmasirkar, @davidhoude @alexlanger, le problème provient de la configuration de mpm prefork qui a été remplacée après la mise à jour.

Pour remédier à ce:

vérifiez /etc/httpd/conf.modules.d/00-mpm.confet assurez-vous que la ligne suivante n'est pas commentée:

# 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

Assurez-vous également que l'autre mpm de travail est mis en commentaire afin qu'il n'entre pas en conflit:

# 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

Redémarrez ensuite apache: apachectl restart

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.