LinuxForum.Fans
Тема

проблема с Cron

Автор: karen_kiril 71 сообщений 9285 просмотров
#342022

Всем привет.
Ребят сталкнулся с такой проблемой, немогу настроить cron , выдаёт ошибку

text
Вывод команды /usr/bin/php -n /var/www/site/cron.php ..
Fatal error: Call to undefined function mysql_connect() in /var/www/site/connect.php on line 24

как я понимаю во всем виноват php-mysql так как если через браузер обратиться к файлу крон http://site/cron.php то все работает отлично.

php-mysql у меня установлен.

помогите решить проблему. :-[

#342029

Нагуглил такой вариант,

php -c /etc/php.ini /path/to/script.php

вроде как возможно, что в консоле php вызывается с дефолтными настройками, в которых модуль mysql закомментирован.

#342042

тоесть в моем случае это

text
php -c /etc/php52/apache2/php.ini /var/www/site/cron.php 

выдаёт кучу ошибок.

#342054

Приведите список, и если это какой-то стандартный движок, точнее скрипт /var/www/site/cron.php от стандартного движка, скажите название.
Также интересует версия debian. Так как например в 6 версии пакета php нет, идет php5.

#342057

Скрипт не от стандартного движка. Это "Браузерная Онлайн Игра" дело в том что на другом сервере работает , в ручную через браузер тоже работает.

а на моём сервере отказывается ...

вот ошибки:

text
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/msql.so' - /usr/lib/php5/20090626+lfs/msql.so: cannot open shared object file: No such file or directory in Unknown on line 0

Deprecated: Directive 'register_globals' is deprecated in PHP 5.3 and greater in Unknown on line 0

Deprecated: Directive 'register_long_arrays' is deprecated in PHP 5.3 and greater in Unknown on line 0

Deprecated: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0

Fatal error: Call to undefined function mysql_connect() in /var/www/site/connect.php on line 24

как я понимаю php не видит модуль msql.so

по этому пути /usr/lib/php5/20090626+lfs/msql.so такого файла нету. есть mysql.so

#342059

Ну судя по ошибкам, под командой php у вас запускается php версии 5.3, а вы ему подсовываете ini скрипт другой версии 5.2.
Дайте вывод php -v

Потом попробуйте запустить dpkg-reconfigure php5-mysql или dpkg-reconfigure php-mysql в зависимости от того какой у вас там пакет.
И затем php /var/www/site/cron.php

#342060

такс открыл php.ini поправил файл msql.so на mysql.so

сохранился. перезапустился

выполняю крон:

text
Вывод команды php -c /etc/php52/apache2/php.ini /var/www/site/cron.php ..

Deprecated: Directive 'register_globals' is deprecated in PHP 5.3 and greater in Unknown on line 0

Deprecated: Directive 'register_long_arrays' is deprecated in PHP 5.3 and greater in Unknown on line 0

Deprecated: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0 FinishedOKOK

#342061
Sonic написал:

Дайте вывод php -v
text
/etc/php52/apache2$ php -v
PHP 5.3.6-6~dotdeb.1

root@debian:~# dpkg-reconfigure php5-mysql
root@debian:~# dpkg-reconfigure php-mysql
Пакет «php-mysql» не установлен, информация о нём недоступна.
Для проверки файлов архивов используйте команду dpkg --info (dpkg-deb --info),
для вывода списка файлов в них -- команду dpkg--contents (dpkg-deb --contents).
/usr/sbin/dpkg-reconfigure: Пакет php-mysql не установлен

#342063
"karen_kiril" написал:
такс открыл php.ini поправил файл msql.so на mysql.so

По идеи так делать не стоит или об этом надо всегда помнить, так как логика debian подразумеват подключение этих директив отдельными пакетами, в частном случае php5-mysql или php-mysql, у них есть отдельный файл который прикрепляется к основному. Поэтому при удалении данного пакета, он автоматически отключить из основного. А у вас сейчас вручную mysql будет подключен постоянно.

Да и кстати, скрипт походу выполнился, суда по строкам FinishedOKOK.

#342064
karen_kiril написал:
[quote=Sonic]
Дайте вывод php -v
text
/etc/php52/apache2$ php -v
PHP 5.3.6-6~dotdeb.1

[/quote]
Вот видите, версия 5.3 нужно искать какой у него конфиг, но это явно не /etc/php52/apache2/php.ini, если вы конечно руками там все не перепахали.
Поэтому запускаете php -i | grep php.ini и смотрите где находится конфигурационный файл и по схеме php -c подключаете его. Если dpkg-reconfigure не помогло.

#342065
text
root@debian:~# php -i | grep php.ini
Configuration File (php.ini) Path => /etc/php5/cli

да вот только у меня такого пути нету есть php52 но каталога php5 нету

#342067

Значит попробуйте запустить на через команду php, а через php5.
В общем не обязательно php5, а какие еще доступны команды с началом php* не знаю, какой командой можно это посмотреть :(
По табу какие там дополнения идут?

#342069

по табу php и php5 всё

#342070

Если у вас сайт запущен на этом же сервере, то можете показать вывод ps aux | grep php

#342071
"karen_kiril" написал:
по табу php и php5 всё

Нужен вывод
php5 -i | grep php.ini

#342072
"Sonic" написал:
В общем не обязательно php5, а какие еще доступны команды с началом php* не знаю, какой командой можно это посмотреть

slocate (перед использованием этой надо сделать updatedb от рута)
find dir_name -type f -execute -name "шаблон"

#342074
text
root@debian:~# php5 -i | grep php.ini
Configuration File (php.ini) Path => /etc/php5/cli
text
root@debian:~# ps aux | grep php
root     28922  0.0  0.0   3320   772 pts/0    S+   20:27   0:00 grep php
#342075

drBatty, в минимальной установке debian slocate не установлен, а с find я правильно понял, что надо все каталоги перебирать?

#342078

karen_kiril, если честно я запутался, не понимаю, как работает сайт, если в консоли пишет, что не может найти mysql_connect() :) И в добавок еще и без конфигурационного файла.

Давайте начнем все сначала.
Вы выполнили команду dpkg-reconfigure php5-mysql и после нее команда php /var/www/site/cron.php все равно выдает ошибку о mysql_connect()?

Если так, то давайте по шагам, у меня других идей нет, нужен вывод ls /etc | grep php

#342080

да выполнил:

text
root@debian:~# dpkg-reconfigure php5-mysql
root@debian:~# php /var/www/site/cron.php

Fatal error: Call to undefined function mysql_connect() in /var/www/site/connect.php on line 24

text
root@debian:~# ls /etc | grep php
php52
phpmyadmin
root@debian:~#

хех вообщем как я понял судя из php-info у меня 2 версии php
php5.2 и php5.3

Войдите или зарегистрируйтесь, чтобы ответить.