Php 文件\u获取\u内容():无法打开流:权限被拒绝
我正在尝试从Php 文件\u获取\u内容():无法打开流:权限被拒绝,php,url,file-upload,permissions,Php,Url,File Upload,Permissions,我正在尝试从url加载image。 在localhost中一切正常 当我在我的Web服务器上运行代码时 警告:文件获取内容(url):无法打开流:第64行的/home/www/../imageup.php中的权限被拒绝 我在google上搜索过,并尝试了stackoverflow中的许多答案。 每个人都说要对文件和文件夹设置适当的权限 我已经为php文件设置了权限,并将文件夹设置为777 有些回答说要运行一些命令,但我找不到运行这些代码的控制台,所以我手动允许了权限 我能理解有些事是经过允许的,
url
加载image
。
在localhost
中一切正常
当我在我的Web服务器上运行代码时
警告:文件获取内容(url):无法打开流:第64行的/home/www/../imageup.php中的权限被拒绝
我在google
上搜索过,并尝试了stackoverflow
中的许多答案。
每个人都说要对文件和文件夹设置适当的权限
我已经为php文件
设置了权限
,并将文件夹设置为777
有些回答说要运行一些命令,但我找不到运行这些代码的控制台,所以我手动允许了权限
我能理解有些事是经过允许的,但我无法理解。
(有人可能会说这是重复的,也可能是重复的,但我没有找到解决办法)
请转到项目根目录并运行以下命令
find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \;
我希望它能解决您的问题。这是因为图像
和tmp\u文件上传
只能由root
用户写入。为了使上传工作正常进行,我们需要使这些文件夹的所有者与httpd进程所有者相同,或者使它们全局可写(糟糕的做法)
1.检查apache进程所有者:$ps aux | grep httpd
。第一列是所有者,通常是nobody
2.将图像和tmp文件上传的所有者更改为nobody
或步骤1中找到的任何所有者
$sudo chown nobody/var/www/html/mysite/images/
$sudo chown nobody/var/www/html/mysite/tmp\u file\u upload/
3.Chmodimages
和tmp\u文件上传
现在可以由所有者写入,如果需要[看起来您已经准备好了]。在@Dmitry Teplyakov回答中提到
$sudo chmod-R 0755/var/www/html/mysite/images/
$sudo chmod-R 0755/var/www/html/mysite/tmp\u file\u upload/
4.有关此行为发生的更多详细信息,请查看手册,注意手册中也提到了open\u basedir
指令。3个问题。1) 什么是src?2) 你的webhost根目录是什么3)你能在php文件的同一文件夹中的文件上使用该函数吗$image['src']
返回一个url
,就像http://example.org/image.png
如果您的权限被拒绝,则表示allow\u url\u fopen
为false。请参阅此问题。您的网络托管提供商不允许此操作。allow\u url\u fopen
允许在我的服务器上运行此代码是否需要控制台或其他东西?还是在文件中作为代码?
find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \;