У меня есть экземпляр 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
Я пытался следовать
но у меня ничего не получалось.
Любое предложение, как я могу решить это?
Если вы работаете в Linux, у вас должны быть не DLL-файлы, а SO-файлы.
Итак, сначала вы должны удалить / отключить php_mysqli.dll, который вы добавили в php.ini.
Чтобы использовать mysqli, вы должны:
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
)Я недавно столкнулся с этой проблемой на Ubuntu16.04, я, наконец, решить ее, добавив точку с запятой в каждой строке, как extension=php_*.dll
Я думаю, это потому, что LAMP на Ubuntu достаточно умный — он автоматически открывает все расширения для нас. А на окнах мы должны включить расширения вручную, удалив точку с запятой в каждой строке, как ;extension=php_*.dll
в php.ini
,
В моем случае это произошло потому, что я раскомментировал extension=php_mysqli.dll
строка в файле php.ini для запуска какого-либо другого пакета. После поисков я обнаружил, что вам не следует ничего раскомментировать прямо из php.ini, вместо этого вы должны установить требуемое расширение php, и оно сделает все остальное.
Просто закомментируйте все строки с расширениями .dll, потому что вы находитесь в Ubuntu. Ubuntu поддерживает .so файлы.
В php.ini
под Dynamic Extensions
линия extension=php_mysqli.dll
был включен.
Я отключил его, добавив точку с запятой в начале строки ;extension=php_mysqli.dll
,
Сохранено и завершено php.ini
, Restarted Apache
,
Это решило ошибку для меня.