У меня 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, сайт снова будет работать.
Что может происходить здесь?
Может быть, они не установили расширение 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
или эквиваленты.
Как правило, наиболее распространенной причиной этой проблемы (в вашем сценарии) является ситуация, когда пакет mysql [i] не совместим с установленной версией PHP. Обычно хозяин заботится о проблеме (я бы их об этом поругал).
Вы можете проверить установку mysqli в среде Centos здесь: http://php.net/manual/en/mysqli.installation.php