- Проблема с запуском скрипта через cron
- Ответы (3 шт):
- команды cron не запускаются, вывод /bin/sh:1:php: не найден
- 2 ответа
- Не запускается cron
- 1С-Битрикс. Выполнение всех агентов на cron. Исправляем ошибку PHP Fatal error: Class ‘CEvent’ not found
- Похожие записи
- 1С-Битрикс. LazyLoad или ленивая загрузка контента при включенном кешировании
- 1C-Битрикс. Кастомизация нового шаблона компонента sale.order.ajax
- 1С-Битрикс. Пишем человеческий шаблон многоуровнего меню каталога
- 3 комментария
Проблема с запуском скрипта через cron
Права на файл cron поставил 777, всё равно не работает.
Подскажите, пожалуйста, как разобраться в сложившийся ситуации.
Ответы (3 шт):
UPD Из комментария.
полный путь к фалу: /var/www/application/controllers/main/cron.php Пробовал как вы писали выше, всё равно такая же ошибка. В файл cron.php должен передавать токен.
*/1 * * * * php /var/www/application/controllers/main/cron.php?token=TOKEN > /tmp/lcron.log 2>&1
Убедитесь, что пользователю, от чьего имени будет работать задание cron, доступен этот файл
*/1 * * * * /usr/bin/wget http://site.ru/main/cron/index?token=TOKEN > /tmp/lcron.log 2>&1
Спасибо! С днем программиста всех!
wget хороший и универсальный вариант, но, справедливости ради, зачастую не единственный.
PHP Fatal error: Class ‘Controller’ not found in /var/www/application/controllers/main/cron.php on line 2
Такие ошибки, как правило, возникают из-за того, что в скрипте, вызываемом через cron, подключаются другие файлы по относительному пути с расчётом на то, что скрипт будет вызываться через запрос к сайту. При запуске такого скрипта через cron относительность пути ломается и нужный файл не подключается. Исправить это можно, если добавить в начало вызываемого скрипта следующий код:
$_SERVER['HTTP_HOST'] = 'имя_сайта'; $_SERVER['REMOTE_ADDR'] = 'IP_адресс'; $_SERVER['REQUEST_METHOD'] = 'GET'; chdir('/var/www/application/www/и/далее/путь/к/папке/скрипта');
команды cron не запускаются, вывод /bin/sh:1:php: не найден
Но внутри /var/www/storage/logs/cron.log я получаю следующее.
Я попытался запустить следующее для справки:
# which php /usr/local/bin/php # whoami root
Я запускаю cron из образа докера (ОС: Ubuntu) в проекте Laravel.
Я пытался изменить путь разными способами, но все равно выдавал ту же ошибку.
Подобных вопросов было много, но ответа я так и не нашел.
Текущего каталога нет в вашем PATH (и не должно быть). Просто пропустите бесполезную команду cd и вместо нее запустите /usr/local/bin/php .
@ Какой-то программист, чувак Вау, вот так вот сработало. Если вы добавите свой комментарий в качестве ответа, я могу установить его как правильный ответ.
Решение программиста отлично работает. Но в основном можно использовать только команду PHP, но все зависит от установки PHP.
Я оговорился. На самом деле это зависит не от установки PHP, а от наличия «/usr/local/bin» в PATH пользователя, запускающего команду.
2 ответа
Текущий каталог не находится в PATH (и не должно быть).
Просто пропустите бесполезную команду cd и вместо нее запустите /usr/local/bin/php :
0,30 * * * * /usr/local/bin/php /var/www/artisan my_command > /var/www/storage/logs/cron.log 2>&1
«Текущий каталог не указан в PATH». Нам нужен не текущий каталог в PATH, а каталог /usr/local/bin/. Мне кажется, что это переменная PATH в некоторых установках.
Спасибо @Some программисту, чувак.
Я хотел бы добавить некоторые детали, так как я изначально не мог понять, что он имел в виду.
По сути, когда я вызывал php , cron искал файл в каждой папке внутри PATH , но НЕ в текущем каталоге (если только он не находится внутри PATH ).
Конечно, просто удалить компакт-диск — лучшее решение.
Но чтобы лучше объяснить проблему, другим прекрасно работающим решением было бы следующее:
0,30 * * * * cd /usr/local/bin && ./php /var/www/artisan my_command
Единственное отличие здесь от команды, которую я использовал изначально, заключается в том, что я указываю использовать текущий путь с ./ .
Не запускается cron
путь до интерпретатора php верный узнавал через which php
на файле cron.php права 755.
путь верный.
Ноль реакции.
Сервер в связке ngnix+php-fpm
Скачивал apt-get install php5-cli
Запускал опять ноль реакции
Cron
Я бы хотел разобраться как использовать крон.И прошу вас объяснить или хотя бы дать ссылку на.
cron не работает
Пытаюсь запускать php скрипт каждую минуту из cron, но каждую минуту по каким-то причинам он не.
OpenServer и Cron
Попробую объяснить. Есть в отдельном файле php скрипт, нужен запуск php-скриптов с помощью.
Парсер и Cron
Доброго времени суток. Я сделал парсер страницы. Теперь у меня появилось 2 проблемы, которые я не в.
* * * * * /usr/bin/php /home/www/site.domain/htdocs/cron/cron.php
Сообщение от maruo
Сообщение от maruo
Добавлено через 1 минуту
Еще можно вывод игнорить
Добавлено через 1 минуту
И не должно быть прав на выполнение у php файлов — нужно понизить до 644
Jewbacabra, тишина вообще гробовая
напрямую скрипт запускал отрабатывает без ошибок все. а вот крон молчит.
В логах мышь сдохла
Ребят гляньте мб что не так? Проблему не решил, серьездно, я весь инет перелазил, все перечитал не понимаю ошибки
/usr/bin/php /home/www/site.domain/htdocs/cron/cron.php
Jewbacabra, вы имеете ввиду так?
cd /home/www/site.domain/htdocs/cron/
> /usr/bin/php cron.php?
Если да, то запускал так, отрабатывает
Сообщение от maruo
А если запускать без cd, не из папки со скриптом, как я выше писал? От одного и того же пользователя запускается команда из консоли и команда из крона?
Jewbacabra, Пользователь один и тот же.
Работоспособность проверяется логированием работы php скрипта
Так же мб поможет пытался посмотреть эти файлы
/etc/cron.allow && /etc/cron.denny их нету
Тут ошибки появились, когда реешил поставить apt-get install php5-cli , мб в этом проблема?
root@winitem-node-01:/home/userwinitem# apt-get install php5-cli Reading package lists. Done Building dependency tree Reading state information. Done The following packages were automatically installed and are no longer required: libc-ares2 libv8-3.14.5 Use 'apt-get autoremove' to remove them. The following extra packages will be installed: php5-common php5-curl php5-fpm php5-gd php5-intl php5-mysql php5-pgsql php5-readline php5-sqlite php5-xmlrpc php5-xsl Suggested packages: php5-user-cache The following packages will be upgraded: php5-cli php5-common php5-curl php5-fpm php5-gd php5-intl php5-mysql php5-pgsql php5-readline php5-sqlite php5-xmlrpc php5-xsl 12 upgraded, 0 newly installed, 0 to remove and 34 not upgraded. Need to get 5166 kB of archives. After this operation, 10.2 kB of additional disk space will be used. Do you want to continue? [Y/n] y Err http://archive.ubuntu.com/ubuntu/ trusty-security/universe php5-intl amd64 5 .5.9+dfsg-1ubuntu4.19 404 Not Found [IP: 91.189.88.162 80] Err http://archive.ubuntu.com/ubuntu/ trusty-security/main php5-mysql amd64 5.5. 9+dfsg-1ubuntu4.19 404 Not Found [IP: 91.189.88.162 80] Err http://archive.ubuntu.com/ubuntu/ trusty-security/main php5-readline amd64 5 .5.9+dfsg-1ubuntu4.19 404 Not Found [IP: 91.189.88.162 80] Err http://archive.ubuntu.com/ubuntu/ trusty-security/main php5-cli amd64 5.5.9+ dfsg-1ubuntu4.19 404 Not Found [IP: 91.189.88.162 80] Err http://archive.ubuntu.com/ubuntu/ trusty-security/main php5-xsl amd64 5.5.9+ dfsg-1ubuntu4.19 404 Not Found [IP: 91.189.88.162 80] Err http://archive.ubuntu.com/ubuntu/ trusty-security/universe php5-fpm amd64 5. 5.9+dfsg-1ubuntu4.19 404 Not Found [IP: 91.189.88.162 80] Err http://archive.ubuntu.com/ubuntu/ trusty-security/main php5-xmlrpc amd64 5.5 .9+dfsg-1ubuntu4.19 404 Not Found [IP: 91.189.88.162 80] Err http://archive.ubuntu.com/ubuntu/ trusty-security/main php5-sqlite amd64 5.5 .9+dfsg-1ubuntu4.19 404 Not Found [IP: 91.189.88.162 80] Err http://archive.ubuntu.com/ubuntu/ trusty-security/main php5-gd amd64 5.5.9+d fsg-1ubuntu4.19 404 Not Found [IP: 91.189.88.162 80] Err http://archive.ubuntu.com/ubuntu/ trusty-security/main php5-pgsql amd64 5.5. 9+dfsg-1ubuntu4.19 404 Not Found [IP: 91.189.88.162 80] Err http://archive.ubuntu.com/ubuntu/ trusty-security/main php5-curl amd64 5.5.9 +dfsg-1ubuntu4.19 404 Not Found [IP: 91.189.88.162 80] Err http://archive.ubuntu.com/ubuntu/ trusty-security/main php5-common amd64 5.5 .9+dfsg-1ubuntu4.19 404 Not Found [IP: 91.189.88.162 80] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/universe/p/php5/php5-in tl_5.5.9+dfsg-1ubuntu4.19_amd64.deb 404 Not Found [IP: 91.189.88.162 80] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php5/php5-mysql_ 5.5.9+dfsg-1ubuntu4.19_amd64.deb 404 Not Found [IP: 91.189.88.162 80] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php5/php5-readli ne_5.5.9+dfsg-1ubuntu4.19_amd64.deb 404 Not Found [IP: 91.189.88.162 80] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php5/php5-cli_5. 5.9+dfsg-1ubuntu4.19_amd64.deb 404 Not Found [IP: 91.189.88.162 80] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php5/php5-xsl_5. 5.9+dfsg-1ubuntu4.19_amd64.deb 404 Not Found [IP: 91.189.88.162 80] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/universe/p/php5/php5-fp m_5.5.9+dfsg-1ubuntu4.19_amd64.deb 404 Not Found [IP: 91.189.88.162 80] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php5/php5-xmlrpc _5.5.9+dfsg-1ubuntu4.19_amd64.deb 404 Not Found [IP: 91.189.88.162 80] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php5/php5-sqlite _5.5.9+dfsg-1ubuntu4.19_amd64.deb 404 Not Found [IP: 91.189.88.162 80] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php5/php5-gd_5.5 .9+dfsg-1ubuntu4.19_amd64.deb 404 Not Found [IP: 91.189.88.162 80] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php5/php5-pgsql_ 5.5.9+dfsg-1ubuntu4.19_amd64.deb 404 Not Found [IP: 91.189.88.162 80] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php5/php5-curl_5 .5.9+dfsg-1ubuntu4.19_amd64.deb 404 Not Found [IP: 91.189.88.162 80] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php5/php5-common _5.5.9+dfsg-1ubuntu4.19_amd64.deb 404 Not Found [IP: 91.189.88.162 80] E: Unable to fetch some archives, maybe run apt-get update or try with --fix-mis sing?
root@winitem-node-01:/home/userwinitem# whereis php -v php: /usr/bin/php /usr/bin/X11/php /usr/share/php /usr/share/man/man1/php.1.gz Usage: whereis [options] file Options: -f define search scope -b search only binaries -B define binaries lookup path -m search only manual paths -M define man lookup path -s search only sources path -S define sources lookup path -u search from unusual enties -V output version information and exit -h display this help and exit See how to use file and dirs arguments from whereis(1) manual.
1С-Битрикс. Выполнение всех агентов на cron. Исправляем ошибку PHP Fatal error: Class ‘CEvent’ not found
Давно хотел попробовать перевести выполнение всех агентов с хитов на крон. Даже статья в документации есть. Пришло время. Сел, сделал и забыл (dev-копия сайта позволяет «забывать»). Зашел проверить через несколько дней: выполняются ли агенты — нет 🙂
В логах красовались ошибки:
PHP Fatal error: Class 'CEvent' not found in /path/to/local/php_interface/cron_events.php on line 14 PHP Stack trace: PHP 1. () /path/to/local/php_interface/cron_events.php:0
Если вы видите похожую ошибку, то скорее всего в CLI режиме параметр short_open_tag у вас отключен. Решается просто (при наличии доступа к настройкам PHP).
Идём в файл настроек /etc/php5/cli/php.ini и выставляем short_open_tag в On.
Похожие записи
1С-Битрикс. LazyLoad или ленивая загрузка контента при включенном кешировании
В этой заметке я хочу рассказать о технологии LazyLoad или в простонародье «ленивая загрузка» в Битриксе. Метод, описанный мной, будет точно работать в компонентах catalog.section и news.list.
1C-Битрикс. Кастомизация нового шаблона компонента sale.order.ajax
С выходом нового шаблона компонента sale.order.ajax на форумах битрикса разгораются возмущения и недомения. Мол, теперь код всего шаблона на JavaScript и как его кастомизировать непонятно. На самом деле да, код js-скрипта составляет почти семь тысяч строк. Сходу в таком количестве кода, даже хорошо написанного (к сожалению, битрикс этим не балует), соблюдая паттерны программирования, будет непросто.
В этой заметке я покажу способ, как можно кастомизировать основной скрипт логики шаблона оформления заказа (order_ajax.js), не прибегая к его правке. Что нам это даёт? Когда прилетят очередные обновления шаблона, мы просто заменим его и всё. Все наши кастомизации будут работать (в теории).
1С-Битрикс. Пишем человеческий шаблон многоуровнего меню каталога
Не буду писать про боль при интегации дефотного шаблона. Давайте просто напишем свой, с блекджеком и вот этим всем.
В заметке будет (интересного):
- построение древовидного массива без рекурсии (неограниченной вложенности)
- анонимная рекурсивная функция
- формирование урлов для секций супер-быстрым способом
- поработаем с сущностями инфоблока через ORM D7
3 комментария
Доступ к файлу настроек php.ini не нужен! Достаточно вызывать php примерно так: /usr/bin/php -d display_errors -d short_open_tag /var/www/bitrix/modules/main/tools/cron_events.php
Спасибо большое! Всю голову сломал, в чем ошибка. Сложно отловить ее. Оч благодарю!