所以我前几天把一个WordPress网站上线,当我这样做时,它崩溃了WordPress。
罪魁祸首是file_get_contents()
。我一直在几个小地方使用它来加载我的svg内联。请参阅代码以了解我如何呈现它:
echo file_get_contents( get_bloginfo('template_url') . 'Images/logo.svg');
它在我的本地ubuntu apache设置上运行良好,并且在我们的模拟现场环境的登台服务器上也运行良好。
使用资源路径而不是Web协议路径修复了问题,但file_get_contents()
是否也能够使用Web资源?
为什么只有在登台服务器相同的情况下才会发生?
第二个问题(也许是相关的):我建立网站的客户让他们的IT人员将他的A WWW指向我们的服务器,当他做到并告诉我他已经完成了它,我访问了该网站,但也购买了我的专用服务器和我的托管服务提供商以及以前网站的托管公司!
来自先前网站主机IP地址的大量流量请求logo.svg。有没有人对这里发生的事情有一个很好的猜测?
答案 0 :(得分:1)
此行为可能有多种原因。首先,你应该在你的wp-config.php中
define('WP_DEBUG',true);
以便正确查看错误消息。
正如您已经声明file_get_contents()
能够使用网络资源以及路径(http://php.net/manual/en/function.file-get-contents.php)。
如果使用路径解决问题的事实限制了可能的错误数量。
file_get_contents()
和(可能是外部)网址的可能问题众所周知 - 请看下面的讨论:
file_get_contents is not working for some url
PHP ini file_get_contents external url
Why doesn't file_get_contents work?
根据您的问题描述,无法更具体地回答问题。服务器配置可能会导致很多不同的问题。
答案 1 :(得分:0)
查看您的代码,您正在向自己的服务器发出HTTP请求,请改用本地路径加载文件。
echo file_get_contents( get_stylesheet_directory() . 'Images/logo.svg');