1

我有一个从 crontab 运行的带有 shell 的 CakePHP 3 应用程序。

当我通过 crontab 运行 shell 时,它会创建运行 crontab 的用户拥有的缓存文件,而不是运行 apache 的用户...

有时当我运行 crontab 时,缓存的模型归 apache 所有,shell 失败,有时当我访问一个页面时,模型归 ec2-user 所有,页面失败......

我在github上发布了一个问题,https://github.com/cakephp/cakephp/issues/11265#issuecomment-333951638

有人告诉我修改缓存配置的 chmod 选项,我尝试了以下但没有奏效...

/**
 * Configure the cache adapters.
 */
'Cache' => [
    'default' => [
        'className' => 'File',
        'path' => CACHE,
        'url' => env('CACHE_DEFAULT_URL', null),
        'chmod' => 777
    ],

关于如何在蛋糕缓存文件上设置默认文件权限 777 的任何想法?

4

2 回答 2

3

我建议让 chron 以正确的用户身份运行,或者让 chron 任务更改所有者并保持设置的权限,但如果你真的想保持原样并更改权限,那么你可以使用mask我假设的选项他们的意思。

缓存配置选项

使用以下设置:

'Cache' => [
    'default' => [
        'mask' => 0777,
        // other config options
    ],
]
于 2017-10-10T14:29:11.680 回答
1

@KaffineAddict 是正确的,但请确保不要将 mask 的值括在引号中,因为这可能会导致这些值无法提供正确的权限。

'Cache' => [
    'default' => [
        'mask' => 0777,
        // other config options
    ],
]    
于 2020-09-22T12:17:47.090 回答