mysqli — PHP Startup Не удается загрузить динамическую библиотеку /usr/lib/php/20151012/php_mysqli.dll

У меня есть экземпляр Ubuntu 14.04 EC2. Я установил PHP 7 на нем. когда я выполняю любую команду php, такую ​​как php —version или любую другую. Я получаю следующую ошибку

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_mysqli.dll' - /usr/lib/php/20151012/php_mysqli.dll: cannot open shared object file: No such file or directory in Unknown on line 0

Я пытался следовать

  1. включить php_mysqli.dll в php.ini
  2. включить mysqli.so
  3. включить php_mysqli.so
  4. sudo apt-get установить php-mysql

но у меня ничего не получалось.

Любое предложение, как я могу решить это?

4

Решение

Если вы работаете в Linux, у вас должны быть не DLL-файлы, а SO-файлы.
Итак, сначала вы должны удалить / отключить php_mysqli.dll, который вы добавили в php.ini.

Чтобы использовать mysqli, вы должны:

  • установить пакет для Ubuntu: apt-get install php-mysql
  • проверьте, включен ли он уже (с помощью phpinfo() например)
  • если не включен, включите модуль — проверьте /etc/php/mods-available/ папка, если есть mysqli.ini, содержащий extension=mysqli.soзатем проверьте CLI / FPM / Apache / other на наличие символической ссылки, указывающей на этот файл (например, для CLI в /etc/php/cli/conf.d/ : 20-mysqli.ini -> ../../mods-available/mysqli.ini)
  • перезапустите php / apache / nginx в зависимости от того, что вы используете
10

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

Я недавно столкнулся с этой проблемой на Ubuntu16.04, я, наконец, решить ее, добавив точку с запятой в каждой строке, как extension=php_*.dllЯ думаю, это потому, что LAMP на Ubuntu достаточно умный — он автоматически открывает все расширения для нас. А на окнах мы должны включить расширения вручную, удалив точку с запятой в каждой строке, как ;extension=php_*.dll в php.ini,

1

В моем случае это произошло потому, что я раскомментировал extension=php_mysqli.dll строка в файле php.ini для запуска какого-либо другого пакета. После поисков я обнаружил, что вам не следует ничего раскомментировать прямо из php.ini, вместо этого вы должны установить требуемое расширение php, и оно сделает все остальное.

1

Просто закомментируйте все строки с расширениями .dll, потому что вы находитесь в Ubuntu. Ubuntu поддерживает .so файлы.

0

В php.ini под Dynamic Extensions линия extension=php_mysqli.dll был включен.

Я отключил его, добавив точку с запятой в начале строки ;extension=php_mysqli.dll,

Сохранено и завершено php.ini, Restarted Apache,

Это решило ошибку для меня.

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