Cron делает пользователя публичным в разрешении - PullRequest
0 голосов
/ 12 декабря 2018

Настройка:

Я запускаю сайт WordPress с пользовательским заданием cron, используя 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;
    }
}

Проблема:

Если я запускаю эту функцию (chmod_or_mkdir_function()) по обычному маршруту wp (не через cronjob), она работает просто отлично,Однако, когда я запускаю его через cronjob, я получаю ошибку chmod(): Operation not permitted in или folder is not writable.

Разрешение уже установлено на 775, и они работают только тогда, когда я изменяю на 777, что я действительно надеваюне хочу по соображениям безопасности.

Мое предположение:

Я предполагаю, что когда я вызываю свой php-файл через cronjob, меня почему-то не рассматривают какadmin или group, но как public.

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 12 декабря 2018

Обычно Wordpress запускается под пользователем веб-сервера, таким как apache, тогда как вы являетесь вами.Вы можете изменить группу, к которой принадлежит файл, к которой вы и Wordpress принадлежите.Поскольку файл уже доступен для групповой записи (775), изменение его группы на группу, членами которой вы оба являетесь, должно помочь.Вы можете использовать команду chgrp:

chgrp newgroup file

Если ваш файл на самом деле является каталогом, добавьте -R, чтобы сделать его рекурсивным:

chgrp -R newgroup file

...