|
|
09.07.2007, 18:30
|
|
urix
Зарегистрирован: 2006-04-06
Сообщений: 30
|
Добрый день!
Неткат версии 244 плюс (если это имеет значение)
Беда такая - в кронтабе чудесно прописаны стандартные скрипты - запуск индексации поиска, запуск оптимизации таблиц, сбора статистики. Всё это чудно по расписанию работает.
Добавляю свой скрипт, например /netcat/modules/sites/index.php - кронтаб пишет в базу, что скрипт отработал, но на самом деле скрипт не запускался.
Если ручками запустить скрипт /netcat/admin/crontab.php - то мой личный скрипт отработает наравне с другими.
Расковырял скрипт кронтаба - он прост, как валенок, через passthru пропускает мой скрипт. Вне зависимости от того, выводит при работе мой скрипт что-нибудь на экран или нет, не работает. Ошибку passthru не выдаёт (код возврата - 0).
Права на мой скрипт и каталог, где он лежит, поставил 755. Не помогло, ессно.
Я уже не знаю, куда и смотреть.
urix
|
|
|
10.07.2007, 02:11
|
|
d
Зарегистрирован: 2007-02-09
Сообщений: 93
|
Если запускать скрипт вручную или через cron - то будут разные пользователи. Посмотреть на предмет прав и видимости wget у нужного пользователя. Чаще всего проблема не с правами, а с видимостью - пропишите /usr/bin/wget (или где он находится). Если wget вообще не установлен, то можно использовать fetch.
Проверьте, правильно ли определяется url для выполнения ($HTTP_HOST может быть не виден): http://".$HTTP_HOST.$rs['Cron_Script_URL']
Обычно этих действий хватает в случае, если в базу пишется, что скрипт отработал.
PS:
Цитата:Всё это чудно по расписанию работает.
Вряд ли оно работает, просто пишет, что отработало.
|
|
|
10.07.2007, 11:20
|
|
urix
Зарегистрирован: 2006-04-06
Сообщений: 30
|
d писал(а):Если запускать скрипт вручную или через cron - то будут разные пользователи. Вряд ли оно работает, просто пишет, что отработало.
Работает. Сайт-то по расписанию переиндексируется, таблицы оптимизируются, я специально отслеживал...
URL определяется правильно, я проверял.
wget отрабатывает, ему по барабану, какой УРЛ тянуть. Ведь неткатовские скрипты работают же =/
Miph, спасай!
urix
|
|
|
10.07.2007, 14:19
|
|
urix
Зарегистрирован: 2006-04-06
Сообщений: 30
|
Итак, решение было найдено.
Я ошибался, wget отказывался работать. Когда я включил запись лога wget-а в файл, обнаружились нелицеприятные особенности.
Цитирую лог
<noindex>
Код:http:///netcat/modules/optimize/cron.php: Empty host.
Опа! HTTP_HOST не передаётся! Во-первых, в crontab.php прописано так
Код:$_SERVER['HTTP_HOST']="имясайта.ru"; # Домен
И при вызове самого wget-а переменная передаётся таким образом
Код:passthru("wget -O - -q http://".$HTTP_HOST.$rs['Cron_Script_URL']);
Не всегда это работает!
Я озверел, прописал вручную в мою переменную
Код:$myhost="имясайта.ru";
passthru("wget -O - -q http://".$myhost.$rs['Cron_Script_URL']);
Подойдёт и такой вариант
Код:passthru("wget -O - -q http://".$_SERVER['HTTP_HOST'].$rs['Cron_Script_URL']);
Аллилуйя, завелось!
Неткатовцы, пожалуйста, поправьте скрипт. Наверняка у многих такая же проблема - вроде бы запуск по крону происходит, а по факту - фиг. Оттого и проблемы с поиском "не индексирует", и базы не оптимизируются...
</noindex>
urix
|
|
|
10.07.2007, 17:52
|
|
d
Зарегистрирован: 2007-02-09
Сообщений: 93
|
Цитата:Опа! HTTP_HOST не передаётся!
Я же вроде прямо об этом и написал:
Цитата:Проверьте, правильно ли определяется url для выполнения ($HTTP_HOST может быть не виден)
PS: а Miph уже давно не работает в Неткете.
|
|
|
10.07.2007, 18:55
|
|
urix
Зарегистрирован: 2006-04-06
Сообщений: 30
|
d писал(а):
Я же вроде прямо об этом и написал:
Проверьте, правильно ли определяется url для выполнения ($HTTP_HOST может быть не виден)
Нда. Вот и верь после этого людям
Я-то полагал, что скрипт отлажен, а оно вот как
d писал(а):PS: а Miph уже давно не работает в Неткете.
Ого! А теперь вы за него?
И последний вопрос - дамп по крону не создаётся. Лог wget-а показал, что когда я пытаюсь открыть /netcat/admin/dump.php?phase=1 , меня просят залогиниться в неткат.
Что делать? ;)
urix
|
|
|
10.07.2007, 19:16
|
|
d
Зарегистрирован: 2007-02-09
Сообщений: 93
|
Цитата:Нда. Вот и верь после этого людям
Я-то полагал, что скрипт отлажен, а оно вот как
Мой совет был основан на том, что я сталкивался с такой проблемой на некоторых хостингах, а не на том, что скрипт не отлажен Хотя, конечно, не стоило полагаться на внешние факторы.
Цитата:Ого! А теперь вы за него?
Нет, я вообще там никогда не работал Насколько мне известно, основная работа техподдержки системы идет через helpdesk, а не на форуме
Цитата:И последний вопрос - дамп по крону не создаётся.
Ну да, было бы странно, если бы любой пользователь без авторизации мог создать дамп - этим хостинг можно завалить за 2 минуты. Нужно на основе скрипта dump.php сделать исполняемый скрипт без авторизации (но с проверкой на ключевое слово, как остальные скрипты), и запускать его.
|
|
|
11.07.2007, 11:12
|
|
urix
Зарегистрирован: 2006-04-06
Сообщений: 30
|
d писал(а):
Ну да, было бы странно, если бы любой пользователь без авторизации мог создать дамп - этим хостинг можно завалить за 2 минуты. Нужно на основе скрипта dump.php сделать исполняемый скрипт без авторизации (но с проверкой на ключевое слово, как остальные скрипты), и запускать его.
Я почему-то так и подумал =)
Но это уже ведь совсем хак системы получается, хочется сохранить целостность основных файлов. А то у меня 4 сайта на неткате, и в случае обновления это всё опять придётся переписывать... бррр...
urix
|
|
|
11.07.2007, 13:29
|
|
d
Зарегистрирован: 2007-02-09
Сообщений: 93
|
почему хак? "На основе скрипта dump.php" - это не значит, что нужно переписывать исходный файл. Можно новый назвать как угодно и положить куда угодно. И запускать по крону.
|