【问题标题】:.htaccess produces 500 Internal Server Error.htaccess 产生 500 内部服务器错误
【发布时间】:2011-04-02 12:29:30
【问题描述】:

.htaccess的内容是:

php_value upload_max_filesize 64M

在本地主机上工作,搞砸了我上传到的每个托管服务器。 error.log 说:无效的命令 'php_value',可能拼写错误或由未包含在服务器配置中的模块定义

还有其他方法可以更改upload_max_filesize 吗?

【问题讨论】:

  • 您应该阅读错误日志以获取更多信息。
  • 是的,谢谢,忘记了。 error.log 显示 Invalid command 'php_value',可能拼写错误或由未包含在服务器配置中的模块定义
  • @A-OK:假设 PHP 正在运行,创建一个 phpinfo() 文件,并检查服务器方法。 php_value 仅在使用 mod_php 时才有效,即。 PHP是一个Apache Module,如果是FCGI就不行了。
  • 您使用 PHP 作为模块吗?没有,例如 FastCGI?
  • 这是 CGI,甚至不是 FastCGI :)

标签: apache


【解决方案1】:

如果php_value 未被识别为有效命令,可能是因为 PHP 未作为 Apache 模块安装。创建一个包含以下内容的 php 文件:

<?php phpinfo();

运行该文件以显示您的 PHP 配置。在页面 (Ctr+F) 中搜索“mod_php”。如果您在任何地方都找不到它,这说明了您的问题。

如果您有权访问php.ini,则可以改为通过编辑该文件来解决您的问题。在phpinfo 页面上,查看Loaded Configuration File 下的值以获取要编辑的文件的位置。在 Linux 上,它将是 /usr/local/lib/php.ini

打开ini 文件(它只是一个文本文件)并查找要更改的设置。如果不存在,只需添加一行并根据需要进行设置:upload_max_filesize=64M

保存文件并重新启动 Apache 服务器。

【讨论】:

  • 如果 apache 中没有安装 PHP,<?php phpinfo(); 将如何工作?
  • 我收到错误,但php_value 不在.htaccess 文件中...我可以编辑 .ini 文件,但我不知道在那里做什么。
【解决方案2】:

如果您不想删除.htaccess中的php_flag命令但又想避免错误,请将命令包装如下:

<IfModule mod_php5.c>
    php_flag display_errors 0
    php_flag display_startup_errors 0
</IfModule>

如果您使用的是 PHP7,请使用 &lt;IfModule mod_php7.c&gt;

【讨论】:

    【解决方案3】:

    对于其他有相同问题并访问服务器的读者,这也可能是由于将 PHP 配置为 apache 的模块错误造成的。您可以通过重新安装模块来修复它(或在php.ini 中自行配置到libphp.so 的路由)。

    请记住,purge 将删除软件包的配置,这通常无需担心,但会警告您以防万一。

    sudo apt-get purge libapache2-mod-php libapache2-mod-php7.2
    sudo apt-get install libapache2-mod-php
    

    【讨论】:

    • 这对我来说是个问题。在此之后不要忘记重新启动 apache。
    • 在我的情况下升级到 php 7.4 后发生冲突。您提出的解决方案有效,谢谢。
    • sudo apt-get install libapache2-mod-php — 这有帮助。 (也需要重启apach2...)谢谢。
    【解决方案4】:

    问题在于托管服务提供商,他们只允许通过 php.ini 进行更改

    【讨论】:

      【解决方案5】:

      似乎没有加载 php 模块。确保它已安装

      sudo apt-get install libapache2-mod-php
      

      并检查它是否在 apache 中启用

      ll /etc/apache2/mods-enabled/*php*
      

      如果已安装但未启用,请启用它(取决于您的 php 版本),例如对于 PHP 8.0 与

      sudo a2enmod php8.0.load
      

      然后重启apache

      sudo apache2ctl graceful
      

      【讨论】:

        【解决方案6】:

        我也收到了 500 内部服务器错误。我的错误日志显示: 无效的命令“php_value”,可能拼写错误或由未包含在服务器配置中的模块定义

        我尝试按照建议更新upload_max_filesize,但它对我不起作用。我的 .htaccess 文件的最后一行有:

        php_value max_execution_time 120
        

        我删除了该行,网站完美解决。

        【讨论】:

          【解决方案7】:
          1. 创建 .user.ini 文件
          2. 添加行 upload_max_filesize="5M"

          【讨论】:

            猜你喜欢
            • 2021-06-09
            • 2016-09-22
            • 2017-04-05
            • 1970-01-01
            • 2013-02-06
            • 2015-06-28
            • 2016-04-20
            • 2014-01-01
            相关资源
            最近更新 更多