Errore Avvio Apache "valore php"


12

Dopo aver aggiornato il mio vps, ottengo il seguente errore:

Impossibile avviare apache: avvio di httpd: errore di sintassi nella riga 31 di /etc/httpd/conf.d/php.conf: comando 'php_value' non valido, forse errato o definito da un modulo non incluso nella configurazione del server [FAILED]

Abilita i moduli su PHP:

[PHP Moduli] bz2 calendario Nucleo data ctype ricciolo dom ereg exif fileinfo filtro ftp gd gettext gmp hash iconv imap Intl ionCube Loader JSON libxml mbstring mcrypt Mhash mysql mysqli OpenSSL PCNTL pcre DOP pdo_mysql PDO_SQLITE Phar readline sessione Riflessione shmop SimpleXML prese SPL sqlite3 tokenizer Suhosin di serie wddx xml xmlreader xmlrpc xmlwriter xsl zip zlib [Moduli Zend] Caricatore PHP ionCube

Riga relativa all'errore:

php_value session.save_handler "file"

Cosa significa l'errore e come posso risolverlo?

Risposte:


12

Di recente ho riscontrato questo esatto problema usando Plesk 9.5 su CentOS.

Non posso dire con certezza se sia stato causato da un aggiornamento a Plesk o meno. Il cliente non ritiene che siano state apportate modifiche di recente, ma Apache non è riuscito a iniziare con questo errore.

Dopo una valutazione del sistema per accertarmi che non fosse dovuta a una violazione, ho fatto un po 'di risoluzione dei problemi e ho stabilito che mod_phpera stato rimosso dalla configurazione di Apache. Dopo aver verificato le impostazioni di Plesk, ogni vhost sulla confezione utilizzava FastCGI e SuExec.

Quando si utilizzano FastCGI e SuExec, non è possibile modificare le direttive PHP in php.conf (FastCGI) e .htaccess (SuExec).

Il cliente aveva originariamente commentato le righe offensive, ma questo ha interrotto il supporto della sessione per tutto. L'unico modo in cui sono stato in grado di risolverlo è stato aggiungere manualmente mod_php a httpd.conf.

Aggiungi la seguente riga alla sezione con gli altri LoadModule. Assicurarsi che il percorso (../modules/) corrisponda al resto dei moduli presenti. È probabile che esista già sul tuo sistema e che sia stato semplicemente rimosso dalla configurazione durante l'aggiornamento.

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

bash# apachectl restart

Questo mi ha colto di sorpresa e non posso dire con certezza che è stato l'aggiornamento a causare il problema o se questa è la soluzione migliore. Sono aperto per un commento, ma sconsiglio vivamente di commentare le direttive php in /etc/httpd/conf.d/php.confquanto romperà le cose.


grazie David, salvato la giornata. Il mio log di yum mostra un aggiornamento automatico a php 5.3.26 ma non capisco davvero perché httpd.conf sia stato scritto. Saluti

Grazie! Sono andato su httpd.conf e ho visto che la riga LoadModule php5_module pathfilename era stata commentata, ho appena rimosso il # e tutto è tornato alla normalità.
Nickool,

Ho ottenuto questo errore dopo un aggiornamento da Ubuntu 16.04 a 18.04.1. Non conosco la causa e non esiste una directory dei moduli, ma una directory disponibile e modificata. Ho aggiunto collegamenti simbolici per php7.2.conf e php7.2.load a mods enabled che punta a mods available e quindi apache2 è stato in grado di avviarsi.
Chris Jenks,

6

Comando 'php_value' non valido, forse errato o definito da un modulo non incluso nella configurazione del server

Apache httpd-2.4 può non riuscire con l'errore precedente se per errore lo hai configurato per utilizzare un modulo mpm diverso da prefork (poiché solo prefork mpm funziona bene con php su Linux (CentOs7 / RHEL7). La correzione della configurazione httpd di Apache per utilizzare prefork mpm risolverà il problema.

  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

Ciò può accadere se Apache è stato configurato per utilizzare un altro MPM diverso da mod_prefork. Controlla quale modulo è in uso dal httpd -Vcomando. Dovrebbe mostrarti qualcosa del tipo:

...
Server MPM: prefork
...

In caso contrario, controllare

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

come descritto qui e assicurati che la riga successiva sia presente e non commentata:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Nel caso in cui sia necessario utilizzare un modulo diverso mod_preforkda quello che si dovrà commentare o eliminare queste righe.


1

Come precedentemente commentato da David, ciò è probabilmente dovuto al fatto che la mod PHP è stata disabilitata da Apache2.

Per me, è apparso come un errore quando (ri) avviare Apache:

Il processo per apache2.service non è riuscito perché il processo di controllo è terminato con un codice di errore. Vedi "systemctl status apache2.service" e "journalctl -xe" per i dettagli.

Quindi, all'interno di journalctl -xe:

AH00526: Errore di sintassi sulla riga 31 di /etc/apache2/sites-enabled/host.conf Comando 'php_value' non valido, forse errato o definito da un modulo non incluso nella configurazione del server

Ciò è accaduto durante l'aggiornamento da Ubuntu 17.10 a 18.04 (e di conseguenza da PHP7.1 a 7.2), che apparentemente ha disabilitato completamente libapache2-mod-php *.

Su Ubuntu, il seguente dovrebbe risolverlo:

sudo a2enmod php7.2
sudo systemctl restart apache2

0

Commenta solo quelle righe.

avevo

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

Quindi esegui "riconfigura se sei in Plesk, quindi riavvia apache" sembra funzionare bene. È accaduto dopo l'aggiornamento plesk n. 53 10 minuti fa.


Ciao, non sto usando Plesk, usando Zpanel. Cosa devo riconfigurare? Grazie
David E.

Ho sostanzialmente rimosso quelle linee e quindi un riavvio di Apache potrebbe risolverlo. Ma ho dovuto riconfigurare il vhost in plesk. È solo un pulsante, non certo l'equivalente in cpanel.
Jimmy,

Questo è un po 'inquietante. Questo fa parte del core php - devi disabilitare i cerchi in fase di compilazione per disabilitare il supporto della sessione. E secondo il manuale, sono entrambi modificabili in PHP_INI_ALL (ma potrebbe valere la pena provare php_admin_value). Il gestore della sessione funziona? Stai usando mod_php?
symcbean,

1
È appena successo. Commentare le righe offensive consentirà l'avvio di Apache, ma rimuove il supporto della sessione tra le altre cose. È probabile che mod_php sia stato disabilitato. Sto usando anche Plesk.
David Houde,

0

Prima di eseguire l'aggiornamento da Atomic, eseguire un backup del file php.conf. Quindi, al termine dell'aggiornamento, sovrascrivere il nuovo file con quello vecchio.


0

Ho avuto il problema simile, mi sono reso conto che il modulo php5 è stato commentato, il che significa che non è stato possibile caricare e in conf phpmyadmin mi stava dando errori a causa di php_admin_value che probabilmente funzionava con php5_module e non era a posto. Sono andato su httpd.conf e non commentato:

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

0

Modifica : dopo aver implementato i miei commenti qui sotto, ho scoperto che c'era un'altra ragione per cui stavo incontrando questo problema. Il server ha PHP-FPM implementato. Parte dell'implementazione di PHP-FPM significava che /etc/httpd/conf.d/php.confera disabilitato (cioè rinominato in php.conf.bak). Il recente aggiornamento ha portato un nuovo php.conf. Di conseguenza, la configurazione di PHP-FPM era in conflitto e causava gli errori menzionati. La soluzione era semplicemente rinominare php.conf in qualcosa del genere php.conf.bak.feb2019. Di conseguenza, php.conf non viene caricato e quindi non c'è conflitto con php-fpm.

/// Prima della modifica: /////

La soluzione per me è stata una combinazione delle risposte fornite qui.

Ho notato questo errore dopo aver aggiornato un server Oracle Linux 7 che non è stato aggiornato a lungo

Come suggerito da @dasharathmasirkar, @davidhoude @alexlanger, il problema deriva dal fatto che mpm prefork config è stato sostituito dopo l'aggiornamento.

Per affrontare questo:

controlla /etc/httpd/conf.modules.d/00-mpm.confe assicurati che la seguente riga sia senza commenti:

# 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

Inoltre, assicurarsi che l'altro mpm del lavoratore sia commentato in modo che non sia in conflitto:

# 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

Quindi riavviare apache: apachectl restart

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.