PHP / Apache:上传的JPEG图像文件的权限设置不正确

时间:2010-05-16 20:24:31

标签: php apache permissions

我刚刚设置了一个LAMP开发服务器,我仍然在解决一些问题。服务器安装在一台计算机上,我使用Windows笔记本电脑编写代码并通过Web浏览器测试该站点。

我的文件上传脚本的工作原理是JPEG图像文件已成功上传到服务器,但当我尝试在Web浏览器中查看图像时,权限被拒绝。

我通过服务器检查文件的权限,它们是600。我可以通过chmod 777 theimage.jpg解决问题,但这似乎不是一个好的解决方案。

解决方案是否与Apache配置有关?或者我还应该做些什么。

感谢-你, 麦克

更新

为了澄清,我可以将JPEG文件上传到/var/www/test/images,但在上传后无法在网络浏览器中查看该图像。我的脚本在生产服务器上运行(我正在使用Dreamhost)。这让我相信问题出在我刚刚设置的开发服务器上。任何反馈都非常感谢,即使它只是我应该阅读的资源,以便更好地理解服务器设置。

2 个答案:

答案 0 :(得分:1)

我会说你可能在不同的Apache下运行PHP而不是Apache。 你可以:

  • 配置apache / PHP以便它们在相同的uid下运行
  • 在文件上传时,使用PHP通过chmod函数更改权限或更改与PHP进程关联的umask,以便文件首先获得正确的权限
  • 通过PHP(readfile)访问图像 - 不建议用于性能问题

答案 1 :(得分:1)

您需要更改包含该文件的文件夹的权限,而不仅仅是文件本身。在包含要访问的文件的目录上使用sudo chmodsudo chown,然后检查以确保使用ls -rl命令更改的权限。与chmod一起使用的权限应为rw,如果权限已正确更改,则在使用-rw-r--r--命令时该目录应显示为ls -rl。此外,如果您仍然不清楚chmod和chown工作的具体细节,请查看this linkthis link

修改

输入:

sudo chmod -R 666 /var/www/test/images

或者这个:

sudo chmod a=rw /var/www/test/images

......做你想做的事。有关更多说明,请参阅下面的最新评论条目。