首页 > 解决方案 > Cron 使用户在许可下公开

问题描述

环境:

我正在运行一个带有自定义 cron 作业的 wordpress 站点,使用crontab -e.

在我的 php 文件中,我有以下执行函数:

require('/var/www/html/wp-load.php');
define('WP_USE_THEMES', false);

if (!empty($argv[1])) {        
    switch ($argv[1]){
        case 'init':
            chmod_or_mkdir_function();
            break;
    }
}

问题:

如果我通过正常的 wp 路由(而不是通过 cronjob)运行这个函数(chmod_or_mkdir_function()),它工作得很好。但是,当我通过 cronjob 运行它时,我得到chmod(): Operation not permitted infolder is not writable错误。

权限已设置为775,它们仅在我更改为 时才起作用777,出于安全原因,我真的不想这样做。

我猜:

我的猜测是,当我通过 cronjob 调用我的 php 文件时,不知何故我不被视为admin也不被group视为public.

我将如何解决这个问题?

标签: phpwordpresspermissionschmod

解决方案


通常,Wordpress 在网络服务器的用户(例如 apache)下运行,而您就是您。您可以将文件所属的组更改为您和 Wordpress 都属于的组。由于该文件已经是组可写的(775),因此将其组更改为您都是其中的成员应该可以解决问题。您可以使用 chgrp 命令:

chgrp newgroup file

如果您的文件实际上是一个目录,请输入 -R 以使其递归:

chgrp -R newgroup file


推荐阅读