Erro ao iniciar o Apache "php value"

12

Depois de atualizar meus vps, recebo o seguinte erro:

Falha ao iniciar o apache: Iniciando httpd: Erro de sintaxe na linha 31 de /etc/httpd/conf.d/php.conf: Comando inválido 'php_value', talvez com erro de ortografia ou definido por um módulo não incluído na configuração do servidor [FAILED]

Ative os módulos no PHP:

[PHP Modules] calendar 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 Pharl readline Reflection sqm wddx xmlreader xmlrpc xmlwriter xsl zip zlib [Módulos Zend] o ionCube PHP Loader

Linha relativa ao erro:

php_value session.save_handler "arquivos"

O que significa o erro e como posso corrigi-lo?

David E.
fonte

Respostas:

12

Recentemente, deparei-me com esse problema exato usando o Plesk 9.5 no CentOS.

Não posso dizer com certeza se foi causado por uma atualização do Plesk ou não. O cliente não acha que nenhuma alteração foi feita recentemente, mas o Apache falhou ao iniciar com este erro.

Após uma avaliação do sistema para garantir que não foi devido a uma violação, eu resolvi alguns problemas e determinei que mod_phphavia sido removido da configuração do Apache. Após verificar as configurações do Plesk, todos os hosts da caixa estavam usando o FastCGI e o SuExec.

Ao usar o FastCGI e o SuExec, você não pode alterar as diretivas do PHP no php.conf (FastCGI) e no .htaccess (SuExec).

O cliente havia comentado originalmente as linhas ofensivas, mas isso interrompeu o suporte da sessão para tudo. A única maneira de resolver isso foi adicionar manualmente o mod_php de volta ao httpd.conf.

Adicione a seguinte linha à seção com os outros LoadModule. Verifique se o caminho (../modules/) corresponde ao restante dos módulos lá. Há boas chances de que ele já exista no seu sistema e tenha sido simplesmente removido da configuração durante a atualização.

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

bash# apachectl restart

Isso me pegou de surpresa, e não posso dizer com certeza que foi a atualização que causou o problema ou se essa é a melhor correção. Estou aberto a comentar, mas não aconselho comentar as diretivas php, /etc/httpd/conf.d/php.confpois elas quebram as coisas.

David Houde
fonte
obrigado David, salvou o dia. Meu log yum mostra uma atualização automática para o php 5.3.26, mas realmente não entendo por que o httpd.conf foi sobrescrito. Saudações
Obrigado! Eu fui ao httpd.conf e vi que a linha LoadModule php5_module pathfilename havia sido comentada, apenas removi o # e tudo voltou ao normal.
Nickool 15/01
Eu obtive esse erro após uma atualização do Ubuntu 16.04 para 18.04.1. Eu não sei a causa e não há diretório de módulos, em vez disso, um diretório mods-available e mods-enabled. Adicionei links simbólicos para php7.2.conf e php7.2.load no mods-enabled apontando para mods-available e, em seguida, o apache2 foi capaz de iniciar.
precisa
5

Comando inválido 'php_value', talvez com erro de ortografia ou definido por um módulo não incluído na configuração do servidor

O Apache httpd-2.4 pode falhar com o erro acima se você, por engano, configurá-lo para usar outro módulo mpm que não o prefork (pois apenas o prefork mpm funciona bem com php no Linux (CentOs7 / RHEL7). o problema.

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

    Módulos LoadModule php5_module / libphp5.so

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

    Módulos LoadModule mpm_prefork_module / mod_mpm_prefork.so

dasharath masirkar
fonte
1

Isso pode acontecer se você configurou o Apache para usar outro MPM que não seja o mod_prefork. Verifique qual módulo está em uso por httpd -Vcomando. Deve mostrar algo como:

...
Server MPM: prefork
...

Se não estiver, verifique

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

como descrito aqui e verifique se a próxima linha está presente nela e não é comentada:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Caso você precise usar outro módulo, mod_preforkserá necessário comentar ou excluir essas linhas.

Alex Langer
fonte
1

Como comentado anteriormente por David, isso é provável porque o mod PHP foi desativado do Apache2.

Para mim, pareceu um erro ao (re) iniciar o Apache:

A tarefa do apache2.service falhou porque o processo de controle saiu com o código de erro. Consulte "status do systemctl apache2.service" e "journalctl -xe" para obter detalhes.

Em seguida, dentro do journalctl -xe:

AH00526: Erro de sintaxe na linha 31 do /etc/apache2/sites-enabled/host.conf Comando inválido 'php_value', talvez com erro de ortografia ou definido por um módulo não incluído na configuração do servidor

Isso aconteceu ao atualizar do Ubuntu 17.10 para 18.04 (e, consequentemente, do PHP7.1 para 7.2), que aparentemente desativou completamente o libapache2-mod-php *.

No Ubuntu, o seguinte deve corrigi-lo:

sudo a2enmod php7.2
sudo systemctl restart apache2
mais anão
fonte
0

Apenas comente essas linhas.

eu tinha

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

Em seguida, execute o "reconfigure se você estiver no Plesk e reinicie o apache" parecia funcionar bem. Isso aconteceu após a atualização do plesk # 53 10 minutos atrás.

Jimmy
fonte
Olá, não estou usando o Plesk, usando o Zpanel. O que eu preciso reconfigurar? Obrigado
David E.
Eu basicamente removi essas linhas e, em seguida, uma reinicialização do apache pode corrigi-lo. Mas eu tive que reconfigurar o vhost no plesk. É apenas um botão, não tenho certeza do equivalente no cpanel.
Jimmy
Isso é um pouco perturbador. Isso faz parte do núcleo do php - você precisa pular os bastidores no momento da compilação para desativar o suporte à sessão. E de acordo com o manual, ambos podem ser alterados no PHP_INI_ALL (mas pode valer a pena tentar php_admin_value). Seu manipulador de sessões funciona? Você está usando o mod_php?
symcbean
1
Só tinha isso acontecido. Comentar as linhas ofensivas permitirá que o Apache inicie, mas remove o suporte da sessão, entre outras coisas. Provavelmente, o mod_php foi desativado. Também estou usando o Plesk.
David Houde
0

Antes de executar a atualização do Atomic, faça um backup do arquivo php.conf. Depois que a atualização for concluída, substitua o novo arquivo pelo antigo.

David E.
fonte
0

Eu tive o problema semelhante, percebi que o módulo php5 foi comentado, o que significa que não era possível carregar e, no phpmyadmin conf, estava me dando erros por causa do php_admin_value, que provavelmente estava trabalhando com o php5_module e não estava no lugar. Eu fui ao httpd.conf e descomentei:

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

Edit : Depois de implementar meus comentários abaixo, descobri que havia outra razão pela qual eu estava correndo para esse problema. O servidor possui PHP-FPM implementado. Parte da implementação do PHP-FPM significava que /etc/httpd/conf.d/php.confestava desativado (ou seja, renomeado para php.conf.bak). A atualização recente trouxe um novo php.conf. Como resultado, a configuração do PHP-FPM estava em conflito e causando os erros mencionados. A correção foi simplesmente renomear o php.conf para algo assim php.conf.bak.feb2019. Como resultado, o php.conf não é carregado e, portanto, não há conflito com o php-fpm.

/// Antes de editar: /////

A solução para mim foi uma combinação das respostas fornecidas aqui.

Percebi esse erro depois de atualizar um servidor Oracle Linux 7 que não foi atualizado por muito tempo

Conforme sugerido por @dasharathmasirkar, @davidhoude @alexlanger, o problema decorre da configuração do mpm prefork sendo substituída após a atualização.

Para endereçar isto:

verifique /etc/httpd/conf.modules.d/00-mpm.confe verifique se a seguinte linha não é comentada:

# 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

Além disso, verifique se o outro funcionário mpm está comentado para não entrar em conflito:

# 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

Em seguida, reinicie o apache: apachectl restart

ymdahi
fonte