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

Вывод команды /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 у меня установлен.

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

2

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

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

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

На мясокомбинате я работаю свиньёй.

3

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

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

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

4

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

На мясокомбинате я работаю свиньёй.

5 (07.10.2013 19:43:59 отредактировано karen_kiril)

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

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

вот ошибки:

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

6

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

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

На мясокомбинате я работаю свиньёй.

7

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

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

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

Вывод команды 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

8 (07.10.2013 20:00:16 отредактировано karen_kiril)

Sonic пишет:

Дайте вывод php -v

/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 не установлен

9

karen_kiril пишет:

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

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

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

На мясокомбинате я работаю свиньёй.

10

karen_kiril пишет:
Sonic пишет:

Дайте вывод php -v

/etc/php52/apache2$ php -v
PHP 5.3.6-6~dotdeb.1

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

На мясокомбинате я работаю свиньёй.

11 (07.10.2013 20:03:59 отредактировано karen_kiril)

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

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

12

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

На мясокомбинате я работаю свиньёй.

13

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

14

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

На мясокомбинате я работаю свиньёй.

15

karen_kiril пишет:

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

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

На мясокомбинате я работаю свиньёй.

16 (07.10.2013 20:13:24 отредактировано drBatty)

Sonic пишет:

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

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

17 (07.10.2013 20:28:24 отредактировано karen_kiril)

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



root@debian:~# ps aux | grep php
root     28922  0.0  0.0   3320   772 pts/0    S+   20:27   0:00 grep php

18

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

На мясокомбинате я работаю свиньёй.

19

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

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

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

На мясокомбинате я работаю свиньёй.

20 (07.10.2013 20:30:29 отредактировано karen_kiril)

да выполнил:

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



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

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

21

Не /var/www/site/cron.php, а php /var/www/site/cron.php То есть попробовать запустить ab

На мясокомбинате я работаю свиньёй.

22

Sonic пишет:

Не /var/www/site/cron.php, а php /var/www/site/cron.php То есть попробовать запустить ab

исправился=)) выше топ

23

Sonic пишет:

в минимальной установке debian slocate не установлен

долго поставить?

Sonic пишет:

а с find я правильно понял, что надо все каталоги перебирать?

я не думаю, что у кого-то хватит мозгов поставить конфиг НЕ в /etc/

(или в /usr/local/etc если ТС сам собрал из сырцов по дефолту).

Sonic пишет:

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

что тут непонятного?

--no-php-ini
       -n             No php.ini file will be used

вот и не работает.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

24

ОК, давайте список установленных пакетов причастных к php
dpkg --list php* | grep ii

На мясокомбинате я работаю свиньёй.

25

karen_kiril, да, вы НЕПРАВИЛЬНО запускаете. надо наверное так

# sudo -u www-data php /var/www/site/cron.php
Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

26

Sonic пишет:

ОК, давайте список установленных пакетов причастных к php
dpkg --list php* | grep ii


root@debian:~# dpkg --list php* | grep ii
ii  php5-cli                             5.3.6-6~dotdeb.1                  command-line interpreter for the php5 scripting language
ii  php5-common                          5.3.6-6~dotdeb.1                  Common files for packages built from the php5 source
ii  php5-gd                              5.3.6-6~dotdeb.1                  GD module for php5
ii  php5-imagick                         5.3.6-6~dotdeb.1                  imagick module for php5
ii  php5-mcrypt                          5.3.6-6~dotdeb.1                  MCrypt module for php5
ii  php5-memcache                        5.3.6-6~dotdeb.1                  memcache module for php5
ii  php5-mysql                           5.3.6-6~dotdeb.1                  MySQL module for php5
ii  php5-suhosin                         5.3.6-6~dotdeb.1                  suhosin module for php5
ii  php5-xcache                          5.3.6-6~dotdeb.1                  xcache module for php5
ii  php5-xdebug                          5.3.6-6~dotdeb.1                  xdebug module for php5
ii  php52                                5.2.17.dfsg.1-1                   server-side, HTML-embedded scripting language (metapackage)
ii  php52-common                         5.2.17.dfsg.1-1                   Common files for packages built from the php52 source
ii  php52-gd                             5.2.17.dfsg.1-1                   GD module for php52
ii  php52-ldap                           5.2.17.dfsg.1-1                   LDAP module for php52
ii  php52-mysql                          5.2.17.dfsg.1-1                   MySQL module for php52
ii  php52-pspell                         5.2.17.dfsg.1-1                   pspell module for php52
ii  php52-suhosin                        0.9.32.1-1                        advanced protection module for php52
ii  php52-tidy                           5.2.17.dfsg.1-1                   tidy module for php52
ii  php52-xmlrpc                         5.2.17.dfsg.1-1                   XML-RPC module for php52
ii  php52-xsl                            5.2.17.dfsg.1-1                   XSL module for php52
ii  phpmyadmin                           4:3.3.7-5                         MySQL web administration tool

27

drBatty пишет:

вот и не работает.

Про этот ключ, я знаю, но дело в том, что проблема с Cron

На мясокомбинате я работаю свиньёй.

28

karen_kiril, все верно у вас установлено две версии php, видимо из-за разных поставщиков. Но не суть, можете потом удалить старую версию, если не используете.
Дайте вывод dpkg -L php5-cli

На мясокомбинате я работаю свиньёй.

29

Sonic пишет:

Дайте вывод dpkg -L php5-cli

root@debian:~# dpkg -L php5-cli
/.
/etc
/etc/php5
/etc/php5/cli
/usr
/usr/bin
/usr/bin/php5
/usr/lib
/usr/lib/php5
/usr/lib/php5/20090626+lfs
/usr/share
/usr/share/doc
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/php5.1.gz
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/php5-cli
/etc/php5/cli/conf.d
/usr/share/doc/php5-cli
root@debian:~#

30

Вот смотрите, эта команда выводит список файлов, ну тут видимо директорий которые она устанавливает.
И здесь есть такие /etc/php5, /etc/php5/cli в которых и должен находится php.ini для версии 5.3.
Видимо вы вносили какие-то изменения и их удалили. Но, я не понимаю, как работает сайт, если запущен php версии 5.3 и вроде как без конфига.

В общем я могу еще посоветовать такой, с моей стороны ламерский вариант из-за плохого знания тонкостей linux.
Создать в каталоге сайта файл php с кодом

<?php
phpinfo();
?>

Запустить это из браузера, посмотреть там версию, убедится, что это php 5.3, найти строки про php.ini что там написано и посмотреть информацию про расширение mysql.

На мясокомбинате я работаю свиньёй.