错误启动Apache“ php值”


12

更新我的vps后,出现以下错误:

无法启动apache:启动httpd:/etc/httpd/conf.d/php.conf的第31行的语法错误:无效的命令“ php_value”,可能是拼写错误或由服务器配置中未包含的模块定义的[FAILED]

在PHP上启用模块:

[PHP模块] bz2日历核心ctype curl日期dom ereg exif文件信息过滤器ftp gd gettext gmp哈希图标wddx xml xmlreader xmlrpc xmlwriter xsl zip zlib [Zend模块] ionCube PHP加载程序

相对于错误的行:

php_value session.save_handler“文件”

错误是什么意思,我该如何解决?

Answers:


12

我最近在CentOS上使用Plesk 9.5遇到了这个确切的问题。

我不能肯定地说这是否是由于对Plesk的更新引起的。客户认为最近没有进行任何更改,但是Apache无法从此错误开始。

在对系统进行评估以确保不是由于违规造成的之后,我进行了一些故障排除,并确定mod_php已将其从Apache配置中删除。检查Plesk设置后,包装盒上的每个虚拟主机都使用FastCGI和SuExec。

使用FastCGI和SuExec时,不能在php.conf(FastCGI)和.htaccess(SuExec)中更改PHP指令。

该客户最初注释掉有问题的行,但是这破坏了会话对所有内容的支持。我能够解决的唯一方法是手动将mod_php添加回httpd.conf。

将以下行与其他LoadModule一起添加到本节中。确保路径(../modules/)与此处的其余模块匹配。很有可能它已经存在于您的系统中,并且在更新过程中只是从配置中删除了。

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

bash# apachectl restart

这使我措手不及,我不能肯定地说是导致此问题的升级或这是否是最佳解决方案。我愿意征求意见,但强烈建议您不要注释掉php指令,/etc/httpd/conf.d/php.conf因为它会破坏内容。


感谢大卫,保存了这一天。我的yum日志显示了对php 5.3.26的自动更新,但并不真正理解为什么httpd.conf被覆盖。问候

谢谢!我去了httpd.conf,我发现LoadModule php5_module pathfilename这一行已经被注释掉了,我只是去掉了#,一切都恢复了正常。
Nickool '16

从Ubuntu 16.04升级到18.04.1。后,出现此错误。我不知道原因,也没有模块目录,而是一个可用的mods和启用了mods的目录。我将php7.2.conf和php7.2.load的符号链接添加到启用了mods的指向mods-available的位置,然后apache2能够启动。
克里斯·詹克斯

6

无效的命令“ php_value”,可能是拼写错误或由服务器配置中未包含的模块定义的

如果您将Apache httpd-2.4错误地配置为使用除prefork以外的其他mpm模块,则Apache可能会因上述错误而失败(因为只有prefork mpm在Linux(CentOs7 / RHEL7)上可以与php一起正常工作。问题。

  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模块/mod_mpm_prefork.so


1

如果将Apache配置为使用除mod_prefork之外的其他MPM,则可能会发生这种情况。通过httpd -V命令检查正在使用的模块。它应该显示以下内容:

...
Server MPM: prefork
...

如果不是,请检查

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

如此处所述并确保其中存在下一行且未加注释:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

如果您需要使用其他模块mod_prefork,则必须注释或删除这些行。


1

正如David之前评论的那样,这很可能是因为PHP mod已从Apache2禁用。

对我来说,(重新)启动Apache时,它显示为错误:

apache2.service的作业失败,因为控制进程退出并显示错误代码。有关详细信息,请参见“ systemctl status apache2.service”和“ journalctl -xe”。

然后,在journalctl -xe内部:

AH00526:/etc/apache2/sites-enabled/host.conf的第31行出现语法错误无效的命令“ php_value”,可能是拼写错误或由服务器配置中未包含的模块定义的

从Ubuntu 17.10升级到18.04(因此从PHP7.1升级到7.2)时发生了这种情况,这显然完全禁用了libapache2-mod-php *。

在Ubuntu上,以下应解决此问题:

sudo a2enmod php7.2
sudo systemctl restart apache2

0

只需注释掉这些行。

我有

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

然后运行“重新配置,如果您在Plesk中,然后重新启动apache”似乎正常。在10分钟前更新#53后是否发生了这种情况。


嗨,我不是使用Plesk,而是使用Zpanel。我需要重新配置什么?谢谢
David E.

我基本上删除了这些行,然后重新启动apache可以解决它。但是我不得不在plesk中重新配置虚拟主机。这只是一个按钮,不确定cpanel中的等效按钮。
吉米

这有点令人不安。这是核心php的一部分-您需要在编译时跳过箍以禁用会话支持。并且根据手册,它们都可以在PHP_INI_ALL中更改(但是值得尝试php_admin_value)。您的会话处理程序正常工作吗?您在使用mod_php吗?
symcbean

1
刚发生这种情况。注释掉有问题的行将允许Apache启动,但除其他外,除去会话支持。可能是mod_php被禁用。我也在使用Plesk。
David Houde 2013年

0

从Atomic运行升级之前,请备份文件php.conf。然后,升级完成后,用旧文件覆盖新文件。


0

我遇到了类似的问题,意识到php5模块已被注释,这意味着无法加载,并且在phpmyadmin conf中,由于有php_admin_value可能正在与php5_module一起使用而没有到位,这给了我错误。我去了httpd.conf并没有评论:

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

0

编辑:在执行下面的评论后,我发现还有另一个原因遇到了这个问题。该服务器已实现PHP-FPM。PHP-FPM的部分实现意味着已/etc/httpd/conf.d/php.conf被禁用(即重命名为php.conf.bak)。最近的更新引入了一个新的php.conf。结果,PHP-FPM配置发生冲突并导致提到的错误。解决方法是将php.conf重命名为php.conf.bak.feb2019。结果,不会加载php.conf,因此与php-fpm没有冲突。

///编辑之前://///

对我来说,解决方案是此处提供的答案的组合。

在更新长时间未更新的Oracle Linux 7服务器后,我注意到此错误

正如@ dasharathmasirkar,@ davidhoude @alexlanger所建议的那样,问题源于更新后覆盖了mpm prefork配置。

要解决此问题:

检查/etc/httpd/conf.modules.d/00-mpm.conf并确保未注释以下行:

# 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

另外,请确保其他工作程序mpm已被注释掉,因此不会发生冲突:

# 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

然后重新启动Apache: apachectl restart

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.