1

我有一个 500 Internal Server Error 并且很可能在我的情况下认为加载外部文件是我的问题。在我的状态栏中,我在此Waiting for available sockets...之前收到了消息。

我在谷歌搜索时发现了这些信息:

PHP 编码超时

如果您的 PHP 脚本建立外部网络连接,则连接可能会超时。如果尝试的连接过多并超时,这将导致“500 内部服务器错误”。为了防止这些超时和错误,您需要确保 PHP 脚本使用一些超时规则进行编码。但是,通常情况下,在连接到数据库或外部远程资源(例如:RSS 提要)时捕获超时错误是很困难的。实际上,它们冻结了脚本继续运行。

删除任何外部连接可以提高您网站的性能并减少您收到“500 内部服务器错误”的机会。

1)我从我的网络服务器(*.php文件)动态生成/加载 css 和 js 文件。所以我不知道现代浏览器是否真的缓存了这个或者根本不能缓存这个并在每个页面加载时将它作为一个新请求来处理?因为 PHP 会根据给定的参数生成这个,以告知应该加载哪个 css/js。这甚至是可能导致此 500 内部服务器错误的问题或问题吗?

2) 你可以推荐什么 Chrome 扩展来跟踪和调试所有网络数据?除了 Chrome DevTools 之外,一般有哪些工具可以帮助我?

3)引用的文字说我必须注意超时。我应该检查哪些重要来源?ajax 请求或 php 会话可能是问题吗?

4)最重要的是:我该如何解决这个错误?如果这有助于提及,可以在 www.vaymodels.com 导航该域。我无法使用任何浏览器打开它,甚至无法使用我的智能手机(禁用 WiFi)。也许你们中的某个人可以打开它并查看页面源代码。

另外值得一提的是,这种行为是最近几天才开始的。当我在我的网站上工作时,我不断地上传文件并刷新了很多域,并且随机它根本没有加载 5-10 分钟。但是之后可以在没有 500 错误的情况下达到它。现在看来是遥不可及。

编辑:我的虚拟主机刚刚告诉我他们将我的 FPM 限制从 15 更新到 30。他说的 php 进程太多。这可能是由我通过 cronjob 加载的文件执行的 mysql 查询引起的,或者我应该寻找哪些进程并且很可能是问题所在?

4

1 回答 1

1

您应该首先了解导致 500 错误的脚本。您可以查看错误日志,也可以在可疑脚本的顶部添加:

ini_set("display_errors",1);
error_reporting(E_ALL);

这应该可以帮助您了解问题出在哪里,但也可能会破坏输出,因此如果您在生产环境中使用它,请小心。

关于 js 和 css 资源的缓存:您可以使用 .htaccess 文件中的一些指令指示 apache 告诉浏览器使用文件的缓存副本,例如:

<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType text/css                  "access plus 1 month"
ExpiresByType application/javascript    "access plus 1 month"
ExpiresByType text/javascript           "access plus 1 month"

<IfModule mod_headers.c>
Header append Cache-Control "public"
</IfModule>

</IfModule>

还要记住,这样的过期限制在您不应该经常更改它们的生产环境中可能很好。

希望有帮助。

于 2017-02-02T08:59:12.367 回答