We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
CRON: Permission denied
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