CRON: Permission denied Topic is solved
CRON: Permission denied
Здравствуйте!
Как решит эту проблему с CRON :
CRON
JS.PHP
JS CHMOD 777
Как решит эту проблему с CRON :
Code: Select all
PHP warning: file_put_contents(/ga.js): failed to open stream: Permission denied
Code: Select all
/usr/bin/php -f /home/admin/web/rsg.uz/public_html/assets/components/cronmanager/cron.php
Code: Select all
<?php
// CRON для автоматического обновления файлов стороних сервисов и счетчиков.
function downloadJs($file_url, $save_to, $end_block = false)
{
$content = file_get_contents($file_url);
file_put_contents($save_to, $content);
if(file_put_contents($save_to, $content)){
$file = basename($file_url);
$size = filesize($save_to);
$date = date('d/m/Y H:i:s');
$eol = !$end_block ? PHP_EOL : PHP_EOL.PHP_EOL;
$log = $date.' | '.$file.' | '.$size.$eol;
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/logs/loguploads.txt', $log, FILE_APPEND);
}
}
// Для скриптов без расширения
// downloadJs('http://code.jivosite.com/script/widget/NuT1gBLsC6', realpath($_SERVER['DOCUMENT_ROOT']./media/js'). '/NuT1gBLsC6');
// Метрика
downloadJs('https://mc.yandex.ru/metrika/watch.js', realpath($_SERVER['DOCUMENT_ROOT'].'/js').'/watch.js');
// Google Analytics
downloadJs('https://google-analytics.com/analytics.js', realpath($_SERVER['DOCUMENT_ROOT'].'/js').'/analytics.js');
downloadJs('https://google-analytics.com/ga.js', realpath($_SERVER['DOCUMENT_ROOT'].'/js').'/ga.js');
//mail.ru
?>
Re: CRON: Permission denied
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/logs/loguploads.txt', $log, FILE_APPEND);
при запуске из консоли(crond) директива $_SERVER['DOCUMENT_ROOT'] не работает, переменная актуальна только для веб сервера.
вариант 1: необходимо использовать системные константы для определения пути __FILE__ или __DIR__ относительно обработку.
по хорошему необходимо добавить проверку запустился файл с консоли или через http
вариант 2: использовать curl 'http://rsg.uz/assets/components/cronmanager/cron.php'
при запуске из консоли(crond) директива $_SERVER['DOCUMENT_ROOT'] не работает, переменная актуальна только для веб сервера.
вариант 1: необходимо использовать системные константы для определения пути __FILE__ или __DIR__ относительно обработку.
по хорошему необходимо добавить проверку запустился файл с консоли или через http
вариант 2: использовать curl 'http://rsg.uz/assets/components/cronmanager/cron.php'
Re: CRON: Permission denied
Из консоль все работает
1 и 2 вариант тоже не работает
1 и 2 вариант тоже не работает
Re: CRON: Permission denied
Может работать "из консоли", потому что Вы запускаете скрипт от имени своего пользователя. У Вашего User'a могут быть права на используемые директории, при запуске cron'a - прав может не быть, если cron добавлен от имени другого пользователя.
Переменная $_SERVER['DOCUMENT_ROOT'] создаётся только при http запросе к web серверу. Посмотреть варианты решения можно, например, тут:
https://ru.stackoverflow.com/questions/ ... ument-root
Last bumped by TITAN-UZ on Sat Jun 07, 2025 6:02 pm.