Kết nối DB ORACLE từ PHP trên CENTOS 7, 8
Bài viết được sự cho phép của tác giả Nguyễn Văn Minh
Để 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/
Xem ngay tin tuyển dụng PHP lương cao trên TopDev
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 quayum
(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
(haydnf
) 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.
Bài viết gốc được đăng tải tại kinhnghiemlaptrinh.com
Xem thêm:
- Thói quen viết code an toàn trong khi xây dụng ứng dụng PHP
- Oracle to Postgres, sự trỗi dậy của bầy voi!
- Game Developer là gì? Lộ trình trở thành Game Developer
Đừng bỏ lỡ việc làm IT lương cao, đãi ngộ hấp dẫn trên TopDev
- T Tìm hiểu về mảng và hằng trong PHP
- Ô Ôn tập chi tiết về database trong lập trình PHP
- C Cách sử dụng cookie trong PHP
- S So sánh Nodejs với PHP: Nên chọn công nghệ web nào?
- T Tìm hiểu về lập trình hướng đối tượng trong PHP
- K Kỹ thuật phân trang với PHP và MySQL
- C Cách sử dụng hàm isset trong PHP
- C Các hàm xử lý chuỗi thường dùng trong PHP
- S So sánh Laravel và Phalcon – Framework nào tốt hơn?
- C Cài đặt môi trường lập trình web PHP