由于文件权限,无法保存文件

时间:2013-03-15 05:07:01

标签: php file file-io permissions chmod

我正在尝试上传并保存图片文件。这在过去运作良好,但现在返回错误。

警告:move_uploaded_file(// home / bitnami / htdocs / lookgram / photos / 1 / 22.jpeg):无法打开流: / opt / bitnami / apache2中的权限被拒绝/htdocs/lookgram/build/classes/Photo.php 在线 138

警告:move_uploaded_file():无法在 / opt / bitnami中将'/ tmp / phpAyWyw4'移动到'//home/bitnami/htdocs/lookgram/photos/1/22.jpeg' /apache2/htdocs/lookgram/build/classes/Photo.php 在线 138

这看起来像文件permssion错误,所以这里是文件夹的权限:

drwxrwxr-x 6 bitnami bitnami 4096 Mar 15 01:02 photos

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这是因为photos/1/只能由root用户写入。要上传到工作,我们需要使该文件夹的所有者与httpd进程所有者相同,或者使它们全局可写(不良做法)。

  1. 检查apache进程所有者:$ps aux | grep httpd。第一列通常是nobody

  2. 的所有者
  3. photos/1/的所有者更改为nobody或您在步骤1中找到的所有者。

    $sudo chown nobody /home/bitnami/htdocs/lookgram/photos/1/

  4. Chmod photo/1/现在可以由所有者写入,如果需要[似乎你已经有了这个]。

    $ sudo chmod -R 0755 /home/bitnami/htdocs/lookgram/photos/1/

  5. 有关此行为发生的更多详细信息,请查看手册http://php.net/manual/en/ini.core.php#ini.upload-tmp-dir,请注意它也在讨论open_basedir指令。