Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle 11g PHP oci_connect gagal OCIEnvNlsCreate()

Punya OCIEnvNlsCreate() gagal? Selamat datang di neraka...

Saya tahu bahwa utasnya sudah tua, tetapi masalahnya masih ada. Dan biasanya jawaban untuk masalah ini dialihkan ke situs pihak ketiga, biasanya 404 .

Mari kita mulai dengan masalahnya. Kesalahan itu sendiri cukup umum. Dokumentasinya merangkum "lib crash ... tidak tahu mengapa". Ada berbagai macam solusi termasuk, namun tidak terbatas pada konfigurasi, instal ulang, dan berdoa untuk "masukkan nama dewa secara acak di sini".

Berikut adalah daftar singkat dari solusi yang paling umum:

1. Letakkan variabel di file .php Anda.

    putenv("LD_LIBRARY_PATH=$newld");

where $newld is the link to your library.

2. Hapus variabel LD_LIBRARY_PATH , jika ada (ya, seperti yang ditunjukkan di 1.), dari file php Anda dan letakkan di Apache2.conf atau httpd.conf atau /etc/environment atau file apa pun yang dimiliki distribusi/versi Anda untuk variabel lingkungan. Panduan sederhana dapat ditemukan di sini atau di mana-mana di internet. Mengapa?

seperti yang dinyatakan dalam dokumen instalasi. Juga restart Apache sesudahnya. Ini berbasis distribusi/versi, tetapi kemungkinan besar perintahnya adalah service httpd restart .

  1. Instal ulang oci8 . Sebanyak yang dibutuhkan. Jangan paksa. Memaksa hanya memperburuknya. Juga, coba kompilasi (alias unduh paket gunakan ./configure -'all the fancy commands you'll need to use' lalu make install ).

  2. Pastikan Anda mendapatkan LD_LIBRARY_PATH yang benar . Hal yang lucu untuk dikatakan, bukan? Anda mungkin tidak menyadari bahwa Oracle membuat folder client/lib/ di N lokasi berbeda yang berisi kurang lebih file yang sama, dan satu-satunya perbedaan, di antara keduanya, adalah memilih semua kecuali salah satu folder tersebut akan menghasilkan kesalahan yang disebutkan . Pemeriksaan kewarasan?

  3. Instal ulang php/apache . Kemungkinan Anda memiliki instalasi lama yang menyebabkan masalah. Jadi gunakan apt-get purge php* atau yum remove php* atau apa pun yang melakukan trik yang sama untuk distribusi Anda, akan menjadi awal yang baik.

EDIT Setelah pemutakhiran PHP, masalah muncul kembali, kali ini dengan solusi yang berbeda.

  1. EDIT SYSCONFIG Edit file /etc/sysconfig/httpd.conf Tambahkan 2 baris di akhir:

    ekspor LD_LIBRARY_PATH=/path/to.libexport ORACLE_HOME=/path/to/home

  2. BERHENTI DAN BACA MANUAL dapat ditemukan di sini .

Jika tidak ada yang membantu, silakan jelajahi dinding kesedihan , untuk solusi...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle PL/SQL:UTL_FILE.FCOPY Contoh

  2. Isi nilai ke dalam Daftar Drop-down berdasarkan pilihan Drop-down lain menggunakan JSTL

  3. Buat rentang menit (15) di pilih

  4. Oracle/SQL - Menggabungkan jumlah dari tabel yang tidak terkait 'tidak terkait'

  5. masalah dengan timer dalam bentuk oracle