无法将图片上传到localhost php - 权限被拒绝

时间:2017-02-28 02:32:10

标签: php ubuntu-16.04

所以,我试图使用PHP脚本上传图片(特别是书籍封面图片),但我得到了一个"未能打开流:权限被拒绝"错误。我只是通过我的Ubuntu VM来实现它,所以我应该能够更改任何必要的权限。

这是我的PHP代码:

if (!empty($cover))
        {
            if ((($cover_type == 'image/gif') || ($cover_type == 'image/jpeg') || ($cover_type == 'image/pjpeg') ||
              ($cover_type == 'image/png')) && ($cover_size > 0) && ($cover_size <= MAXFILESIZE) &&
              ($cover_width <= MAXIMGWIDTH) && ($cover_height <= MAXIMGHEIGHT))
            {
                if ($_FILES['cover']['error'] == 0)
                {
                      // Move the file to the target upload folder
                      $target = UPLOADPATH . basename($cover);
                      if (move_uploaded_file($_FILES['cover']['tmp_name'], $target))
                      {
                      }

UPLOADPATH = images /

我的php.ini文件:

upload_tmp_dir = /var/www/html/my_site/tmp_file_upload/

我的apache2.conf文件:

<Directory /var/www/html/my_site/tmp_file_upload/
    Options -Indexes
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/html/my_site/images/>
     Options -Indexes
</Directory>

我拥有tmp_file_upload目录和images目录,并且我对两者都有写权限。在这个网站上还有其他几个类似的问题,这就是我知道如何查看php.ini文件和apache2.conf文件,但没有真正回答为什么它仍然不允许我添加图像。

1 个答案:

答案 0 :(得分:2)

您需要设置文件夹的所有权,以便Apache可以写入

在您的终端类型

sudo chown www-data:www-data /var/www/html/my_site/tmp_file_upload/

其中www-data是普通用户和apache组