我的问题是我无法在远程服务器上包含文件。
<?php
echo "Including\n";
require_once("http://xx.xxx.xxx.xx:8080/path/to/myfile.inc");
echo "Done..\n";
?>
脚本在require_once函数处失败。 我正在运行脚本:php -d allow_url_include =在script.php上 但要确保我在php.ini中将allow_url_include和allow_url_fopen设置为On
如果我将http://xx.xxx.xxx.xx:8080/path/to/myfile.inc复制到浏览器,我就会提供该文件。 我还试图包含其他远程文件(在标准端口80上),但仍然没有运气
我真的很困惑的是,一切都可以在我办公室的本地计算机上运行(mac,ubuntu),但不能从我们的服务器运行。我在2个不同的服务器上测试了它,虚拟和专用。 我可以使用fopen()获取文件。
答案 0 :(得分:4)
这可以通过在php.ini上设置allow_url_include
到on
来完成。
但是,如评论中所述,这会打开一个
应用程序上的安全漏洞。
答案 1 :(得分:0)
Require_Once应仅用于本地文件。如果要获取远程文件,请使用file_get_contents。请记住,如果你试图从这样的远程服务器中包含php,它将非常不安全,或者php将在远程服务器上执行。