Назад | Перейти на главную страницу

Подтвердите, что расширение mysqli не установлено

Недавно я обнаружил, что расширение mysqli не установлено на моем сервере Centos версии 2.6. Подтверждаю, потому что меняю драйвер подключения к БД с mysqli к mysql и теперь работает нормально. Итак, есть ли другой способ / журнал определить эту проблему? потому что apache error_log ничего об этом не говорит.

Это действительно не проблема, но в будущем это может быть более сложным. Зачем? потому что при использовании драйвера mysqli веб-сайт умирает с пустой страницей без ошибок / предупреждений, чтобы помочь мне устранить неполадки. Мне не нравится идея обнаруживать проблемы с магическими искусствами или тестировать строку за строкой. Должен быть какой-то файл журнала, который поможет мне отладить его.

Чтобы предоставить информацию по этой проблеме, я сделал:

 cat /proc/version 
 Linux version 2.6.18-308.el5.028stab099.3 (root@rhel5-build-x64) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46))

Вы можете подтвердить это mysqli установлен или нет, указав установленные модули. SSH в свой Cent OS и введите следующую команду.

php -m | grep mysqli

Если ничего не возвращается, значит у вас нет mysqli.so загружен. Проверьте, установлен ли в вашей системе общий объект.

# Located extension dir
php -i | grep extension_dir
# List mysql.so in the path returned from the previous command
ls -la /usr/lib/php/extensions/no-debug-non-zts-20090626/mysqli.so

Если mysqli.so присутствует и имеет разрешения -rwxr-x-rx, вам необходимо загрузить / включить расширение mysqli в глобальной системе php.ini файл.

# Adjust path to correct php.ini file. 
# Run `php -i | grep "Configuration File"` to locate, if needed
# It might be easier to use vi, or nano, for this
sudo echo "extension=mysqli.so" >> /etc/php5/php.ini
# Restart apache
sudo service httpd restart

Остальное. Если у вас нет mysqli.so присутствует в вашей системе. Вы можете установить rpm, следуя указаниям вашего системного менеджера пакетов и повторяя предыдущий шаг php.ini.

sudo yum install php5-mysqli

Удивительно sudo yum install php5-mysqli это не установило пакет mysqli для меня. Что еще более удивительно, у меня PHP версии 5.5.31, и я предположил, что mysqli установлен по умолчанию. Но я был неправ. Пришлось установить и пересобрать apache из WHM.

Чтобы установить mysqli с помощью EachApache:

  1. Войдите в WHM как пользователь root.
  2. Выполните поиск по запросу "EasyApache" или перейдите в

  3. Программное обеспечение> EasyApache Прокрутите вниз и выберите вариант сборки (ранее сохраненная конфигурация).

  4. Нажмите Пуск «Начать настройку на основе профиля».
  5. Выберите версию Apache и нажмите «Следующий шаг».
  6. Выберите версию PHP и нажмите «Следующий шаг».
  7. Выберите дополнительные параметры в «Кратком списке параметров»
  8. Выберите «Исчерпывающий список опций» и найдите «Улучшенное расширение MySQL».
  9. Нажмите "Сохранить и построить".

Источник

Просто чтобы ответить на этот вопрос всем пользователям Windows (например, мне) и добавить Emcconvilleидеально принятый ответ:

Вы можете подтвердить, установлен ли mysqli, перечислив установленные модули. SSH в свой Cent OS и введите следующую команду.

php -m | findstr /C:"mysqli"

Вы можете использовать следующую команду, чтобы найти, где PHP установлен в вашей системе.

where php 
:: Returns C:\PHP\php.exe on my system
:: This yields to extensions being here: C:\PHP\ext
dir C:\PHP\ext | findstr /C:"mysqli"
:: shows weather "php_mysqli.dll" is installed

Загрузка и включение расширения работает как в Linux - он также находится на указанном выше пути с where php. Блокнот тоже подойдет, но echo "extension=mysqli.so" >> /etc/php5/php.ini тоже работает в командной строке с достаточными разрешениями.

Если его нет, обратитесь к Вот для загрузки / установки, особенно пункт "Загрузка расширения"