500内部服务器错误取决于外部加载的文件?

时间:2017-02-02 08:30:33

标签: php apache internal-server-error http-status-code-500 external-dependencies

我有一个500内部服务器错误,我很可能认为在我的情况下加载外部文件是我的问题。 在我的状态栏中,我在发生之前收到了消息Waiting for available sockets...

我用Google搜索时发现了这些信息:

  

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错误的情况下达成。现在似乎无法到达。

编辑:我的webhoster刚告诉我他们将我的FPM限制从15更新到30.他说的PHP进程太多了。这可能是由我通过cronjob加载的文件执行的mysql查询引起的,或者我应该寻找的那些进程可能是什么问题?

1 个答案:

答案 0 :(得分:1)

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

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

这可以帮助您了解问题所在,但也可能会中断输出,因此如果您在生产环境中使用它,请务必小心。

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

<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>

另请注意,在您不应经常更改它们的生产环境中,此类到期限制可能会很好。

希望有所帮助。