instantsoft / icms2

Self-hosted Site Management System
https://instantcms.ru
GNU General Public License v2.0
294 stars 120 forks source link

Update step_cron.php #1340

Closed oldgin closed 3 years ago

oldgin commented 3 years ago

Прежняя команда крон не выполняется на серверах с изоляцией по доменам и/или директориям (тот же Chroot), поэтому, крону необходимо сперва перейти в директорию и потом уже запустить php-скрипт

oldgin commented 3 years ago

дополню, чтоб уже наверняка. Первая команда php -f /path/to/site/cron.php говорит крону " — выполни вот этот файл" и он выполняет исходят из глобальных настроек юзера. Вторая команда cd ~/path/to/site/ && php cron.php говорит крону "- выполни этот файл в той-то директории"

под одним юзером у нас могут быть разные версии и настройки php для каждого отдельного хоста/приложения, поэтому и выполнение по крон должно привязываться к конкретным директориям, а не к юзеру

fuzegit commented 3 years ago

Вторая команда cd ~/path/to/site/ && php cron.php говорит крону "- выполни этот файл в той-то директории"

Нет. Она говорит, смени текущую директорию и выполни команду "php cron.php". При условии что пути, где искать бинарник php определены и тот же which вернёт полный путь к php и бинарник php нужной версии.

Вариантов запуска может быть много, при установке показан принцип. Ваш случай - частный. Указанный при установке - общий. Кто в теме, прекрасно создадут задание для cron с учётом настроек сервера.