Выполнить PHP в Ubuntu 18.04 crontab - PullRequest
0 голосов
/ 12 января 2019

Я не могу заставить скрипт PHP выполняться в crontab

Ubuntu 18.04

PHP 7.3

Веб-сервер Nginx на цифровом океане

Edit:

sudo nano /etc/crontab
sudo /etc/init.d/cron restart

Я пробовал следующие комбинации и другие варианты, используя root как пользователя, и не могу запустить скрипт php

* * * * * /usr/bin/php /home/forge/laravel/public/cron/account_balances.php
* * * * * php /home/forge/laravel/public/cron/account_balances.php
* * * * * forge /usr/bin/php /home/forge/laravel/public/cron/account_balances.php >> /dev/null 2>&1
* * * * * forge php /home/forge/laravel/public/cron/account_balances.php >> /dev/null 2>&1
* * * * * sudo -u www-data php /home/forge/laravel/public/cron/account_balances.php >> /dev/null 2>&1

Сценарий прекрасно работает в браузере и обновляет некоторые строки в базе данных mysql, поэтому я знаю, выполняет ли его cron. Я проверяю логи и не вижу ошибок:

sudo cat /var/log/syslog | grep cron

Я где-то читал, что это может быть проблема с правами на запуск cron, так как я использую Nginx?

1 Ответ

0 голосов
/ 12 января 2019

Обнаружил проблему.

Сначала скрипт php, который я выполнял из командной строки, не имел правильных разрешений. Исправлено при запуске

find * -type d -print0 | xargs -0 chmod 0755 # for directories 
find . -type f -print0 | xargs -0 chmod 0644 # for files

Во-вторых, в моем php-файле была ошибка path_once. Скрипт работал нормально из браузера, но не через командную строку.

Изменить с:

require_once ("../libs/php_sdk/config.php");

Кому:

require_once (__DIR__ . "/../libs/php_sdk/config.php");
...