После изменения версии PHP, Joomla не может подключиться к MySQL

У меня Joomla 3.3.3 на сервере, где установлен PHP 5.3.29.

Я попросил команду хостинга (Hostgator) установить PHP 5.5.28 параллельно.

Когда мне сказали, что задача выполнена, я добавил эти строки в начало файла .htaccess:

# PHP 5.5
AddHandler application/x-httpd-php55 .php
<IfModule mod_suphp.c>
suPHP_ConfigPath /opt/php55/lib
</IfModule>

После этого я попытался загрузить страницу, и эта ошибка была показана в обоих интерфейсах и на страницах администрирования:

Error displaying the error page: Application Instantiation Error: Could not connect to MySQL.

Если я удалю добавленные строки в .htaccess, сайт снова будет работать.

Что может происходить здесь?

0

Решение

Может быть, они не установили расширение MySQL, вы можете сравнить версии PHP, используя простой скрипт phpinfo:

<?php
phpinfo();

Запустите это в своем браузере, используя как PHP 5.3, так и PHP 5.5, и прокрутите вниз раздел «mysql / mysqli / mysqlnd», который покажет вам, был ли он установлен с расширением mysql или нет, если он не был связан с вашим хостом и попросите их добавить это.

Если вы работаете на VPS или подобном, вы также можете проверить apt/dnf/yum чтобы проверить различия пакетов:

  • apt list --installed | grep php
  • dnf list --installed | grep php
  • yum list installed | grep php

Если вы видите, что у вас есть много пакетов с префиксом php53- и только несколько с php55- вы могли бы попросить их установить отсутствующие пакеты, например (с использованием brew на OSX), если я перечислю с brew, будет явная разница между пакетами, для которых я установил php56 а также php71:

user@comp ~ $ brew list | grep php
php56
php56-mcrypt
php56-memcache
php56-mongo
php56-xdebug
php71
php71-xdebug

В этой ситуации я бы попросил хозяина установить php71-mcrypt, php71-memcache а также php71-mongo или эквиваленты.

1

Другие решения

Как правило, наиболее распространенной причиной этой проблемы (в вашем сценарии) является ситуация, когда пакет mysql [i] не совместим с установленной версией PHP. Обычно хозяин заботится о проблеме (я бы их об этом поругал).

Вы можете проверить установку mysqli в среде Centos здесь: http://php.net/manual/en/mysqli.installation.php

0

По вопросам рекламы [email protected]