我在一個 sulu 應用程式中設定了symfony- docker 配置。由于應用程式根目錄的系結掛載,開發中一切正常。但是在生產環境中,用戶上傳的媒體檔案在容器重啟時不會被持久化。
我嘗試在docker-compose.yml(在php服務或caddy服務中)添加這樣的卷:
services:
php:
volumes:
- uploads:/srv/app/public/uploads
...
volumes:
uploads:
但是,當我上傳影像時,不會生成縮略圖。而且,在模板中使用影像時,獲取媒體時出現以下錯誤:
Failed to create "/srv/app/public/uploads/media/homepage-1920x/04": mkdir(): Permission denied
uj5u.com熱心網友回復:
上傳時不會生成縮略圖,它們是在您第一次請求時生成的。這節省了大量空間,因為并非每種尺寸都需要每個影像。
僅用于開發的示例 docker setup 可以在此處找到:
https://github.com/dunglas/symfony-docker/blob/main/docker-compose.yml
在正常的 linux 設定中,您需要確保您的網路服務器用戶/php fpm 用戶被允許訪問public/uploads 通過以下方式完成的目錄:
HTTPDUSER=`ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1`
sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var public/uploads
sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var public/uploads
也可以看看:
https://docs.sulu.io/en/latest/cookbook/web-server/nginx.html#linux
使用 caddy 時可能需要類似的東西,或者有另一種方法告訴 docker 中的 caddy 如何為該目錄設定正確的權限。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/448593.html
