代码之家  ›  专栏  ›  技术社区  ›  Manngo

Apache 2.4、.htaccess和php指令错误

  •  -1
  • Manngo  · 技术社区  · 6 年前

    我已经升级到Centos 8,并且发现自己必须应对Apache2.4中的更改。我开始让它工作,但我有一个令人费解的错误,在一个简单的设置 .htaccess :

    #   .htaccess
    #   PHP Time Zone
        php_value date.timezone Australia/Melbourne
    

    我得到一个可怕的错误:

    服务器遇到内部错误或配置错误,无法完成您的请求。

    没有必要联系服务器管理员,因为那是我。

    error_log 文件包含以下内容:

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

    httpd.conf 导致它崩溃。

    我错过了什么设置,还是应该改变?

    更新

    正如下面@Chi.C.J.RajeevaLochana所回答的,解决方案在于使用正确的MPM。就我而言,在档案里 00-mpm-conf

    • 点评

      LoadModule mpm_event_module modules/mod_mpm_event.so

    • LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

    0 回复  |  直到 6 年前
        1
  •  3
  •   Example person    5 年前

    当您使用mod\u mpm\u event或mod\u mpm\u worker而不是mod\u mpm\u prefork时,您将无法使用PHP模块。这是因为mod\u mpm\u event和mod\u mpm\u worker是线程化模块。PHP模块不是线程安全的。

    如果您不确定如何做到这一点,请查看Soufiane ELH的教程,该教程应位于此答案的上方/下方。

        2
  •  1
  •   Soufiane ELH    5 年前

    事件模块在centos 8上默认启用。。要检查您的模块:

    #sudo httpd -V | grep -i mpm
    

    如果启用了enent模块,请禁用它,然后启用prefork模块:

    • 注释掉事件模块的行
    • 取消对prefork模块行的注释

    # sudo httpd -V | grep -i mpm
    Server MPM:     prefork
    
    推荐文章