前几天我把一个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人员指向我们的服务器,当他这样做,并告诉我,他已经这样做了,我访问了网站,但也买下了我的专用服务器和我的托管提供商以及托管公司的前一个网站!
有大量流量来自以前的web主机ip地址来请求logo.svg。有没有人能猜出这里发生了什么?
发布于 2017-07-08 01:50:42
造成这种行为的原因可能有很多。首先,在wp-config.php中,您应该
define('WP_DEBUG',true);
以便正确查看错误消息。
正如您已经声明的,file_get_contents()
能够处理web资源,也可以处理路径(http://php.net/manual/en/function.file-get-contents.php)。
如果使用路径,问题就会得到解决,这一事实限制了可能的错误数量。
file_get_contents()
和(可能是外部)URL可能存在的问题是众所周知的-请查看以下讨论:
file_get_contents is not working for some url
PHP ini file_get_contents external url
Why doesn't file_get_contents work?
有了你的问题描述,没有可能更具体地回答这个问题。可能会有许多不同的问题,这些问题是由服务器配置引起的。
发布于 2019-06-06 07:48:26
查看您的代码,您正在向您自己的服务器发出HTTP请求,请使用本地路径加载文件。
echo file_get_contents( get_stylesheet_directory() . 'Images/logo.svg');
https://stackoverflow.com/questions/44975595
复制相似问题