Docker-php-ext-cài đặt oci8

Tôi hiện đang làm việc trên một dự án PHP yêu cầu kết nối với Oracle DB hiện có. Chúng tôi sử dụng Yii 2. 0 làm khung PHP của chúng tôi và Ubuntu 14. 10 là môi trường phát triển

Sau khi tìm kiếm, tôi phát hiện ra rằng Yii 2. 0 chỉ hỗ trợ Oracle DB thông qua PDO [thông qua tiện ích mở rộng PDO_OCI] khá cũ và yêu cầu một số thủ thuật để cài đặt. Hỗ trợ chính thức cho Oracle OCI8 hiện chưa khả dụng trong lõi Yii, vì vậy chúng tôi vẫn sử dụng PDO_OCI vẫn là THỬ NGHIỆM

Các tiện ích mở rộng PDO, PDO_OCI từ

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
5 đã lỗi thời vì phiên bản PHP mới nhất đã tích hợp sẵn chúng trong lõi của nó. Sau khi thử một số cách tiếp cận, chúng tôi đã kết thúc với việc Biên dịch các tiện ích mở rộng này từ nguồn PHP theo các bước và thủ thuật được mô tả trong bài đăng này. Tôi cũng bao gồm các bước để cài đặt tiện ích mở rộng Oracle OCI8 được duy trì tốt hơn trong bài đăng này cho những ai muốn sử dụng nó mà không cần sự trợ giúp của Yii DB Connection

Cài đặt Oracle Instant ClientTải xuống các gói Oracle Instant Client

Trước tiên, hãy chọn ứng dụng khách phù hợp cho hệ điều hành của bạn tại đây, Instant Client cho Linux x86–64 trong trường hợp của tôi là Ubuntu 14 64 bit. 10

Sau đó, Chấp nhận Thỏa thuận Cấp phép và tải xuống các gói vòng/phút

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
6 &
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
7 cho phiên bản Oracle của bạn. Phiên bản Oracle DB của chúng tôi là 11g r2, vì vậy tôi cần tải xuống

  • Oracle-instantclient11. 2-cơ bản-11. 2. 0. 1. 0–1. x86_64. vòng/phút
  • Oracle-instantclient11. 2-de-11. 2. 0. 1. 0–1. x86_64. vòng/phút
Cài đặt ứng dụng khách ngay lập tức

Chuyển đổi gói phần mềm

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
8 sang Debian [
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
9] bằng cách sử dụng
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
sudo ldconfig
0

sudo apt-get instal alien
sudo alien -d oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.rpm
sudo alien -d oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.rpm

Điều này sẽ xuất ra

export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
sudo ldconfig
1 &
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
sudo ldconfig
2 có thể được cài đặt thông qua lệnh
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
sudo ldconfig
3 của Ubuntu

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb

Sau khi cài đặt thành công, thư viện máy khách sẽ được cài đặt trong

export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
sudo ldconfig
4 và các tệp tiêu đề của nhà phát triển sẽ nằm trong
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
sudo ldconfig
5

Xuất biến môi trường
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
sudo ldconfig
6

Chúng tôi cần các biến môi trường này để biên dịch các tiện ích mở rộng PDO_OCI & OCI8

export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
sudo ldconfig
Tải xuống, biên dịch và cài đặt các tiện ích mở rộng PHP
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
sudo ldconfig
7 và
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
sudo ldconfig
8 Tải xuống mã nguồn PHP

Giả sử rằng bạn đã cài đặt PHP trên hệ thống của mình, bạn chỉ cần biên dịch và cài đặt riêng các tiện ích mở rộng

Lúc đầu, hãy kiểm tra phiên bản PHP hiện tại của bạn bằng lệnh

export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
sudo ldconfig
9 và tải xuống kho lưu trữ nguồn PHP tương ứng từ http. //php. mạng/tải xuống. php. Trong trường hợp của tôi, tôi đã tải xuống
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
80 từ http. //php. mạng/nhận/php-5. 5. 9. hắc ín. bz2/from/a/mirror và giải nén nó bằng lệnh

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
8

Sau đó chuẩn bị tiện ích mở rộng

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
81 để biên dịch bằng cách sử dụng

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
1

Điều này sẽ chuẩn bị kịch bản

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
82 cho bạn

Ghi chú. Bạn cần gói

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
83 để sử dụng lệnh
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
84. Nếu bạn không có nó trên hệ thống của mình, chỉ cần cài đặt trước
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
85

Tiếp theo, tiếp tục với

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
82 để tạo
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
87

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
8

Bạn có thể gặp lỗi hét lên rằng

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
88. Điều này là do tập lệnh
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
82 cố gắng tìm các tệp bao gồm php trong
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
10 đã được thay đổi thành
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
11 cho các phiên bản PHP mới nhất. Mẹo nhanh ở đây là tạo một liên kết mềm cho đường dẫn kế thừa

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
3

và chạy lại tập lệnh

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
12. Nó sẽ thành công ngay bây giờ. Tiến hành biên dịch

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
5

Nó có thể hét lên một lỗi khác tương tự như

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
13. Để bỏ qua điều này, chúng ta cần một thủ thuật khác ở đây

  • Chỉnh sửa tệp
    sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
    sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
    87
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
8
  • Tìm dòng bắt đầu bằng
    sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
    sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
    15 và thêm đường dẫn đến các tệp tiêu đề Oracle Instant Client đã cài đặt [
    export ORACLE_HOME=/usr/lib/oracle/11.2/client64
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    sudo ldconfig
    5] vào đó, nếu dòng này KHÔNG tồn tại, chỉ cần thêm nó vào gần đầu tệp. Kết quả cuối cùng phải là
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
1

Sau đó chạy lại

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
17, quá trình biên dịch sẽ hoàn tất ngay bây giờ

Cuối cùng, cài đặt tiện ích mở rộng đã biên dịch vào hệ thống

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
0

Thao tác này sẽ sao chép tệp

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
18 sang
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
19

Cài đặt OCI8 và các tiện ích mở rộng khác có thể được thực hiện dễ dàng theo các bước tương tự, với các thủ thuật được đề cập ở trên

Bật tiện ích mở rộng mới

Bước cuối cùng là bật các tiện ích mở rộng cần thiết và khởi động lại máy chủ web [giả sử bạn đang sử dụng Apache 2 tại đây]

Đầu tiên, tạo

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
80 trong
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
81

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
1

với nội dung sau

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
2

Sau đó, kích hoạt nó và khởi động lại Apache

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
3

Điều này sẽ tự động tạo một liên kết mềm tới tệp

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
80 vừa tạo cho bạn trong
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
83 tương tự như
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
84, trong đó tiền tố 20 là mức ưu tiên mặc định của tiện ích mở rộng

Để đảm bảo rằng mọi thứ hoạt động như mong đợi, bạn có thể tạo và tệp

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
85 với nội dung sau trong thư mục gốc web của mình

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
4

Và mở nó trong trình duyệt [http. // localhost/thông tin. php chẳng hạn], bạn sẽ thấy thông tin về tiện ích mở rộng

sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.deb
81 được cài đặt như sau

Tôi có thể chạy PHP trong Docker không?

Bạn có thể sử dụng docker run để tạo vùng chứa và thực thi PHP . Bạn chỉ cần thêm một số khối lượng vào thùng chứa. Các tập này phải bao gồm các đường dẫn đến mã của bạn.

Làm cách nào để cài đặt OCI8 trên 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. .
Giải nén 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 qua PECL. .
Tải phần mở rộng từ php. ban đầu. .
Khởi động lại và kiểm tra

Chủ Đề