错误启动Apache“php值”

Dav*_* E. 12 httpd apache-2.2

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

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

在 PHP 上启用模块:

[PHP 模块] 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 Phar readline 反射会话标准 socket shmoplsu sqlitein wddx xml xmlreader xmlrpc xmlwriter xsl zip zlib [Zend Modules] ionCube PHP Loader

与错误相关的行:

php_value session.save_handler “文件”

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

Dav*_*ude 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
Run Code Online (Sandbox Code Playgroud)

这让我措手不及,我不能肯定是升级导致了问题,或者这是否是最好的解决方法。我愿意接受评论,但强烈建议不要注释掉 php 指令,/etc/httpd/conf.d/php.conf因为它会破坏内容。


小智 6

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

如果您错误地将 Apache httpd-2.4 配置为使用除 prefork 之外的其他 mpm 模块(因为只有 prefork mpm 在 Linux (CentOs7/RHEL7) 上运行良好),Apache httpd-2.4 可能会因上述错误而失败。更正 Apache httpd 配置以使用 prefork mpm 将解决问题。

  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


小智 0

只需注释掉这些行即可。

我有

#php_value session.save_handler "files"
#php_value session.save_path    "/var/lib/php/session"
Run Code Online (Sandbox Code Playgroud)

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