![](/img/trans.png)
[英]php file upload error warning move_uploaded_file failed to open stream permission denied in
[英]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.