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

标签 php symfony security docker docker-compose

我正在为 Symfony 应用程序构建一个 docker 环境。我为每个应用程序有一个容器,并为链接到应用程序服务器的 Web 根目录附加了一个仅包含数据的容器。作为基础设施安全强化的一部分,这些数据容器被设置为只读,以防止任何远程代码利用。然后,每个应用程序还有一个允许写入日志的边车容器。

Symfony 当前将缓存写入到默认的 cache_dir 位置

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

在只读数据容器中

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

Unable to write in the cache directory

很明显,因为它在只写容器中,所以会发生这种情况

我已经设置我的log_path是在read-write sidecar logging container中的只读容器外的parameters中设置的

/data/logs/symfony

效果很好。

我已经阅读了关于如何覆盖目录结构的 Symfony 食谱,但它只建议如何在 AppKernal.php 中执行此操作,我不想这样做,因为路径可能更改取决于它是否在 local/uat/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}

关于php - 在参数中设置 symfony 缓存目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37723506/

相关文章:

php - 当 Doctrine 不允许我将复合主键与另一个实体的外键关联时,如何对 ER 图进行建模?

actionscript-3 - 安全性:AS3 中的成就和分数 API

php - PayPal 捐赠与 laravel 5.1 集成

php - 循环 PHP 脚本

php - 如何在 Symfony2 中创建禁止响应?

javascript - Symfony2 和 jquery ajax

使用 BCrypt 加密 MYSQL 密码

java - 跨项目共享 JBoss/WildFly 安全域

php - 加入作为多个 OR 的替代方案

php - 了解 WordPress Hook 的调用方式