gpt4 book ai didi

php - Symony2 控制台命令删除缓存文件夹,更改权限

转载 作者:太空宇宙 更新时间:2023-11-04 03:34:04 25 4
gpt4 key购买 nike

我有一些 Symfony2 站点,在 cli 用户和缓存目录方面遇到问题。

CentOS 6.7 Apache 2.2.31PHP 5.5.28Symfony 2.7.1(使用 Symfony3 目录结构)

我已按照 Symfony2 安装指南上的说明进行操作,并且使用 setfacl 方法正确设置缓存文件夹的权限。如此处所示(第 3 部分):

http://symfony.com/doc/current/book/installation.html

在我们的服务器上,http 用户是“nobody”。我已将其添加到确定 http 用户的脚本部分,该脚本在实际更改权限之前运行。

HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx|[n]obody' | grep -v root | head -1 | cut -d\  -f1`

当我通过 ssh 登录并运行脚本来清除生产缓存时,就会出现问题:

php bin/console cache:clear --env=prod

如果我运行此命令,会发生的情况是缓存文件夹被删除,然后它被“预热”,因此重新创建该文件夹,但现在我是所有者(而不是任何人),并且该目录的权限不再设置相同。

//Before (immediately after setting S2 permissions):
drwxrwsr-x+ 2 nobody (group) 4096 Aug 27 08:00 cache/

//After running command and cache is warmed up:
drwxr-sr-x 6 (my SSH user) (group) 4096 Aug 27 08:03 cache/

...或者我运行这个...

php bin/console cache:clear --env=prod --no-warmup

如果我在没有预热的情况下运行此命令,缓存文件夹仍会被删除,但一旦获得一些流量,就会重新创建缓存文件夹,这次不属于任何人,但权限又不正确。

//Before (immediately after setting S2 permissions):
drwxrwsr-x+ 2 nobody (group) 4096 Aug 27 08:07 cache/

//After running command and cache is rebuilt:
drwxr-sr-x 6 nobody (group) 4096 Aug 27 08:10 cache/

这不断给“无人”带来问题,因为无法在缓存文件夹中创建目录。我发现的唯一方法是在每次清除缓存后重新创建缓存目录后重置这些文件夹的权限。

在我看来,clear:cache 命令应该删除缓存目录的内容,而不是目录本身。否则每次清除缓存时都必须重置权限。这对我来说似乎不太合适。

如有任何帮助,我们将不胜感激。

最佳答案

您可以使用它来清除缓存作为您的网络服务器用户:

sudo -u [someuser] php 应用程序/控制台缓存:清除

[someuser]替换为nobody

之后权限应该还是可以的。

关于php - Symony2 控制台命令删除缓存文件夹,更改权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32250556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com