Saya menjalankan skrip PHP dan mendapatkan kesalahan ini:
Peringatan PHP: Startup PHP: Tidak dapat memuat pustaka dinamis '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/ixed.5.2.lin' - / usr / local / lib / php / extensions /no-debug-non-zts-20090626/ixed.5.2.lin: tidak dapat membuka file objek bersama: Tidak ada file atau direktori seperti itu di Tidak Diketahui pada baris 0
Apa artinya?
php
dynamic-library
Popolo
sumber
sumber
Jika Anda menggunakan Linux, Anda dapat menemukan semua file konfigurasi yang dimuat dengan mengetik ini di shell:
PEMBARUAN: Seperti yang disebutkan dalam komentar, ini bisa lebih akurat:
sumber
php -i | grep ini
harus berfungsi dengan baik juga (tidak perlu mencetak phpinfo ketika Anda memiliki argumen perintah untuk itu)phpinfo()
tidak mencantumkan file ini yang bermasalah.php -i | grep ini
seperti yang disarankan oleh YorickH bekerja untuk saya. Ini akan mencantumkan pustaka yang dimuat untuk CLI dan ternyata file ini yang menyebabkan peringatan berada di bawah direktori CLI dalam kasus saya.php --ini
dengan daftar semua file iniJika Anda hanya ingin menghilangkan kesalahan, dan Anda tidak memerlukan ekstensi, maka komentar baris yang keluar
php.ini
. Tetapi jika Anda benar-benar ingin memperbaiki masalah ini, berikut adalah beberapa info tambahan.Ada berbagai penyebab untuk hal ini berdasarkan modul pastinya, tetapi ada juga beberapa pedoman umum.
phpinfo()
dan cari diextension_dir
bawahCore
bagian. Di sinilah modul Anda harus ditempatkan.Instalasi di * nix (PEAR)
Instalasi ekstensi di Windows
sumber
perl install <module>
saya mendapatCan't open perl script "install": File or Directory not found
docker-php-ext-install <package>
phpStom dengan XAMPP
TL; DR Kecuali dari memverifikasi bahwa file tersebut ada, Anda mungkin perlu menambahkan huruf drive ke beberapa catatan di file php.ini Anda
Saya tiba-tiba mulai mengalami masalah saat menggunakan phpStorm 7 untuk men-debug php dengan xampp dan xdebug. Saat mencoba mengatur intellij interperter menjadi xampps php saya mendapat banyak peringatan seperti yang ada di pertanyaan, misalnya:
Untuk beberapa alasan saya harus menambahkan huruf drive saya ke catatan extension_dir dan browscap di file php.ini:
untuk
sumber
php -r "echo php_ini_loaded_file();"
Akan ditampilkan dalam file CLI saat ini dimuat ini, cari di sana untuk ekstensi Anda, jalur ke sana salah.
sumber
Memuat .dll di Linux
Saya menemukan pesan peringatan ini ketika saya mencoba menginstal ekstensi-php melalui file php.ini ;
sampai saya mengetahui bahwa Anda tidak dapat memuat ekstensi .dll di Linux,
tetapi Anda harus komentar ekstensi yang ingin Anda impor
;extension= ... .dll
dan menginstalnya dengan benar melaluisudo apt-get install php-...
catatan :
...
adalah nama ekstensi yang ingin Anda aktifkan.sumber
sudo apt install php-pgsql
dan php-version-specificsudo apt install php7.1-pgsql
(ubah 7.1 ke versi php Anda)Perhatikan bahwa Anda juga bisa mendapatkan kesalahan ini jika pustaka PHP Anda tidak memiliki izin pembukaan direktori "lainnya". Dalam kasus khusus saya, saya memperhatikan ini saat menggunakan
php -l
untuk memeriksa sintaks skrip di editor teks saya. Ini berarti bahwa karena akun saya disebut "volomike", akun tersebut tidak memiliki izin untuk menjalankan pustaka yangphp
diandalkan oleh perintah tersebut.Misalnya, di Ubuntu 14.04, saya menginstal PHP5 secara otomatis ke jalur
/usr/lib/php5/20121212+lfs
. Namun, karena saya bekerja di C ++ dalam membangun beberapa objek bersama, saya mengotak-atik izin direktori dan mengacaukan segalanya sehingga akun non-root tidak memiliki izin eksekusi direktori (direktori terbuka) untuk dilihat/usr/lib/php5/20121212+lfs
. Jadi, saya mengetik perintah berikut untuk memperbaiki masalah itu:sudo chmod o+x /usr/lib/php5/20121212+lfs
.Sekarang ketika saya melakukannya
php -l example.php
sebagai pengguna non-root, itu tidak pernah memberi saya masalah "Tidak dapat memuat perpustakaan dinamis" ini lagi.sumber
Saya mengalami masalah yang sama pada XAMPP untuk Windows ketika saya mencoba menginstal komposer. Saya lakukan
php -v
dan kesalahan melempar php:Butuh beberapa saat sampai saya menyadari bahwa saya perlu mengatur XAMPP saya. Jadi saya menjalankan
setup_xampp.bat
dan php kembali bekerja seperti pesona.sumber
Saya mengalami masalah yang sama pada XAMPP untuk Windows10 ketika saya mencoba menginstal komposer.
Kemudian ikuti langkah-langkah ini
sumber
Saya mengalami kesalahan ini pada sejumlah modul ketika saya menjalankan versi PHP yang berbeda secara berdampingan di server saya. Untuk mengatasinya, saya perlu menginstal paket yang tidak dapat ditemukan untuk versi PHP spesifik itu. Jadi, misalnya, jika saya melihat: -
Saya akan menginstal perpustakaan untuk versi PHP secara khusus: -
Dan kemudian restart Apache. Memperbaiki itu untuk saya. Anda dapat memeriksa versi Anda seperti ini: -
sumber
Setelah
Windows 10 XAMPP
sekarang saya installLAMPP (XAMPP)
di Ubuntu.Windows XAMPP
memiliki jauh lebih sedikit untuk dikonfigurasi dibandingkan dengan MAC (iOS) tetapi sekarang dengan Linux Ubuntu saya memiliki lebih sedikit karena ada lebih banyak yang terjadi di Linux (hal yang baik).Saya bingung dan mengaktifkan
mysqli.dll
(dan mysql.dll: hapus "#" di/etc/php/7.2/cli/php.ini
Saya mulai mendapatkan
PHP Warning: PHP Startup: Unable to load dynamic library
pesan terkaitdll
. Saya berkomentarmysql(and i).dll
di file yang sama tetapi pesannya tidak hilang sampai saya berkomentar "" di/opt/lampp/etc/php.ini
.Tampak seperti XAMPP membaca
php.ini
file dari/etc/php/7.2/cli
dan membuat modifikasiphp.ini
dari/opt/lampp/etc
. (; extension = php_pdo_mysql.dll setelah ";" memulai ulang Apache dan tidak ada lagi pesan apa pun.sumber
Dalam kasus saya, saya mendapat kesalahan ini karena saya mengunduh versi thread-safe dari dll (diinfiks dengan
-ts-
), tetapi instalasi php php saya adalah non-thread-safe (diinfiks dengan-nts-
). Mengunduh versi yang benar dari dll, sama persis dengan versi instalasi php saya memperbaiki masalah.sumber
thread-safety
diaktifkan / dinonaktifkan. Memiliki kesalahan yang sama secara terbalik, mengunduh nts ketika dikonfigurasi untuk ts.Saya mengalami kesalahan serupa. Kesalahan yang saya buat adalah menggunakan nama "controller" sebagai "Pages" bukan "pages" di url saya.
sumber
Di Windows, ini bisa menjadi jalur yang salah di "Variabel lingkungan sistem". "Path" ke direktori php.exe haruslah yang bagus.
sumber
Cari ekstensi yang tepat untuk versi PHP Anda di sini
sumber
Apa yang saya lakukan adalah;
1 - Saya pertama kali mengetahui versi PHP yang saya gunakan melalui fungsi phpinfo ()
2 - Dari sana Anda akan menemukan lokasi file konfigurasi (php.ini) Anda
3 - Buka file itu
4 - Komentari baris yang mirip dengan gambar di bawah
sumber
'C: /PHP/5.2.13/ext \ php_mcrypt1.dll'
Saya akan mengatakan ada beberapa kesalahan ketik pada php.ini Anda (ekstra 1). Mungkin Anda memuat php.ini yang berbeda dari yang Anda harapkan (lihat keluaran dari php.ini untuk memastikan).
Selain itu pastikan bahwa php_mcrypt.dll dan PHP:
Ditautkan ke pustaka runtime VC yang sama (biasanya pnidui.dll untuk VC6 atau pnidui90.dll untuk VC9) - gunakan misalnya, alat bantu jalan ketergantungan untuk ini Apakah kedua build debug atau kedua build rilis Keduanya memiliki ZTS diaktifkan atau ZTS dinonaktifkan Untuk pustaka yang bergantung pada perpustakaan lebih lanjut (DLL), pastikan mereka tersedia (misalnya di direktori yang sama dengan ekstensi) PHP harus memberi Anda kesalahan yang berarti jika salah satu dari tiga kondisi pertama di atas tidak terpenuhi, tetapi saya tetap menulisnya karena saya tidak yakin untuk PHP 5.2.
sumber
Saya memiliki masalah serupa dan di bawah ini adalah beberapa dari semua peringatan / kesalahan.
Jika Anda memeriksa melalui peringatan, Anda akan melihat bahwa itu mencari ekstensi php di sana
C:\php\ext\
, saya mengunduh php keC:\
direktori dan itu menyelesaikan masalah.sumber