0

Symfony 2.8

阿帕奇 2.4

部署者 3.3

阿帕奇用户:www-data

目前上传图片的 assets 目录位于 Symfony web 目录下:/var/www/html/project/current/web/assets/items.

当我使用 Deployer 部署新版本时,我必须将所有图像移动到新的资产目录中。虽然目前不是一项大任务(有 16,000 多张图像),但随着我们的发展,这可能会导致问题。此外,由于current路径中的目录是符号链接,似乎 apache/php 将旧位置保​​留在内存中并从中提供数据,这意味着对这些图像的请求会产生 404 错误。

将此目录移动到另一个位置(甚至是另一个硬盘驱动器)将解决这些烦恼。如果不先咨询一些最佳实践,我觉得我没有经验安全地做到这一点。我确信我可以弄清楚如何Alias在 apache 配置中添加一个,但我担心安全性以及 Symfony 将如何运行。

那么我的问题是资产目录应该在文件系统中的哪个位置使用什么权限以及应该应用什么 Apache 配置,以便 Symfony 不会受到负面影响?

谢谢

4

1 回答 1

1

您可以将资产目录添加到“shared_dirs”变量中,该变量用于在版本之间保存共享/公共文件和目录。在这种情况下,您的资产目录将存储在 /var/www/html/project/shared 文件夹中并符号链接到每个版本。

set('shared_dirs', [
    'app/sessions',
    'app/logs',
    'web/assets/items',
]);

至于 Apache 符号链接问题,请尝试在部署过程中重新加载 Apache 服务器的配置。

// Reload Apache configuration to avoid symlink issue
task('apache:reload', function () {
    run('sudo /etc/init.d/apache2 reload');
})->desc('Reload Apache configuration');
after('cleanup', 'apache:reload');
于 2016-10-30T05:07:52.603 回答