Hướng dẫn how enable oci8 in php ini? - Làm thế nào để kích hoạt oci8 trong php ini?

Tôi có Windows XP và gần đây tôi đã cài đặt WAMP (Apache-Mysql-Php) 32-bit. Tôi đã thử nghiệm cài đặt (kết nối với cơ sở dữ liệu MySQL với PHP và Apache) và mọi thứ đều hoạt động tốt.

Bây giờ tôi cần kết nối với cơ sở dữ liệu Oracle vì vậy tôi đã cố gắng kích hoạt một số tiện ích mở rộng liên quan đến Oracle và OCI8.Oracle and oci8.

Và tôi đã:

1) Tôi đã mở tệp php.ini và tôi đã loại bỏ các dấu chấm phẩy trước các dòng sau: I opened php.ini file and I removed the semicolons before the following lines:

before:

;extension=php_oci8.dll
;extension=php_oci8_11g.dll

after:

 extension=php_oci8.dll
 extension=php_oci8_11g.dll

2) Tôi đã khởi động lại Apache và tất cả các dịch vụ và tôi nhận được I restarted apache and all Services and i get a

  • Cảnh báo "Php Startup".

3) Trong tệp php_error.log tôi nhận được: In php_error.log file I get:

 **PHP Warning:  PHP Startup:  in Unknown on line 0**

Vì vậy, tôi nghĩ rằng sẽ là một ý tưởng tốt để kiểm tra thư mục PHP mở rộng của tôi ở đâu và nếu các tệp DLL đó ở đó.

Trong php.ini thư mục mở rộng của tôi được đặt tại:php.ini my extension folder is located at:

extension_dir = "C:/wamp/bin/php/php5.4.16/ext/"

Thư mục tồn tại và cả hai thư viện này (PHP_OCI8.DLL PHP_OCI8_11G.DLL) nằm trong thư mục đó.

4) Tôi đã thêm vào biến hệ thống 'đường dẫn' của mình trong Windows như sau: I added in my 'Path' system variable in Windows the following:

C:\wamp\bin\php\php5.4.16\ext;

5) Tôi đã sao chép cả hai tệp DLL này trong thư mục của Apache nhưng một lần nữa nó không hoạt động! I copied both of these dll files in Apache's folder but again it didn't work!

C:\wamp\bin\apache\Apache2.4.4\bin 

6) Ngoài ra, tôi đã kiểm tra trang PHPINFO và mục duy nhất tôi nhận được cho "OCI8" là như sau: Also, I checked the phpinfo page and the only entry I get for "oci8" is the following:

Cấu hình lệnh

 "--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\php-sdk\oracle\instantclient11\sdk,shared"

HM ... Các thư mục sau không tồn tại trong hệ thống của tôi:do not exist in my system:

C:\php-sdk\oracle\instantclient10\sdk
C:\php-sdk\oracle\instantclient11\sdk

Vì vậy, tôi phải làm gì tiếp theo để kích hoạt chính xác các phần mở rộng OCI8?

cảm ơn

Để định cấu hình PHP để sử dụng tiện ích mở rộng OCI8, bạn cần đảm bảo rằng một số điều kiện được đáp ứng:

1) Tiện ích mở rộng OCI8 cần có khả năng xác định vị trí các DLL chính xác để nó chạy. Điều này có nghĩa là máy khách Instant Oracle thích hợp được cài đặt và thư mục cài đặt cho ứng dụng khách tức thời của Oracle có mặt trong biến đường dẫn.

Trước hết, trong một cửa sổ nhắc lệnh, thay đổi thư mục làm việc thành thư mục CA SAM PHP. Bây giờ, chạy lệnh "PHP -I". Điều này sẽ cung cấp cho bạn thông tin về cấu hình PHP hiện tại. Ở trên cùng, nó sẽ trông như thế này:

Phpinfo () Php phiên bản => 7.0.25
PHP Version => 7.0.25

System => Windows NT 6.3 Build 9600 (Windows Server 2012 R2 Standard Edition) I586Build Date => 24 tháng 10 năm 2017 13: 50: 48compiler => MSVC14 (Visual C ++ 2015) Kiến trúc => x86
Build Date => Oct 24 2017 13:50:48
Compiler => MSVC14 (Visual C++ 2015)
Architecture => x86

Bạn cần tải xuống Oracle Instant Client phù hợp với phiên bản của cơ sở dữ liệu Oracle mà bạn đang sử dụng (chúng tôi sẽ sử dụng Oracle 12c trong ví dụ này) và điều đó cũng phù hợp với kiến ​​trúc của phiên bản đã cài đặt của PHP. Điều này có nghĩa là trong trường hợp này, chúng tôi cần tải xuống phiên bản 32 bit của Oracle Instant Client cho Oracle 12c. Sau khi tải xuống, điều này được trích xuất vào một thư mục, c: \ instantclient_12_2.

Bây giờ, sửa đổi biến đường dẫn và thêm thư mục C: \ instantclient_12_2 ở đầu biến đường dẫn. Đặt nó ở đầu sẽ đảm bảo rằng các DLL OCI8 chính xác sẽ được tìm thấy khi PHP gọi cho tiện ích mở rộng OCI8, trong trường hợp có các DLL khác có thể gây ra vấn đề, có trên hệ thống.

2) Tiện ích mở rộng cần được bật trong tệp php.ini.

Chỉnh sửa tệp php.ini và định vị dòng này:

; mở rộng = php_oci8_12c.dll & nbsp; ; Sử dụng với cơ sở dữ liệu Oracle 12c máy khách tức thì

Gỡ bỏ ; nhân vật từ đầu dòng này và lưu thay đổi này.

3) DLL mở rộng có sẵn ở vị trí PHP "Extension_DIR".

Trong tệp php.ini, có một chỉ thị "Extension_dir". Điều này sẽ chỉ vào thư mục "\ sam \ env \ php \ ext". Kiểm tra thư mục này để xác minh rằng tệp PHP_OCI8_12C.DLL có mặt.

Bây giờ tất cả các công việc điều kiện tiên quyết đã được thực hiện, chúng tôi cần kiểm tra xem tiện ích mở rộng OCI8 có được đăng ký chính xác với PHP hay không và nó hoạt động:

1) Trong cửa sổ nhắc lệnh, thay đổi thư mục làm việc thành thư mục CA SAM PHP.2) Chạy lệnh "PHP -M" (không có báo giá).
2) Run the command "php -m" (without the quotes).

Điều này bây giờ sẽ cung cấp cho bạn thông tin về các tiện ích mở rộng PHP đã đăng ký hiện tại. Danh sách này nên bao gồm tiện ích mở rộng OCI8:

.
bcmath
calendar
Core
ctype
date
dom
filter
gd
hash
iconv
json
ldap
libxml
mbstring
mcrypt
mysqlnd
oci8
openssl
pcre
PDO
Phar
Reflection
session
SimpleXML
SourceGuardian
SPL
sqlsrv
standard
tokenizer
wddx
xml
xmlreader
xmlwriter
zip
zlib

[Mô -đun Zend]

Nếu danh sách này không bao gồm tiện ích mở rộng OCI8 và tất cả các bước trước đó đã được thực hiện chính xác, điều này có nghĩa là có một vấn đề khi chạy tiện ích mở rộng OCI8. Để kiểm tra điều này, hãy chạy lệnh "PHP -I". Nếu có bất kỳ vấn đề nào khi chạy phần mở rộng, nó sẽ tạo ra một cửa sổ bật lên với lý do cho sự thất bại. Điều phổ biến nhất là một vấn đề với DLL cần thiết, như thế này:

"Chương trình không thể bắt đầu vì MSVCR120.DLL bị thiếu trong máy tính của bạn. Hãy thử cài đặt lại chương trình để khắc phục sự cố này."

Trong trường hợp này, hệ thống cần "các gói phân phối lại C ++ trực quan cho Visual Studio 2013" được tải xuống và cài đặt. Khi điều này được thực hiện, khi lệnh "PHP -I" được chạy, không có lỗi bật lên và đầu ra bao gồm thông tin OCI8:

oci8

Hỗ trợ OCI8 => ANABEDOCI8 DTRACE SUPST => disabedOci8 phiên bản => 2.1.8Revision => $ id: 8A26CF66CA0F9556B6376408C8F71EAD69BDBCB
OCI8 DTrace Support => disabled
OCI8 Version => 2.1.8
Revision => $Id: 8a26cf66ca0f9556b6376408c8f71ead69bdbcbf $
Oracle Run-time Client Library Version => 12.2.0.1.0
Oracle Compile-time Instant Client Version => 12.1

Bây giờ, PHP đã được cấu hình chính xác với tiện ích mở rộng OCI8.

Làm cách nào để kích hoạt OCI8?

Để cài đặt tiện ích mở rộng OCI8, chúng tôi cần cài đặt một số gói bổ sung trên máy chủ của mình ...
Chạy các lệnh sau: apt-get cài đặt php-dev PHP-pear build-itential libaio1 ..
Sau khi cài đặt, chúng tôi cần lấy tệp OCI8. ....
Chúng ta cần bảo PHP tải tiện ích mở rộng OCI8. ....
Kiểm tra xem tiện ích mở rộng có được bật không. ....
Khởi động lại PHP-FPM ..

Làm thế nào để bật OCI8 trong các cửa sổ PHP?

1 câu trả lời..
Tải xuống InstantClient và đặt "C: \ instantclient_11_2".
Đặt biến môi trường cho c: \ instantclient_11_2 ..
Kiểm tra phiên bản PHP của bạn, tức là Php phiên bản 5.6.15 ..
Un-spment "extext = php_oci8_11g.dll" trong php.ini và khởi động lại apache ..
Kiểm tra php_info (), OCI8 nên được bật.Đó là tất cả..

Làm thế nào để tôi biết nếu OCI8 được cài đặt?

2) Chạy lệnh "PHP -M" (không có báo giá).Nếu danh sách này không bao gồm tiện ích mở rộng OCI8 và tất cả các bước trước đó đã được thực hiện chính xác, điều này có nghĩa là có một vấn đề khi chạy tiện ích mở rộng OCI8.Để kiểm tra điều này, hãy chạy lệnh "PHP -I".run the "php -i" command.

Làm thế nào để kích hoạt OCI8 trong php linux?

Cách cài đặt Oracle Client Instant (OCI8) trên Linux..
Tải xuống Oracle Instant Client và SDK mới nhất.....
Trích xuất các tập tin.....
Thêm vào thư mục cấu hình của LDConfig.....
Cài đặt gói.....
Cài đặt tiện ích mở rộng OCI8 thông qua PECL.....
Tải mở rộng từ php.ini.....
Khởi động lại và kiểm tra ..