Ошибка в PHP5 .. Невозможно загрузить динамическую библиотеку

<code>[email protected]:/etc/php5/apache2# php -a
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/curl.so' - /usr/lib/php5/20090626+lfs/curl.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mcrypt.so' - /usr/lib/php5/20090626+lfs/mcrypt.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysql.so' - /usr/lib/php5/20090626+lfs/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysqli.so' - /usr/lib/php5/20090626+lfs/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pdo.so' - /usr/lib/php5/20090626+lfs/pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pdo_mysql.so' - /usr/lib/php5/20090626+lfs/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
Interactive shell
</code>

Ответы на вопрос(13)

Open php.iniPath: etc / php5 / cli / php.ini Удалите или прокомментируйте: extension = ssh2.so, затем сохраните его.

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

Во-первых, выясните, какие файлы пытаются загрузить вышеуказанные расширения:

$ grep -Hrv ";" /etc/php5 | grep -E "extension(\s+)?="

Пример вывода для Ubuntu:

/etc/php5/mods-available/gd.ini:extension=gd.so
/etc/php5/mods-available/pdo_sqlite.ini:extension=pdo_sqlite.so
/etc/php5/mods-available/pdo.ini:extension=pdo.so
/etc/php5/mods-available/pdo_mysql.ini:extension=pdo_mysql.so
/etc/php5/mods-available/mysqli.ini:extension=mysqli.so
/etc/php5/mods-available/mysql.ini:extension=mysql.so
/etc/php5/mods-available/curl.ini:extension=curl.so
/etc/php5/mods-available/sqlite3.ini:extension=sqlite3.so
/etc/php5/conf.d/mcrypt.ini:extension=mcrypt.so
/etc/php5/conf.d/imagick.ini:extension=imagick.so
/etc/php5/apache2/php.ini:extension=http.so

Теперь просто найдите файлы, которые загружают расширения, которые вызывают ошибки, и закомментируйте эти строки с помощью;. По какой-то причине это случилось со мной при установке Ubuntu по умолчанию, так что, надеюсь, это поможет кому-то еще.

 nulll10 июл. 2014 г., 10:46
Мне нравятся такие ответы, потому что они помогают тебе понять, что происходит, АКА = ноу-хау
 Mike12 авг. 2013 г., 21:52
@ GeppettvsD'Constanzo При обновлении иногда вам будет предложено перезаписать файл конфигурации. Если вы перезаписаете это, оно МОЖЕТ перезаписать эти, но я не слишком уверен. Просто выберите номер.
 d000118 сент. 2013 г., 22:28
Согласен, если вам не нужно расширение, зачем его устанавливать?
 DanFromGermany24 июл. 2013 г., 12:15
Я столкнулся с такими же ошибками после обновления дистрибутива с Debian 6.x до 7.1. Я не зналsuhosin а такжеidnодули @ были удалены в этих новых пакетах .. так большое спасибо за хорошийgrep линия
 BlocksByLukas05 окт. 2013 г., 09:46
gr8 ответь. Спасиб

sudo apt-get install php5.6-curl

 Ravistm23 окт. 2017 г., 11:44
i установлен для 7. * php с командой: sudo apt-get install php-curl

раскомментировав его,

  extension_dir = "ext"
  extension=phpchartdir550.dll

и копирование phpchartdir550 dll в extension_dir (/ usr / lib / php5 / 20121212), привело к той же ошибке.

  PHP Warning:  PHP Startup: Unable to load dynamic library 'ext/phpchartdir550.dll' - ext/phpchartdir550.dll: cannot open shared object file: No such file or directory in Unknown on line 0
  PHP Warning:  PHP Startup: Unable to load dynamic library 'ext/pdo.so' - ext/pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0
  PHP Warning:  PHP Startup: Unable to load dynamic library 'ext/gd.so' - ext/gd.so: cannot open shared object file: No such file or directory in Unknown on line 0

Как @Майк указал, нет необходимости устанавливать все компоненты, когда они на самом деле не требуются в приложении.

Самый простой способ - указать полный путь к расширениям, которые будут загружены после копирования библиотек в правильное местоположение.

Скопируйте phpchartdir550.dll в / usr / lib / php5 / 20121212, который является extension_dir в моем Ubuntu 14.04 (это можно увидеть с помощью phpinfo ()), а затем укажите полный путь к библиотеке в php.ini,

;   extension=/path/to/extension/msql.so
extension=/usr/lib/php5/20121212/phpchartdir550.dll

restart apache: sudo service apache2 restart

даже если другие .so находятся в том же каталоге, выборочно могут быть загружены только необходимые.

gmp.so файл, похоже, был удален из моей системы. Вот что исправило это для меня:

sudo apt-get install --reinstall php5-gmp

Моя проблема была решена с помощью следующей команды

sudo apt-get install php5-mcrypt

Я име

PHP 5.3.10-1ubuntu3.4 с Suhosin-Patch (cli)Ubuntu Desktop 12.04 MySQL 5.5
 Ain Tohvri05 янв. 2015 г., 10:13
Для меня это не сработало.
sudo apt-get install php5-mcrypt
sudo apt-get install php5-mysql

Надеюсь, это поможе

 Fahim28 февр. 2017 г., 21:01
Спасибо, это сработало для меня
 pgee7018 нояб. 2013 г., 10:02
Ваш ответ заставил мой сайт снова работать! Большое спасибо, я действительно ценю это. Я потратил часы на это. Я следовал некоторым инструкциям по обновлению mysql, и они, должно быть, пропустили эту часть.

обновленный PHP к более новой версии, а старые файлы .ini по-прежнему указывают на старое местоположение.

Решени: узнать, где сейчас находятся модули

ls -l /usr/lib/php5

Должен быть каталог, похожий на старый20090626. В моем случае это сейчас20131226

Файлы .ini, сообщающие об ошибке, расположены по адресу/etc/php5/cli/conf.d/

Просто отредактируйте те файлы .ini, модуль которых выдает ошибку. Например, в случае ошибки для модуля mcrypt:

sudo vi /etc/php5/cli/conf.d/20-mcrypt.ini

Измени строку:

extension=/usr/lib/php5/20090626/mcrypt.so

чтобы отразить новый путь для .so файла. В моем случае правильный путь должен быть:

extension=/usr/lib/php5/20131226/mcrypt.so

Это оно! Ошибка ушла. Конечно, вам придется делать это с каждым модулем, сообщающим об ошибке.

У меня была та же проблема, и я сделал следующее:

Удалить php с параметром очистки:

sudo apt-get --purge remove php5-common

И снова установите:

sudo apt-get install php5 php5-mysql

Я нашел это решение от Blog.tordeu.com, и эт

sudo aptitude purge php5-suhosin

Не уверен, но похоже, чтоsuhosin больше не нужен, он работал для моей, моей версии PHP:

PHP 5.4.34-1+deb.sury.org~lucid+1 (cli) (built: Oct 17 2014 15:26:51)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/mcrypt.ini' - /usr/lib/php5/20121212/mcrypt.ini: cannot open shared object file: No such file or directory in Unknown on line 0

Если вы внимательно посмотрите на ошибку, php ищет mcrypt.ini, а не mcrypt.so в этом месте. Я просто копирую mcrypt.so в mcrypt.ini и все, предупреждение исчезло, и расширение теперь правильно установлено. Это может выглядеть немного грязно, но это сработало!

$ phpunit --version
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20131226/profiler.so' - /usr/lib/php5/20131226/profiler.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHPUnit 5.7.17 by Sebastian Bergmann and contributors.

В отличие от вышеизложенного, установка программного обеспечения не решила мою проблему, потому что она у меня уже была.

$ sudo apt-get install php5-uprofiler
Reading package lists... Done
Building dependency tree       
Reading state information... Done
php5-uprofiler is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 52 not upgraded.

Я нашел свое решение через:Debian Журналы отчетов об ошибках

$ sudo vim /etc/php5/mods-available/uprofiler.ini

Я редактировал INI-файл, меняя Расширение = profiler.so в Расширение = uprofiler.so .... результат, к счастью:

$ phpunit --version
PHPUnit 5.7.17 by Sebastian Bergmann and contributors.


i.e. no more warning.

i. Эта ошибка происходит, когда вы удаляете некоторые php-пакеты не так чисто.

Ваш ответ на вопрос