Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache PHP move_uploaded_文件权限被拒绝,尽管它似乎应该被拒绝_Apache_File Upload_Php - Fatal编程技术网

Apache PHP move_uploaded_文件权限被拒绝,尽管它似乎应该被拒绝

Apache PHP move_uploaded_文件权限被拒绝,尽管它似乎应该被拒绝,apache,file-upload,php,Apache,File Upload,Php,我正在学习PHP并尝试使用以下代码上载文件: $destination = "uploads/".$_FILES['userfile']['name']; move_uploaded_file($_FILES['userfile']['tmp_name'], $destination); 但我面临着 无法打开流:权限被拒绝 我可以将“uploads”目录的权限更改为每个人都可以写,但这当然是一种糟糕的做法。 文件夹权限为: drwxr-xr-x 2 loai loai 4096 Dec 30

我正在学习PHP并尝试使用以下代码上载文件:

$destination = "uploads/".$_FILES['userfile']['name'];
move_uploaded_file($_FILES['userfile']['tmp_name'], $destination);
但我面临着

无法打开流:权限被拒绝

我可以将“uploads”目录的权限更改为每个人都可以写,但这当然是一种糟糕的做法。 文件夹权限为:

drwxr-xr-x 2 loai loai 4096 Dec 30 12:44 uploads
运行
ps aux | grep httpd

loai      6728  0.0  0.0   4368   832 pts/1    S+   18:37   0:00 grep --colour=auto httpd
那么apache进程不应该能够在给定的目录中进行写操作吗?
谢谢

您可以尝试使用目标的完整路径。比如:

/var/www/project/uploads

如果您可以使用相对路径读取该目录,则只需浏览它:

cd $path_to_your_site_root
chown -R loai:loai uploads

首先,正如在对问题的评论中所指出的,您的
ps
输出显示的是
grep
进程本身,而不是
httpd
进程(或任何web服务器)。因此,这可能意味着您的web服务器正在以不同的用户身份运行,而不是以
loai
的身份运行。更改
uploads
文件夹的所有权或使其组可写,然后将web服务器的用户添加到相应的组中

PHP进程的工作目录可能与您想象的不同。您的脚本极易受到目录遍历和远程脚本注入攻击。请记住,来自用户的所有内容都可能包含恶意数据,包括
$\u文件
数组的
名称
字段。Ohters than loai没有对目录的写访问权限。请查看访问权限。您的
ps
输出仅显示您的
grep
进程,而不是
apache
。不要使用
['name']
参数,除非您真的想要您的服务器pwn3d谢谢各位,我想正确的原因是Barmar,我以为ps显示apache进程属于loai,但是,谁拥有apache进程?或者它是作为独立用户启动的?但是如何了解web服务器用户呢?我正在自己的机器上运行它。@Loaighraba它应该在配置文件中。如果您使用apache,请打开
/etc/apache/apache2.conf
/etc/apache/httpd.conf
,然后搜索以
用户
开头的行,通常类似于
用户www-data