为什么我的脚本 return: HTTP ERROR 500
Why does my script return: HTTP ERROR 500
我的 apache 服务器上有一个文件夹,其中包含几个 php 脚本。此文件夹中的所有 php 脚本都有效,但 1 除外。所有 php 脚本(包括不起作用的脚本)都具有相同的权限。
当我在浏览器中 运行 脚本时,出现此错误:
HTTP ERROR 500
可能有用的详细信息:
PHP 版本 7.0.11
Apache/2.2.15 (CentOS)
Apache 状态代码 500 表示 "internal server error"。没有看到产生此错误的代码,很难说是什么导致了它,但首先要检查的是服务器配置和您的 .htaccess 文件。确保您的服务器 运行 正确,然后检查您的 .htaccess 文件,因为错误的规则会强制某些类型的 PHP 发生故障。正如@RiggsFolly 所说,问题也可能是一些写得非常糟糕的 PHP ,可以通过用一个简单的程序替换它来测试它,例如:
<?php
echo "test";
?>
解决方案:在我的例子中,500 错误的问题是从 php 5.x 升级到 7;但是:我想这个错误可能来自许多其他原因,所以如果它不适用,祝你好运找到其他解决方案。在这种情况下,它起作用了——解决方案是重写代码或降级到旧的 PHP 版本,直到您重新编码不兼容的部分。
解释/调试过程:经过多次测试以确定发生了什么(注释部分代码、测试功能、阅读文档),我发现 PHP 以前版本中弃用的功能会产生 500 错误.
例如,在为 PHP<7 编写的脚本中,您可能仍然有像 mysql_connect 这样的旧 mysql 查询,一旦您的服务器更新到 7(并且您必须使用 mysqli),此脚本将抛出 500 错误。
我想这会发生在任何其他已弃用的函数上。
在你的情况下,我敢打赌大多数脚本都与 7 兼容,有一个不兼容。
我的 apache 服务器上有一个文件夹,其中包含几个 php 脚本。此文件夹中的所有 php 脚本都有效,但 1 除外。所有 php 脚本(包括不起作用的脚本)都具有相同的权限。
当我在浏览器中 运行 脚本时,出现此错误:
HTTP ERROR 500
可能有用的详细信息:
PHP 版本 7.0.11 Apache/2.2.15 (CentOS)
Apache 状态代码 500 表示 "internal server error"。没有看到产生此错误的代码,很难说是什么导致了它,但首先要检查的是服务器配置和您的 .htaccess 文件。确保您的服务器 运行 正确,然后检查您的 .htaccess 文件,因为错误的规则会强制某些类型的 PHP 发生故障。正如@RiggsFolly 所说,问题也可能是一些写得非常糟糕的 PHP ,可以通过用一个简单的程序替换它来测试它,例如:
<?php
echo "test";
?>
解决方案:在我的例子中,500 错误的问题是从 php 5.x 升级到 7;但是:我想这个错误可能来自许多其他原因,所以如果它不适用,祝你好运找到其他解决方案。在这种情况下,它起作用了——解决方案是重写代码或降级到旧的 PHP 版本,直到您重新编码不兼容的部分。
解释/调试过程:经过多次测试以确定发生了什么(注释部分代码、测试功能、阅读文档),我发现 PHP 以前版本中弃用的功能会产生 500 错误.
例如,在为 PHP<7 编写的脚本中,您可能仍然有像 mysql_connect 这样的旧 mysql 查询,一旦您的服务器更新到 7(并且您必须使用 mysqli),此脚本将抛出 500 错误。 我想这会发生在任何其他已弃用的函数上。
在你的情况下,我敢打赌大多数脚本都与 7 兼容,有一个不兼容。