Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle 11g PHP oci_connect không thành công OCIEnvNlsCreate ()

Nhận OCIEnvNlsCreate () không thành công? Chào mừng đến với địa ngục ...

Tôi biết rằng chủ đề đã cũ, nhưng vấn đề vẫn còn hiện tại. Và thông thường câu trả lời cho vấn đề này chuyển hướng đến các trang web của bên thứ ba, thường là 404.

Hãy bắt đầu với vấn đề. Bản thân lỗi khá chung chung. Tài liệu của nó tổng hợp thành "lib bị sập ... không hiểu tại sao". Có một loạt các giải pháp bao gồm, nhưng không giới hạn ở việc định cấu hình, cài đặt lại và cầu nguyện để "chèn tên thần ngẫu nhiên vào đây".

Dưới đây là danh sách ngắn các giải pháp phổ biến nhất:

1. Đặt biến vào tệp .php của bạn.

    putenv("LD_LIBRARY_PATH=$newld");

where $newld is the link to your library.

2. Xóa biến LD_LIBRARY_PATH , nếu tồn tại (vâng, theo cách nó được hiển thị trong 1.), từ tệp php của bạn và đặt nó vào apache2.conf hoặc httpd.conf hoặc / etc / environment của bạn hoặc bất kỳ tệp nào mà bản phân phối / phiên bản của bạn có cho các biến môi trường. Có thể tìm thấy hướng dẫn đơn giản tại đây hoặc ở khắp mọi nơi trên internet. Tại sao?

như đã nêu trong tài liệu cài đặt. Cũng khởi động lại apache sau đó. Nó dựa trên phân phối / phiên bản, nhưng có lẽ hầu hết lệnh là service httpd restart .

  1. Cài đặt lại oci8 . Nhiều lần như nó mất. Đừng ép buộc. Cưỡng ép chỉ làm cho nó tồi tệ hơn. Ngoài ra, hãy thử biên dịch nó (hay còn gọi là tải xuống gói bằng cách sử dụng ./configure -'all the fancy commands you'll need to use' và sau đó make install ).

  2. Đảm bảo rằng bạn đã chọn đúng LD_LIBRARY_PATH . Điều buồn cười để nói, phải không? Bạn có thể không nhận thấy rằng oracle đã tạo thư mục client/lib/ N vị trí khác nhau chứa nhiều hơn hoặc ít hơn các tệp giống nhau và sự khác biệt duy nhất giữa chúng là việc chọn tất cả trừ một trong các thư mục đó sẽ dẫn đến lỗi đã đề cập . Kiểm tra tình trạng?

  3. Cài đặt lại php / apache . Có thể bạn có một số cài đặt cũ đang gây ra sự cố. Vì vậy, hãy sử dụng apt-get purge php* hoặc yum remove php* hoặc bất cứ điều gì thực hiện cùng một thủ thuật cho việc phân phối của bạn, sẽ là một khởi đầu tốt.

CHỈNH SỬA Sau khi nâng cấp PHP, sự cố lại tái diễn, lần này với một giải pháp khác.

  1. CHỈNH SỬA SYSCONFIG Chỉnh sửa tệp / etc / sysconfig / httpd. Thêm 2 dòng đó vào cuối:

    xuất LD_LIBRARY_PATH =/ path / to.libexport ORACLE_HOME =/ path / to / home

  2. TRAO VÀ ĐỌC HƯỚNG DẪN SỬ DỤNG nó có thể được tìm thấy tại đây .

Nếu những điều đó không hữu ích, hãy duyệt qua bức tường của nỗi buồn , để có giải pháp ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Một chuỗi thực thể cụ thể

  2. Lỗi SQL ORA-01722:số không hợp lệ

  3. Cách lấy danh sách tất cả các thủ tục bên trong một gói oracle

  4. Đặt thuộc tính V $ SESSION.program trên Glassfish JDBC Connection Pool

  5. Nhiều giá trị tối đa trong một truy vấn