Ограничение командной строки PHP cli safe_mode

Я использую структуру Kohana (3.0.9), которая генерирует ежедневные журналы. Я хочу отправить файл журнала, если он был сделан за день до того, как CRON запускает скрипт, но после нескольких попыток дней я не могу понять, как отложить safe_mode в PHP CLI modus.

Когда я запускаю свой скрипт в Интернете, проблем нет. Но я хочу запустить сценарий как задачу CRON на моем сервере Plesk 9.5.2 (или в командной строке как пользователь root). Я получаю следующую ошибку:

ErrorException [2]: dir (): РЕЖИМ БЕЗОПАСНОГО РЕЖИМА. Сценарий, которому uid равен 10001, не имеет права доступа к /var/www/vhosts/mydomain.com/subdomains/mysubdomain/httpdocs/application/logs/2011/01, принадлежащему uid 48 ~ APPPATH / classes / controller / ajax.php [ 181]

Я уже отключил SAFE MODE на панели управления Plesk, которая отлично работает для веб-запроса, но не включена в командной строке или в качестве задачи CRON.

Я использую следующий код, чтобы проверить, работает ли он:

$d = dir(APPPATH.'logs/2011/01/'); echo "Handle: " . $d->handle . "\n"; echo "Path: " . $d->path . "\n"; while (false !== ($entry = $d->read())) { echo $entry."\n"; } $d->close(); 

Я могу прочитать каталог APPPATH.'logs / ', а также каталог APPPATH.'logs / 2011', но каталог, каждый месяц, с ежедневными файлами журнала, всегда дает ошибку.

Solutions Collecting From Web of "Ограничение командной строки PHP cli safe_mode"

В настоящее время вы можете запланировать выполнение скрипта php из UI следующим образом:

Плазменное расписание cron url php script

Если вам еще нужно выполнить скрипт через командную строку, обратите внимание, что двоичные файлы PHP Plesk размещены в:

 # 7.0 /opt/plesk/php/7.0/bin/php # 5.6 /opt/plesk/php/5.6/bin/php # 5.5 /opt/plesk/php/5.5/bin/php # and so on 

Оригинальный ответ:

Я знаю, что это несколько месяцев, но для следующего человека, который сталкивается с проблемой при использовании Plesk и cron и PHP, вот ответ.

В то время как Plesk запускает cron как ROOT, он также запускает PHP по умолчанию с безопасным режимом ON, а это значит, что при настройке cron в Plesk, который нуждается в PHP, у него будут ограничения, которые вы не получаете из оболочки или из Интернета ,

Так что вы используете переопределение CLI /etc/php.ini, например:

 /usr/bin/php -q -d safe_mode=Off /var/www/vhosts/path-to-your-php-file.php 

Вы отключили safe_mode в php.ini для CLI?

Вы можете найти расположение этого файла, выполнив следующую команду php --ini . Найдите safe_mode в этом файле и измените строку на safe_mode = Off .