Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP Warning: PHP Startup: Unable to load dynamic library './php_dbase.dll'
 
 автор: Sfinks   (03.02.2012 в 23:03)   письмо автору
 
 

Здравствуйте. Возникла проблемка с кроном. При запуске любого задания вылазиет предупреждение
PHP Warning:  PHP Startup: Unable to load dynamic library './php_dbase.dll' - ./php_dbase.dll: cannot open shared object file: No such file or directory in Unknown on line 0

В принципе я dbase не пользуюсь, и меня бы это не волновало, если бы с каждым запуском не приходило на почту письмо с этой строкой. Результат - 11000 писем за несколько дней!!! Просто у меня несколько заданий запускаются каждую минуту, проверяют одно условие и выходят в 99% случаев, поэтому огромная куча писем с этим предупреждением, которых бы без него вообще не было.

А самое плохое, что я не могу достучаться до админа! пропал куда-то =(

Все задания выглядят так:
#!/usr/local/bin/php
<?php
.................
?>
Подскажите, может можно как-то настроить запуск изнутри? я так понимаю строка #!/usr/local/bin/php отвечает за запуск пыха? Может к ней можно что-то дописать, чтоб эта библиотека не пыталась подгрузиться? Может что-то типа #!/usr/local/bin/php --some_opt ???

  Ответить  
 
 автор: cheops   (03.02.2012 в 23:09)   письмо автору
 
   для: Sfinks   (03.02.2012 в 23:03)
 

>Подскажите, может можно как-то настроить запуск изнутри? я так понимаю строка #!/usr/local/
>bin/php
отвечает за запуск пыха? Может к ней можно что-то дописать, чтоб эта библиотека не
>пыталась подгрузиться? Может что-то типа #!/usr/local/bin/php --some_opt ???
Попробуйте, если честно не уверен... а до самих cron-заданий можно добраться или их только админ выставляет?

Попробуйте еще подавить ошибки при помощи error_reporting(0).

  Ответить  
 
 автор: Sfinks   (03.02.2012 в 23:26)   письмо автору
 
   для: cheops   (03.02.2012 в 23:09)
 

Начну с конца..... с самого странного!

> Судя по dll у вас Windows сервер?
Я тоже так подумал, НО! Вот первая строка из phpinfo:
System -> Linux server.site.ru 2.6.32-5-xen-amd64 #1 SMP Mon Oct 3 07:53:54 UTC 2011 x86_64
Как такое возможно???

> Попробуйте еще подавить ошибки при помощи error_reporting(0)
Это первое о чем я подумал, НО
PHP Warning: PHP Startup: ......
т.е. это вылазит при старте пыха и до того как он прочтет error_reporting(0);
Я конечно попробую, но пока выгружаю мусор с мыла. Результат пока всерн не увижу.

> Попробуйте, если честно не уверен...
А что попробовать? Что там написать?

> а до самих cron-заданий можно добраться
Можно. Через СР. А что там надо увидеть? Там только время запуска и путь. Можно еще подавить отправку е-маил, но он мне иногда и полезные отчеты шлет. Не хотелось бы.

  Ответить  
 
 автор: cheops   (03.02.2012 в 23:41)   письмо автору
 
   для: Sfinks   (03.02.2012 в 23:26)
 

phpinfo() от сервера к PHP от cron, как правило, отношения не имеет - два разных PHP работают часто со своими собственными php.ini. Хотя согласен, все-равно слишком странно и маловероятно, что cron где-то на отдельной машине крутится (хотя можно так сделать, если сильно захочется :), более вероятно, что неправильно сконфигурирован php.ini для cron.

>> Попробуйте, если честно не уверен...
>А что попробовать? Что там написать?
Попробуйте указать -n. Только учтите, это полностью вырубает php.ini, поэтому если вам нужны другие расширения вроде php_mysql - это не очень удачная затея.

  Ответить  
 
 автор: Sfinks   (03.02.2012 в 23:45)   письмо автору
 
   для: cheops   (03.02.2012 в 23:41)
 

error_reporting(0); не помог

> Попробуйте указать -n. Только учтите, это полностью вырубает php.ini, поэтому если
> вам нужны другие расширения вроде php_mysql - это не очень удачная затея.
да много че нужно, например mysql и curl.
А обратно в этой строке их можно подключить?

  Ответить  
 
 автор: cheops   (03.02.2012 в 23:49)   письмо автору
 
   для: Sfinks   (03.02.2012 в 23:45)
 

Ну если только вы укажите путь к своему собственному php.ini, но для этого вам нужно знать где лежат библиотеки на сервере... попробуйте, сначала - может оно и не отключается вовсе (или вдруг все нужное вам хозяйство статически скомпилировано и ему никаких динамический расширений не требуется).

  Ответить  
 
 автор: Sfinks   (03.02.2012 в 23:54)   письмо автору
 
   для: cheops   (03.02.2012 в 23:49)
 

если я получу phpinfo с крона это поможет вам сказать что-то более конкретное? Я просто с линуксами никак вообще не дружу.

  Ответить  
 
 автор: cheops   (03.02.2012 в 23:58)   письмо автору
 
   для: Sfinks   (03.02.2012 в 23:54)
 

Возможно (но не факт, что сможем что-то определенное сделать). Зато как минимум убедимся, что это Linux, а не Windows и вы сможете написать администратору что делать.

  Ответить  
 
 автор: Sfinks   (04.02.2012 в 00:13)   письмо автору
 
   для: cheops   (03.02.2012 в 23:58)
 

А можно как-то вам лично прислать файл? Не охото на форум выкладывать.... Слишком много путей там всяких.

  Ответить  
 
 автор: cheops   (04.02.2012 в 00:18)   письмо автору
 
   для: Sfinks   (04.02.2012 в 00:13)
 

Да, можно отправить на igor@softtime.ru.

  Ответить  
 
 автор: Sfinks   (04.02.2012 в 00:24)   письмо автору
 
   для: cheops   (04.02.2012 в 00:18)
 

отправил!

  Ответить  
 
 автор: cheops   (04.02.2012 в 00:40)   письмо автору
 
   для: Sfinks   (04.02.2012 в 00:24)
 

Да это Linux, используется php.ini, расширения подгружаются отдельно, судя по всему не директивами php.ini, а параметрами командной строки. Можно попробовать его отключить, учитывая, что он все-равно явно поврежденный или вообще от Windows-машины.

  Ответить  
 
 автор: Sfinks   (04.02.2012 в 00:50)   письмо автору
 
   для: cheops   (04.02.2012 в 00:40)
 

Yes! Варнинг исчез =) curl работает.... Ща еще мускул проверю.... Хотя, я так понимаю, он скомпилирован со всеми расширениями?

  Ответить  
 
 автор: Sfinks   (04.02.2012 в 01:00)   письмо автору
 
   для: Sfinks   (04.02.2012 в 00:50)
 

Мускул тож не ругается =) Терь самым информативным наверно будет выполнить
#!/usr/local/bin/php -n
<?php phpinfo(); ?>
Верно я думаю?

Появился варнинг
Warning: date(): It is not safe to 
rely on the system's timezone settings. You are *required* to 
use the date.timezone setting or the 
date_default_timezone_set() function. In case you used any of
 those methods and you are still getting this warning, you 
most likely misspelled the timezone identifier. We selected 
'Europe/Moscow' for 'MSK/4.0/no DST' instead in /
home/sfinks/domains/......
Я так понимаю тут достаточно явно указать
date_default_timezone_set('Europe/Moscow');
верно?

  Ответить  
 
 автор: Sfinks   (04.02.2012 в 01:07)   письмо автору
 
   для: Sfinks   (04.02.2012 в 01:00)
 

Все работает!
ОГРОМНОЕ СПАСИБО!!!! =)

  Ответить  
 
 автор: cheops   (04.02.2012 в 12:29)   письмо автору
 
   для: Sfinks   (04.02.2012 в 01:00)
 

>date_default_timezone_set('Europe/Moscow');
Вот с этим аккуратнее, сейчас в зимнем-летнем временем чехорда, может так статься, что лучше время Баку выставить (если PHP не обновлен). Я бы на всякий случай сохранил бы время в файле, чтобы точно проконтролировать, что он там использует.

  Ответить  
 
 автор: cheops   (04.02.2012 в 12:27)   письмо автору
 
   для: Sfinks   (04.02.2012 в 00:50)
 

>Yes! Варнинг исчез =) curl работает.... Ща еще мускул проверю.... Хотя, я так понимаю, он
>скомпилирован со всеми расширениями?
Ага судя по всему, если одно расширение заработало, значит все статически скомпилировано (впрочем для Linux это характерно, не хотел заранее обнадеживать, сам видел, как используют so-библиотеки, аналоги dll).

  Ответить  
 
 автор: Sfinks   (03.02.2012 в 23:46)   письмо автору
 
   для: cheops   (03.02.2012 в 23:41)
 

что остается? подавить отправку мыла и слать его вручную в конце скрипта?

  Ответить  
 
 автор: cheops   (03.02.2012 в 23:55)   письмо автору
 
   для: Sfinks   (03.02.2012 в 23:46)
 

Вообще я сам много раз убеждался на своем опыте, что вешать авто-отправку e-mail на cron-задания с частотой одна минута - это дурацкая затея, это же касается и cron-заданий с частотой 10 минут... Как только это сделаешь, так тут же тебя за это сервер накажет :))) Лучше да не лениться и делать хорошие лог-файлы и ставить одно cron-задание, которое опрашивает лог-файлы заданий и шлет вам изменения в них с нормальной частотой, раз в 4 часа... к своему скрипту вы фильтр всегда сможете прикрутить.

  Ответить  
 
 автор: Sfinks   (04.02.2012 в 00:01)   письмо автору
 
   для: cheops   (03.02.2012 в 23:55)
 

С одной стороны конечно да..... А если фатал-эррор? Не будет ни лога ни отчета. А сам крон его отошлет.

  Ответить  
 
 автор: cheops   (04.02.2012 в 00:05)   письмо автору
 
   для: Sfinks   (04.02.2012 в 00:01)
 

Ну такие ошибки обычно лучше на локальной машине вылизывать - их очень сложно в cron-задании выуживать, особенно, если частота не большая.

  Ответить  
 
 автор: Sfinks   (04.02.2012 в 00:09)   письмо автору
 
   для: cheops   (03.02.2012 в 23:55)
 

Кроме того, когда он сам не тупит, он от силы 20 писем в сутки шлет. Это он ток запускается очень много раз.

  Ответить  
 
 автор: Sfinks   (03.02.2012 в 23:52)   письмо автору
 
   для: cheops   (03.02.2012 в 23:09)
 

> а до самих cron-заданий можно добраться?
Заметил, что при нажатии кнопки "Prevent email" к строке запуска задания дописывается
>/dev/null 2>&1

Я полагаю там можно еще какие-то параметры запуска указать?
Ничего такого, что могло бы мне помочь нету?

  Ответить  
 
 автор: cheops   (04.02.2012 в 00:01)   письмо автору
 
   для: Sfinks   (03.02.2012 в 23:52)
 

А ну это очень хорошо... это вот что, весь вывод скрипта уничтожается >/dev/null, а ошибки судя по всему шлются вам на почту 2>&1, если написать 2>/dev/null поток теоретически должен прекратиться. А можете всю строку привести?

  Ответить  
 
 автор: Sfinks   (04.02.2012 в 00:41)   письмо автору
 
   для: cheops   (04.02.2012 в 00:01)
 

> а ошибки судя по всему шлются вам на почту 2>&1
Не знаю на счет ошибок, но варнинги прекратились

  Ответить  
 
 автор: cheops   (04.02.2012 в 00:02)   письмо автору
 
   для: Sfinks   (03.02.2012 в 23:52)
 

Кстати вы в задании скорее всего можете писать так
/usr/local/bin/php /путь/к/скрипту/cron.php >/dev/null 2>&1
и вот тут уже можно указывать свои параметры, вплоть до пути к собственному php.ini. Кстати, поройтесь, он может у вас там где-то есть... кроме того, что-то мне подсказывает, что ваша панель его может генерировать (такое часто встречается), вы где хоститесь, если это не секрет, конечно?

  Ответить  
 
 автор: Sfinks   (04.02.2012 в 00:22)   письмо автору
 
   для: cheops   (04.02.2012 в 00:02)
 

> А можете всю строку привести?
Вся строка - это путь к файлу: /home/sfinks/domains/...../
когда жмешь подавить мыло, дописывается >/dev/null 2>&1

> Кстати, поройтесь, он может у вас там где-то есть...
нету

> ваша панель его может генерировать
не видел такого. Панель DirectAdmin

> вы где хоститесь, если это не секрет, конечно?
Ниче секретного. Врятли вам это о чем-то скажет - hostvit.ru
Мелкий хостер из одного человека, поэтому иногда, но последнее время очень редко, вылазиют такие вот тупые проблемки. Зато можно договориться по свойски =) Например чтоб поставили ffmpeg на серв и разрешили его юзать скриптами =)

  Ответить  
 
 автор: cheops   (03.02.2012 в 23:11)   письмо автору
 
   для: Sfinks   (03.02.2012 в 23:03)
 

Судя по dll у вас Windows сервер? Тогда он вообще на ши-бенг #!/usr/local/bin/php не должен никак реагировать (т.е. вообще можно убрать и все должно по-прежнему работать)... там все задается в параметрах cron-задания.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования