新配的lamp环境,出现如下错误:
file_get_contents(http://x.x.x.x:9898/aa/bb/cc.php): failed to open stream: Permission denied in /var/www/html/a/b/c.php on line 3
很多网友说是文件夹权限错误,于是通过“chmod -R 777 /你的文件夹”更改所在文件夹的权限,但不起作用,还是报错。
几经痛苦测试排错,发现更换file_get_contents的url:“http://x.x.x.x:9898/aa/bb/cc.php”,发现不带端口的file_get_contents是正常的,所以肯定不是文件夹的权限问题,
再通过网友写的《file_get_contents不能获取带端口的网址》(http://www.111cn.net/phper/31/48374.htm),最终顺利解决。
解决办法如下:
例子
<?php
echo file_get_contents("test.txt");
?>
输出:
This is a test file with test text.
同样此函数还可以用于获取远程服务器上的内容
file_get_contents('http://www.111cn.net');
这样也是没有问题,但是如果我带了端口了就有问题了
例如:
file_get_contents('http://localhost:12345');
没有任何获取。
解决方法是 :关闭selinux
1 永久方法 – 需要重启服务器
修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。
2 临时方法 – 设置系统参数
使用命令setenforce 0
附:
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
php的allow_url_fopen选项是关闭了
原因是我们php.ini中把php的allow_url_fopen选项是关闭了,我们只要把它打开即可。
如果你没有权限打开allow_url_fopen的话我们可使用curl函数的来替换,也是很方法的。