Сб. Дек 21st, 2024

Решил у себя описать решение одной веселой ошибки,с которой столкнулся после обновления РНР движка до версии 5.4.4. Суть ошибки заключалась в том,что при вызове интерпретатора РНР из-под шелла, скрипт выдавал такую вот ошибку:

Call to undefined function mysql_connect() in имя_файла.php

При том что сайты остальный работали.Тобишь через Apache подключения к БД работали отлично.Вызвав из консоли php -v я не увидел в списке модулей РНР модуля mysql. Странно,ведь раньше все работало. Сразу же проверил настройки в /etc/php5/conf.d/mysql.ini — тут все было норм. Запись верна,сама библиотека присутстовала.Но не запускалась. Поискав по интернету,я для себя обнаружил что такой ошибки много у кого,а вот решений мало.Потому и решил тут описать — вдруг кому еще поможет) Пиво мне)) Вызвав php -i | grep php.ini я увидел что основной файл настроек почему то

Configuration File (php.ini) Path => /usr/local/lib

В этой папке никакого php.ini небыло) Не страшно,создал его,в нем написал строчку запуска extension=mysql.so. После этого РНР ругнулся что не может загрузить библиотеку по пути: ‘/usr/local/lib/php/extensions/no-debug-non-zts-20100525/mysql.so’

Интересный путь. Там папок начиная от extensions небыло. Ниче,создаем все папки как оно просит и кидаем туда mysql.so взяв его из системы /usr/lib/php5/20090626/mysql.so. Перезапускаем и…И ничего. РНР ругается что файл имеет непонятную функцию и т.д. Короче библиотека не подходит.Старовата для молодого 5.4.4. )) После долгих мучений гугла я всетаки нашел нужные библиотеки:

1) http://packages.debian.org/sid/libmysqlclient18

2) http://packages.debian.org/sid/php5-mysql

заходим в пакет через Midnight Commander и распаковываем из php5-mysql.deb по пути /CONTENTS/usr/lib/php5/20100525/mysql.so в папку /usr/local/lib/php/extensions/no-debug-non-zts-20100525/. Затем из libmysqlclient18.deb из /CONTENT/usr/lib/x86_64_linux-gnu/ все файлы в папку /usr/lib и перезапускаем Апач. Ну вообще можно не перезапускать) Вызываем php -m и если вначале РНР ни на что не ругается,а просто выводит список модулей то ищем среди них заветный mysql )

от RUSUA

2 комментария к «Call to undefined function mysql_connect() in после обновления до PHP 5.4.4»
  1. Ту же беду вылечил намного проще, у меня lampp вертится на linux ubuntu так на нем же пых соответственно 5.4.7 . Я вылечил так:
    Вместо : /usr/bin/php /home/ahlamon/htdoc/www/….
    Вписал: /opt/lampp/bin/php /home/ahlamon/htdoc/www/….

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Анти-спам: выполните заданиеWordPress CAPTCHA