linguaggio - php tutorial




Errore in PHP5. Impossibile caricare la libreria dinamica (9)

Anche se molte altre risposte lo suggeriscono, installare più software non necessario non è generalmente la soluzione migliore. Invece, dovresti risolvere il problema sottostante. La ragione per cui appaiono questi messaggi è perché stai provando a caricare quelle estensioni, ma non sono installate. Quindi la soluzione facile è semplicemente dire a PHP di smettere di provare a caricarli:

Innanzitutto, scopri quali file stanno cercando di caricare le estensioni di cui sopra:

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

Esempio di output per 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

Ora trova solo i file che caricano le estensioni che causano gli errori e commentano quelle righe con un ; . Per qualche ragione mi è successo con l'installazione predefinita di Ubuntu, quindi spero che questo aiuti qualcun altro.

[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

Avevo abilitato extension_dir in php.ini decommentando,

  extension_dir = "ext"
  extension=phpchartdir550.dll

e copiando phpchartdir550 dll su extension_dir (/ usr / lib / php5 / 20121212), si è verificato lo stesso errore.

  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

Come ha sottolineato @Mike, non è necessario installare tutte le cose quando non sono effettivamente necessarie nell'applicazione.

Il modo più semplice è fornire il percorso completo alle estensioni da caricare dopo aver copiato le librerie nella posizione corretta.

Copia phpchartdir550.dll in / usr / lib / php5 / 20121212, che è la dir_estensione nella mia Ubuntu 14.04 (questo può essere visto usando phpinfo ()) e quindi fornire il percorso completo alla libreria in php.ini,

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

riavviare apache: il servizio sudo apache2 restart

anche se altri .so sono presenti nella stessa directory, solo quelli richiesti possono essere caricati in modo selettivo.


Guarda /etc/php5/cli/conf.d/ ed elimina i corrispondenti file * .ini. Questo errore si verifica quando si rimuovono alcuni pacchetti php in modo non proprio pulito.


Ho avuto un problema simile, che mi ha portato qui:

$ 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.

A differenza di quanto sopra, l'installazione del software non ha risolto il mio problema perché l'ho già avuto.

$ 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.

Ho trovato la mia soluzione tramite: registri dei rapporti sui bug di Debian

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

Ho modificato il file ini, modificando l' estensione = profiler.so con estensione = uprofiler.so .... il risultato, felicemente:

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

cioè non più avviso.


Il mio problema è stato risolto dal seguente comando

sudo apt-get install php5-mcrypt

io ho

  • PHP 5.3.10-1ubuntu3.4 con Suhosin-Patch (cli)
  • Ubuntu Desktop 12.04
  • Mysql 5.5

In qualche modo il file gmp.so sembra essere stato cancellato dal mio sistema. Questo è ciò che ha risolto per me:

sudo apt-get install --reinstall php5-gmp


Se metti il; simbolo, questa azione non attiva l'estensione.

Ho avuto lo stesso problema e ho fatto quanto segue:

  1. Disinstallare php con il parametro purge:

    sudo apt-get --purge remove php5-common
    
  2. E installa nuovamente:

    sudo apt-get install php5 php5-mysql
    

Se stai usando 5,6 PHP,

sudo apt-get install php5.6-curl


sudo apt-get install php5-mcrypt
sudo apt-get install php5-mysql

... ecc risolto per me :)

spero che sia d'aiuto





php