1

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

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

警告:move_uploaded_file(): Unable to move '/tmp/phpAyWyw4' to '//home/bitnami/htdocs/lookgram/photos/1/22.jpeg' in /opt/bitnami/apache2/htdocs/lookgram/build /classes/Photo.php138行

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

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

有任何想法吗?

4

1 回答 1

2

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

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

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

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

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

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

  4. 有关为什么会发生这种行为的更多详细信息,请查看手册http://php.net/manual/en/ini.core.php#ini.upload-tmp-dir,注意它还讨论了 open_basedir 指令。

于 2013-03-15T05:25:17.603 回答