编程语言
首页 > 编程语言> > php-在参数中设置symfony缓存目录

php-在参数中设置symfony缓存目录

作者:互联网

我正在为Symfony应用程序构建一个docker环境.我为每个应用程序都有一个容器,该容器具有用于链接到应用程序服务器的Web根的仅数据容器.作为基础结构安全性增强的一部分,这些数据容器被设置为只读,以防止任何远程代码利用.每个应用程序还具有一个侧面的汽车容器,该容器允许写入日志.

Symfony当前将缓存写入到以下文件的默认cache_dir位置:

${web_root}/app/cache/${env}

哪个位于只读数据容器中

尝试启动应用程序时出现此错误

Unable to write in the cache directory

显然,这将发生在只写容器中

我已经将log_path设置为在的可读写sidecar日志记录容器中的只读容器外部的参数中

/data/logs/symfony

效果很好.

我已经阅读了Symfony食谱,了解如何越过目录结构,但它仅建议如何在AppKernal.php中执行此操作,我不希望这样做,因为路径可能会更改,具体取决于它是否在本地/本地/ prod环境.

我们根据要部署到的环境从构建服务器提供不同的Symfony参数,因此将此配置放入此处很有意义.

有谁知道是否有可能在配置中覆盖缓存目录,而不是编辑AppKernal.php

解决方法:

我正在容器外部创建缓存文件,并使用-v将目录挂载到容器中

$DIR是当前位置

htdocs网页文件在哪里

docker run -d \
   -v $DIR/htdocs:/var/www/html \
   -v $DIR/cache_folder:/var/www/html/app/cache

然后确保允许该容器写入cache_folder.好处是,如果您重新创建容器,则不会丢失任何数据.这还将覆盖文件夹/ var / www / html / app / cache

另一种执行此操作的方法是在每个容器中,但是每次重新启动时都会丢失设置

chmod -R 777 ${web_root}/app/cache/${env}

标签:docker,docker-compose,symfony,security,php
来源: https://codeday.me/bug/20191027/1940695.html