Nếu bạn đã cài đặt OCI8 nhưng cần xây dựng lại thì bạn sẽ cần sử dụng tùy chọn -f để buộc xây dựng lại
sudo pecl cài đặt -f oci8
Sau khi bắt đầu, PECL hiển thị lời nhắc bên dưới để lấy vị trí của thư mục ORACLE_HOME [Máy khách tức thời] của bạn
Vui lòng cung cấp đường dẫn đến thư mục ORACLE_HOME. Sử dụng 'instantclient,/path/to/instant/client/lib' nếu bạn đang biên dịch với Oracle Instant Client [autodetect]
Trong trường hợp của tôi, câu trả lời thích hợp là
tức thời,/Thư viện/Oracle/instantclient_11_2
Một loạt kiểm tra tự động sẽ lướt qua màn hình thiết bị đầu cuối của bạn khi PECL kiểm tra môi trường và các điều kiện tiên quyết của bạn - sau đó thực hiện quá trình xây dựng. Trong trường hợp của tôi, một vài thông báo cảnh báo nhỏ đã hiển thị về các mục trong mã nguồn - nhưng những thông báo này có vẻ an toàn để bỏ qua và không can thiệp vào quá trình xây dựng
Cuối cùng, một thông báo thành công sẽ được hiển thị tương tự như bên dưới
Quá trình xây dựng đã hoàn tất thành công
Đang cài đặt '/usr/lib/php/extensions/no-debug-non-zts-20121212/oci8. vì vậy'
cài đặt được. kênh truyền hình. //pecl. php. mạng/oci8-2. 0. 8
tùy chọn cấu hình "php_ini" không được đặt thành php. ini
Bạn nên thêm "extension=oci8. vậy" sang php. ini
Phương pháp 2
Đây là biến thể thủ công hơn một chút của phương pháp 1. Tuy nhiên, nó có lợi thế là cho phép bạn chọn các phiên bản OCI8 cụ thể tùy thuộc vào tệp gói bạn tải xuống.
- Gỡ gói, giải nén nó ở bất cứ đâu bạn muốn
- mở thiết bị đầu cuối. Chuyển đến thư mục chứa gói giải nén và thực hiện bốn dòng lệnh bên dưới. Về cơ bản, chúng thực thi quy trình chạy như cài đặt do pecl quản lý trong phương pháp 1
phpize
. /configure --with-oci8=shared,instantclient,/path/to/instant/client/lib
make
sudo make install
Thay thế /path/to/instant/client/lib bằng đường dẫn đến thư mục ORACLE_HOME [Ứng dụng khách tức thời] của bạn theo Phương pháp 1 ở trên.
- Xin lưu ý rằng các cảnh báo có thể được hiển thị khi thực hiện lệnh make [cũng xảy ra trong phương pháp 1], NHƯNG
- quá trình xây dựng vẫn phải hoàn tất thành công
Bước 3. Cập nhật PHP. INI
Khi quá trình xây dựng hoàn tất, bạn cần cập nhật php của mình. ini để đảm bảo tiện ích mở rộng OCI8 mới được bao gồm trong các tùy chọn cấu hình của bạn. Nếu bạn đã sử dụng PHP thì có thể bạn đã có php. ini - nhưng nếu bạn không tích cực sử dụng/định cấu hình PHP trên máy Mac của mình thì đây có thể là lãnh thổ mới
Theo mặc định, OS X 10. 10 Yosemite lưu trữ các tệp cấu hình PHP của nó trong /etc [hoặc /private/etc]. Nếu bạn vào thư mục này, bạn sẽ thấy một tệp cấu hình hiện có có tên là php. ban đầu. mặc định
Nếu bạn chưa có php tùy chỉnh của riêng mình. ini, tạo tệp này bằng cách sao chép phiên bản mặc định
sudo cp php. ban đầu. php mặc định. ban đầu
Bây giờ bạn có thể chỉnh sửa bản sao này để bao gồm cài đặt cấu hình tùy chỉnh của riêng bạn
- Chuyển đến phần Tiện ích mở rộng động của php. tập tin ini
- Điều này bắt đầu ở dòng 834 trong phiên bản tệp của tôi
- Đây là định dạng Unix [và Mac OS X] tiêu chuẩn để thêm phần mở rộng PHP
- Lưu tệp đã cập nhật, sau đó thoát
sudo chmod ug+w php. ini
sudo chgrp quản trị viên php. ini
Nếu bạn chưa định cấu hình PHP trên hệ thống của mình, hãy tham khảo tài liệu về PHP. net để sử dụng chức năng PHP đi kèm của OS X
Bước 4. Chỉnh sửa tổ chức Apache. apache. httpd. tập tin plist
Đây là bước còn thiếu trong hầu hết các tài liệu khác về cài đặt OCI8. Tôi không chắc về các chi tiết kỹ thuật - nhưng sau khi tìm kiếm và thử nghiệm trên Internet, tôi phát hiện ra rằng PHP cần phải nhận ra OCI8 trên hệ thống của tôi
tổ chức. apache. httpd. plist cần cập nhật để tham chiếu biến DYLD_LIBRARY_PATH. Giá trị phải được đặt thành đường dẫn của trang chủ Oracle Instant Client của bạn
- Điều này cần phải được thêm vào phần của tập tin
- Vì định dạng tệp là XML nên bạn cần tạo HAI mục nhập
- Tên biến, DYLD_LIBRARY_PATH, phải được đặt giữa các thẻ
- Giá trị biến phải được đặt giữa các thẻ
cd /System/Library/LaunchDaemons
sudo edit org. apache. httpd. plist
Thay đổi được minh họa trong hình bên dưới.
Lưu tệp đã cập nhật và thoát.
Khởi động lại Apache để thay đổi có hiệu lực
Bước 5. Xác minh cấu hình OCI8
Khi cấu hình của OCI8 hiện đã hoàn tất, bước cuối cùng là xác minh rằng nó hoạt động. Cách dễ nhất để làm điều này là mở terminal và thực hiện lệnh
Điều này sẽ hiển thị cài đặt cấu hình chung cho PHP, cũng như cài đặt cho từng mô-đun. Đầu ra phải bao gồm các chi tiết cho mô-đun OCI8 tương tự như mô-đun được hiển thị bên dưới
andrew$ php -i
phpinfo[]
Phiên bản PHP => 5. 5. 14
Hệ thống => Darwin Andrews-MacBook-Pro. địa phương 14. 1. 0 Hạt nhân Darwin Phiên bản 14. 1. 0. Thứ hai 22 tháng 12 23. 10. 38 PST 2014; . xnu-2782. 10. 72~2/RELEASE_X86_64 x86_64
Ngày xây dựng => 9 tháng 9 năm 2014 19. 04. 27
.
.
oci8
Hỗ trợ OCI8 => đã bật
Hỗ trợ OCI8 DTrace => đã tắt
Phiên bản OCI8 => 2. 0. 8
Bản sửa đổi => $Id. f04114d4d67cffea4cdc2ed3b7f0229c2caa5016 $
Phiên bản thư viện ứng dụng khách thời gian chạy Oracle => 11. 2. 0. 4. 0
Phiên bản ứng dụng khách tức thì thời gian biên dịch của Oracle => 11. 2
Chỉ thị => Giá trị cục bộ => Giá trị chính
oci8. connection_class => no value => no value
oci8. default_prefetch => 100 => 100
oci8. sự kiện => Tắt => Của
oci8. max_persistent => -1 => -1
oci8. old_oci_close_semantics => Tắt => Tắt
oci8. persistent_timeout => -1 => -1
oci8. ping_interval => 60 => 60
oci8. đặc quyền_kết nối => Tắt => Tắt
oci8. statement_cache_size => 20 => 20
.
.
Một tùy chọn tốt hơn là tạo một trang php trong thư mục tài liệu web apache của bạn gọi hàm phpinfo[]. Khi được xem trong trình duyệt, phần này sẽ hiển thị cấu hình đầy đủ của bản cài đặt PHP của bạn [bao gồm cả mô-đun OCI8 nếu được định cấu hình đúng] ở định dạng dễ đọc hơn nhiều
// Hiển thị tất cả thông tin, mặc định là INFO_ALL
phpinfo[];
?>
Đầu ra, được xem trong trình duyệt, sẽ trông giống như bên dưới
Nếu bạn có sẵn cơ sở dữ liệu Oracle, bạn có thể xác minh thêm việc cài đặt bằng cách sử dụng tập lệnh PHP đơn giản kết nối với cơ sở dữ liệu và gọi hàm sysdate của Oracle như bên dưới. Đảm bảo thay đổi thông tin đăng nhập cơ sở dữ liệu và các chi tiết kết nối khác để phù hợp với hệ thống của bạn
//Tệp. dbtime. php
$dbHost = "l92. 168. 0. 100";
$dbHostPort="1521";
$dbServiceName = "orcl";
$usr = "hr" . $dbHost. "][PORT=". $dbHostPort. "]]
$pswd = "hr";
$dbConnStr = "[DESCRIPTION=[ADDRESS=[PROTOCOL=TCP][HOST=".$dbHost."][PORT=".$dbHostPort."]]
[CONNECT_DATA=[SERVICE_NAME=". $dbServiceName. "]]]";
if[. $dbConn = oci_connect[$usr,$pswd,$dbConnStr]] {
$err = oci_error[];
trigger_error['Không thể thiết lập kết nối. '. $err['message'], E_USER_ERROR];
};
$strSQL = "SELECT TO_CHAR[SYSDATE, 'HH. MI. SS'] ctime TỪ DUAL";
$stmt = oci_parse[$dbConn,$strSQL];
if [. oci_execute[$stmt]] {
$err = oci_error[$stmt];
trigger_error['Không thể thực hiện truy vấn. '. $err['message'], E_USER_ERROR];
};
oci_fetch[$stmt];
$rslt = oci_result
print "
Thời điểm hiện tại là ". $rslt. "
";
?>
Tài liệu tham khảo
- Rob Allen - Thiết lập PHP & MySQL trên OS X Yosemite. Mặc dù được nhắm mục tiêu vào một cơ sở dữ liệu khác và không bao gồm OCI8, bài viết này cung cấp một bản tóm tắt tốt về cấu hình PHP và Apache cần thiết.
chú thích cuối trang. Cài đặt lại các phiên bản mô-đun cũ hơn qua PECL
Trong ghi chú của tôi về việc cài đặt mô-đun OCI8, tôi đã nói rằng việc tải xuống thủ công từ pecl. php. net/package/oci8, sau đó gọi phpize và. /configure lệnh [xem Bước 2 ở trên], là cách duy nhất để cài đặt phiên bản cũ hơn nếu bạn cần
Tuy nhiên, sau đó tôi phát hiện ra rằng PECL cũng sẽ cho phép bạn làm điều này. Bạn chỉ cần thêm rõ ràng số phiên bản vào tên mô-đun. Ví dụ