繁体   English   中英

move_uploaded文件:无法打开流:/srv/http/upload.php中的权限被拒绝

[英]move_uploaded file:failed to open stream: Permission denied in /srv/http/upload.php

我试图在ArchLinux上运行服务器,我的apache和PHP正常运行,但是我无法使用PHP上传文件。 我在Stackoverflow上看到了很多此类问题,并且似乎已经使用了我发现的所有建议,但是我仍然得到了

failed to open stream: Permission denied in /srv/http/upload.php 

错误。

确切地说

Warning:  move_uploaded_file(): Unable to move '/tmp/phpZvJK1l' to '/home/administrator/SCRIPTS/tr/solution.cpp' in /srv/http/upload.php on line 20

我将/ tmp /,/ home / administrator / SCRIPTS / tr和/ srv / http的权限设置为777(我知道那是不对的,但是我现在正在本地工作,并且希望以某种方式使它工作)。

另外,我将这些目录的所有所有者设置为http(即运行PHP的用户),但该操作仍然无效。

某些PHP配置不允许用户docroot目录外部的文件访问,因此您可能无法从PHP内部访问/ tmp。 尝试将文件上传到/ home / administrator目录中的temp目录-最好上传到Web浏览器无法访问的目录(docroot的同级目录)。

授予/ tmp目录的权限:

须藤chmod 777 / tmp

作为Arch用户,我在处理Web项目时会遇到相同的问题。

我建议您查看Arch Wiki的这一部分

默认情况下,用户目录可通过http:// localhost /〜您的用户名/获得,并显示〜/ public_html的内容(可以在/etc/httpd/conf/extra/httpd-userdir.conf中更改)。

这样做,您必须创建〜/ public_html目录,然后

您必须确保正确设置主目录权限,以便Apache可以到达那里。 您的主目录和〜/ public_html必须对其他人(“世界其他地方”)可执行:

$ chmod o+x ~
$ chmod o+x ~/public_html
$ chmod -R o+r ~/public_html

之后,您无需将文件放在/srv/http/您现在可以将~/public_html用作开发目录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM