簡體   English   中英

Imagick和用戶www-data的權限問題

[英]Permission issue with Imagick and user www-data

我在Symfony2中有一個應用程序構建。 該應用程序在三個Docker容器中運行:

  • Nginx作為反向代理並提供靜態內容
  • Apache作為網絡服務器
  • MySQL的數據庫

所有文件均由root擁有,並且apache和nginx服務器在用戶www-data下運行。 該應用程序運行良好。

僅php conjobs(在主機上的root用戶下運行)生成新映像並將其存儲在服務器上。 首先,它使用以下代碼創建一個權限為0755的目錄:

@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('path / new_filename.jpg',0755);

創建文件后?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM