PHP / Apache: PHP Неустранимая ошибка: вызов неопределенной функции mysql_connect ()

У меня есть MySQL (5.5.23 Community Server), Apache (2.2) и PHP (5.3.13), работающий на компьютере Fedora 15 (64-разрядный). Каждый работает без проблем самостоятельно.

Я думал, что PHP настроен / скомпилирован для работы с MySQL, но когда я пытаюсь загрузить любую веб-страницу PHP, которая вызывает вызов MySQL, я получаю вышеупомянутую фатальную ошибку (в журнале ошибок Apache). PHP работает нормально, но через Apache и в командной строке.

Когда я запускаю '/usr/lib64/php/modules/mysql.so'. "Из командной строки, то достаточно уверен, что он показывает все биты и части MySQL, но когда я загружаю страницу, отображающую sudo apt - get install php5 - mysql то не упомянуты модули MySQL.

Я также попробовал отказаться от комментирования «extension = sudo service apache2 restart » в phpmysql_connect (), но затем PHP жалуется на «PHP Startup: не удается загрузить динамическую библиотеку .ini(даже если модуль там находится). Но тогда я не совсем уверен в том, требуется ли эта строка для некомментирования или нет. [Коррекция: указанная ошибка была фактически вызвана опечаткой, но запуск из командной строки показывает, что модуль уже загружен в любом случае - есть предупреждение от PHP это так.]

Я также отключил SELinux; многократно останавливал / перезапускал Apache; yummed MySQL-Devel, если это имеет значение; и, кажется, все другие возможные вещи.

Если я запустил небольшой скриптовый скрипт PHP из командной строки, чтобы получить доступ к базе данных MySQL, тогда он работает без проблем, поэтому PHP знает о MySQL, но когда он работает под Apache, похоже, нет никакой информации о том, что MySQL даже существует.

Я пытался в течение нескольких месяцев пытаться решить эту проблему и, кажется, все пробовал, но ничего не работает.

Я не против переустанавливать PHP, если мне действительно нужно, если кто-то может продемонстрировать правильный способ настройки / компиляции с поддержкой MySQL, чтобы я мог заставить его работать под Apache, хотя в идеале я бы просто предпочел для обеспечения работы существующей установки.

Большое спасибо заранее за любую помощь!

php,mysql,apache,

25

Ответов: 7


63

В случае, если кто-то еще сталкивается с этим, это случай, когда PHP не имеет доступа к клиентским библиотекам mysql. Наличие сервера MySQL в системе не является правильным исправлением. Исправить для ubuntu (и PHP 5):

php -i

После установки клиента веб-сервер необходимо перезапустить. Если вы используете apache, то должно работать следующее:

phpinfo()

16

Имейте в виду, что с PHP 5.5.0 mysql.soфункция устарела, и она полностью удалена в PHP 7

Более подробную информацию можно найти в документации php :

Цитата:

Предупреждение
Это расширение было устарело в PHP 5.5.0, и оно было удалено в PHP 7.0.0. Вместо этого следует использовать расширение MySQLi или PDO_MySQL. См. Также MySQL: выбирая руководство по API и связанные с ним FAQ для получения дополнительной информации. Альтернативы этой функции включают:
* mysqli_connect ()
* PDO :: __ construct ()


2

У меня была такая же проблема, и мне пришлось обратиться к справочнику php, в котором говорилось, что для расширения mysql и mysqli требуется загрузить libmysql.dll. Я искал его под C: windows system32 (windows 7) и не смог найти, поэтому я загрузил его здесь и поместил его в свой C: windows system32. Я перезапустил Apache, и все сработало нормально. Взял мне 3 дня, чтобы понять, надеюсь, что это поможет.


0

PHP-версия Apache-модуля может по какой-то нечеткой причине не собирать файл php.ini в качестве версии CLI, о которой я хотел бы неплохо рассмотреть:

  • Любые различия в .iniфайлах, которые отличаются друг от друга php -iи phpinfo()через веб-страницу *
  • Если нет различий, то для просмотра разрешений mysql.soи .iniфайлов, но я думаю, что Apache анализирует их как rootпользователя

Чтобы быть действительно ясным здесь, не php.iniищите файлы в файловой системе, посмотрите, что PHP говорит, что он смотрит на


0

Как насчет

sudo yum install php-mysql

или же

sudo apt-get install php5-mysql

PHP, MySQL, Apache,
Похожие вопросы