Để kết nối được đến cơ sở dữ liệu Oracle từ CentOS 7, 8, bạn cần cài đặt Oracle InstantClient. Và bạn cũng cần phần mở rộng OCI8 để gọi từ PHP.
Cài đặt Oracle InstantClient
Với el8 / CentOS 8 / stream / Rocky / Almalinux
Trước hết, cần tải các gói cần thiết.
$ cd /usr/local/src $ wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-basic-21.5.0.0.0-1.el8.x86_64.rpm $ wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-sqlplus-21.5.0.0.0-1.el8.x86_64.rpm $ wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-devel-21.5.0.0.0-1.el8.x86_64.rpm $ wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-jdbc-21.5.0.0.0-1.el8.x86_64.rpm
Sau đó, cài đặt bằng lệnh sau.
$ cd /usr/local/src $ dnf localinstall oracle* --nogpgcheck
Với el7 / CentOS 7
Bạn cũng cần tải các gói cần thiết trước.
$ cd /usr/local/src $ wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-basic-21.5.0.0.0-1.x86_64.rpm $ wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-sqlplus-21.5.0.0.0-1.x86_64.rpm $ wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-devel-21.5.0.0.0-1.x86_64.rpm $ wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-jdbc-21.5.0.0.0-1.x86_64.rpm
Rồi cài đặt bằng lệnh sau.
$ cd /usr/local/src $ yum localinstall oracle* --nogpgcheck
Cài đặt OCI8 qua lệnh PECL
Sau khi cài đặt Oracle InstantClient, bạn cần cài đặt phần mở rộng OCI8 để kết nối đến cơ sở dữ liệu Oracle từ PHP. Việc cài đặt phiên bản nào của OCI8 sẽ phụ thuộc vào phiên bản PHP bạn đang sử dụng.
Bạn có hai cách để cài là dùng lệnh PECL hoặc tải package về và tự build bằng phpize và make.
Trước hết, hãy tìm hiểu cách thứ nhất. Bạn gõ như sau.
$ pecl install oci8
Nếu dùng PHP 7.x, thay vì oci8
, bạn dùng oci8-2.2.0
. Tức là câu lệnh bên trên sẽ trở thành như sau.
$ pecl install oci8-2.2.0
Có một lưu ý, trong trường hợp bạn dùng tường lửa, bạn cần thiết lập proxy PEAR trước khi chạy lệnh PECL trên.
$ pear config-set http_proxy http://my-proxy.example.com:80/
Cài đặt OCI8 dùng phpize và make
Đầu tiên, chuyển đến /usr/local/src.
$ cd /usr/local/src
Tải bản OCI8 tương ứng với phiên bản PHP
PHP 7.x
$ wget https://pecl.php.net/get/oci8-2.2.0.tgz
PHP 8.0
$ wget https://pecl.php.net/get/oci8-3.0.1.tgz
PHP 8.1
$ wget https://pecl.php.net/get/oci8-3.2.1.tgz
Giải nén file vừa tải bằng tar
, rồi chuyển đến thư mục vừa được giải nén. Chẳng hạn, với trường hợp PHP 7.x.
$ tar -zxvf oci8-2.2.0.tgz $ cd oci8-2.2.0
Build
Dùng phpize
và make
để build. Bạn có thể cần cài đặt hai phần mềm này qua yum
(hoặc có thể là hậu duệ của nó — dnf
nếu bạn dùng CentOS 8). Nếu bạn chưa biết thì yum
(hay dnf
) là trình quản lý gói, một “App Store” trên CentOS. Nó giúp bạn cài đặt các phần mềm cần thiết.
Chạy phpize và configure.
$ phpize $ ./configure
Trong trường hợp bạn dùng php selector hay php-fpm, bạn cần cung cấp một đường dẫn cụ thể.
Với php selector.
$ /opt/alt/php74/usr/bin/phpize $ ./configure --with-php-config=/opt/alt/php74/usr/bin/php-conf
Với php-fpm.
$ /opt/alt/php-fpm74/usr/bin/phpize $ ./configure --with-php-config=/opt/alt/php-fpm74/usr/bin/php-config
Ví dụ bên trên dành cho PHP 7.4. PHP 8.0 và PHP 8.1 cũng tương tự.
Sau khi chạy phpize và configure, bạn cần chạy make.
$ make && make install
Config php/php-fpm
Sau khi cài OCI8 xong, bạn phải chỉnh sửa php.ini
để có sử dụng. Thường đường dẫn sẽ là /usr/local/php/php.ini
. Bạn thêm dòng sau.
extension=oci8.so
Với php-fpm, phải chỉnh sửa /etc/php-fpm.d/www.conf thêm dòng sau.
env[LD_LIBRARY_PATH] = /usr/lib/oracle/21/client64/lib:$LD_LIBRARY_PATH
Tiếp theo, hãy khởi động lại php/php-fpm. Bây giờ, bạn có thể sử dụng OCI8 để kết nối tới cơ sở dữ liệu Oracle được rồi. Nếu kiểm tra phpinfo sẽ thấy OCI8 đã enable.
Nguồn