root@ip-10-131-9-200:/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
Несмотря на то, что некоторые другие ответы говорят об этом, установка более ненужного программного обеспечения, как правило, не является лучшим решением. Вместо этого вы должны исправить основную проблему. Причина появления этих сообщений заключается в том, что вы пытаетесь загрузить эти расширения, но они не установлены. Поэтому простое решение – просто сказать 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 по умолчанию, поэтому, надеюсь, это помогает кому-то другому.
sudo apt-get install php5-mcrypt sudo apt-get install php5-mysql
… и т.д. разрешили это для меня 🙂
Надеюсь, поможет
Посмотрите /etc/php5/cli/conf.d/ и удалите соответствующие * .ini-файлы. Эта ошибка возникает, когда вы удаляете некоторые пакеты php не так чисто.
Похоже, вы обновили PHP до более новой версии, а старые .ini-файлы все еще указывают на старое местоположение.
Решение : узнать, где находятся модули, расположенные сейчас
ls -l /usr/lib/php5
Должен быть каталог, похожий на старый 20090626
. В моем случае это сейчас 20131226
Файлы .ini, /etc/php5/cli/conf.d/
вам ошибку, находятся по адресу /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
Это оно! Ошибка исчезла. Ofc вам придется делать это с каждым модулем, давая вам ошибку.
Если вы положите; символ, это действие неактивно расширяет.
У меня была такая же проблема, и я сделал следующее:
Удалите 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
Если вы используете 5.6 php,
sudo apt-get install php5.6-curl
Моя проблема была решена с помощью следующей команды
sudo apt-get install php5-mcrypt
у меня есть
Как-то файл gmp.so
похоже, был удален из моей системы. Это то, что исправило это для меня:
sudo apt-get install --reinstall php5-gmp
Попробуй это:
Ну для Ubuntu 14.04 я получал эту ошибку только для mcrypt:
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, и все, предупреждение исчезло, и расширение теперь правильно установлено. Это может выглядеть немного грязно, но это сработало!
Я включил extension_dir в php.ini, раскомментируя,
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
Как отметил @Mike, нет необходимости устанавливать все вещи, когда они фактически не требуются в приложении.
Более простой способ – предоставить полный путь к расширениям, которые будут загружены после копирования библиотек в нужное место.
Скопируйте phpchartdir550.dll в / usr / lib / php5 / 20121212, который является расширением_dir в моем Ubuntu 14.04 (это можно увидеть с помощью phpinfo ()), а затем предоставить полный путь к библиотеке в php.ini,
; extension=/path/to/extension/msql.so extension=/usr/lib/php5/20121212/phpchartdir550.dll
перезапустить apache: sudo service apache2 restart
даже если другие .so присутствуют в одном каталоге, только выборочные загрузки могут быть выборочно загружены.
У меня была аналогичная проблема, которая привела меня сюда:
$ 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 на extension = uprofiler.so …. результат, к счастью:
$ phpunit --version PHPUnit 5.7.17 by Sebastian Bergmann and contributors.
т.е. больше никаких предупреждений.