访问被拒绝 – PHP move_uploaded_file – Ubuntu LAMP / var / www

我意识到在我的tmp文件夹或我在/ var / www文件夹中创build的images文件夹上存在某种权限问题。 我知道/ var / www最初有root权限。 我一直在关注一些在线教程,试图解决这个问题,并改变了我的权限,谁知道过去一个多小时左右。

尝试使用PHP / MySQL从HTML表单上载文件时收到此错误:

Warning: move_uploaded_file(images/verified-gw.gif): failed to open stream: Permission denied in /var/www/addscore.php on line 40 Warning: move_uploaded_file(): Unable to move '/tmp/phpla4QCP' to 'images/verified-gw.gif' in /var/www/addscore.php on line 40 cannot move uploaded file or something beavis 

所以我认为/ var / www / images文件夹的权限是不正确的,或者tmp文件夹的权限是root,而ubuntu的内核不会让php脚本从这个root拥有的文件移动到具有权限的images文件夹我的用户帐户据我所知,并在组中没有人。

我很迷茫,任何帮助,绝对赞赏。

Ubuntu Linux gnome文件夹权限的截图

上面你可以看到图片文件夹的权限的图片,我试图将文件从tmp目录移动到。

哦,这里是PHP脚本失败:

 if (!empty($screenshot)) { move_uploaded_file($_FILES['screenshot']['tmp_name'], $target) or die (' cannot move uploaded file or something beavis'); 

尊敬,

用户

Solutions Collecting From Web of "访问被拒绝 – PHP move_uploaded_file – Ubuntu LAMP / var / www"

使用USER DIR MOD

如果这是开发者机器,我想是的,不要尝试使用/ var / www(总会有权限问题)尝试使用用户目录

你会保存你所有的文件和项目在你的家里,不会有权限问题。

使用Apache根目录

好的,所以如果你不能使用用户目录,你必须像这样设置文件系统:

1.找出Apache所有者的用户名。 如果你使用Ubuntu,它应该是www-data。 去终端并输入:

$ ps aux | grep apache

你应该得到下面这样的东西。 第一列是用户名。

www-data 2070 0.0 0.0 463244 7788 ? S sty25 0:00 /usr/sbin/apache2 -k start

2.找出apache用户组。 再次终端,键入:

$ sudo groups www-data

你应该得到下面这样的东西。 第二栏是组名。

www-data : www-data

3.为Apache根目录设置RIGHT所有者用户和所有者组:

$ sudo chown -R www-data:www-data /var/www/

4.为Apache根目录设置RIGHT权限:

$ sudo chmod -R 775 /var/www/

现在你已经清理了你的系统,我们试着修复你的用户访问/ var / www目录。

5.将apache组添加到您的用户:

$ sudo usermod -a -G www-data {YOUR_USER_NAME}

警告! 别忘了 – 开关! 这样你可以将新组添加到现有列表中,而不是用新组列表替换旧组列表。

现在,您可以读取/写入位于Apache根目录中的文件。 我们需要告诉Apache,新的文件应该可读/写给组员

6.将umask命令添加到apache环境配置中:

$ sudo echo umask 002 >> /etc/apache2/envvars

或与图形编辑器:

$ gksudo gedit /etc/apache2/envvars

并将umask 002作为最后一行放在这个文件中

7.

$ sudo apache2ctl restart

祝你好运!

这解决了我的问题: http : //ubuntuforums.org/showthread.php?t=1842090&s=8b97ec72fe7cd753910f488329a90f0f&p=11239688#post11239688

tl:dr – 我输入了这个: sudo chown -R www-data:www-data /var/www

我不认为这是一个尝试chmod chown tmp目录和这个组合。 我想这只是更改所有LAMP文件所在的/ var / www文件夹的权限。

现在PHP脚本工作,扔在我做的目录中的图像文件。 如果Ubuntu在用户目录中安装像这样的LAMP栈这样的测试服务器,而不必学习文件权限,比如我正在保护我的文件免受纳粹的潜艇攻击,那将会更容易一些。

试试这个: sudo chown -R 777 /var/www/images

你需要给文件一个公开的权限777或者755,这样文件才能上传到指定的目录,它只有一个权限