Imagick 和用户 www-data 的权限问题



我在Symfony2中有一个应用程序构建。该应用程序在三个 Docker 容器中运行:

  • Nginx作为反向代理并提供静态内容
  • Apache作为网络服务器
  • 用于数据库的 Mysql
所有

文件都归root所有,apache和nginx服务器在用户www-data下运行。应用程序运行正常。

只有 php conjobs(在主机上的 root 下运行(会创建新映像并将其存储在服务器上。首先,它使用权限 0755 生成一个 dir,代码如下:

@mkdir('path/..', 0755, true);

目录是使用这些权限正确制作的。然后,它使用以下代码在此目录中存储了一个图像:

    $image = new Imagick( 'path/filename.jpg' );
    $Width = $image->getImageWidth();
    $Height = $image->getImageHeight();
    if($Width > 1024 || $Height > 768) {
        $image->resizeImage($imgWith, $imgHeight, Imagick::FILTER_LANCZOS, 0.9);
        $image->writeImage('path/new_filename.jpg');
    }

这些图像仅与 0600 一起存储。因此,用户www-data无法读取/显示应用程序中的图像。如果我手动更改权限: chmod -R 0755 dir那么图像就会正确显示。

关于如何直接使用正确的预设存储图像的任何建议?

你能用PHP chmod吗

chmod('路径/new_filename.jpg', 0755(;

创建文件后?

最新更新