Forked from eSkiSo/install_oci8_ubuntu20_php7.4.md
Last active
February 17, 2024 05:35
-
-
Save lucasferro0/4f4f75a78d3cc6ff1856151fa67cc91d to your computer and use it in GitHub Desktop.
Revisions
-
lucasferro0 revised this gist
Feb 17, 2024 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -67,7 +67,7 @@ Update Dynamic Linker ## Step 7 Install php7.4-dev php-pear build-essential and libaio1 ``` sudo apt-get install php-dev php-pear build-essential libaio1 -
eSkiSo created this gist
Mar 12, 2021 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,179 @@ # Install OCI8 on Ubuntu 20.04 with PHP 7.4 ## Step 1 ### Download **Oracle Instant Client** and **SDK** from Oracle: > http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html Download files: > Basic Package (ZIP): instantclient-basic-linux.x64-21.1.0.0.0.zip > SDK Package (ZIP): instantclient-sdk-linux.x64-21.1.0.0.0.zip ## Step 2 Create new folders for Oracle Instant Client on server ``` sudo mkdir /usr/lib/oracle sudo mkdir /usr/lib/oracle/21.1 sudo mkdir /usr/lib/oracle/21.1/client64 ``` ## Step 3 Extract files ``` sudo cp instantclient-basic-linux.x64-21.1.0.0.0.zip /usr/lib/oracle/21.1/client64 sudo cp instantclient-sdk-linux.x64-21.1.0.0.0.zip /usr/lib/oracle/21.1/client64 cd /usr/lib/oracle/21.1/client64 sudo unzip instantclient-basic-linux.x64-21.1.0.0.0.zip sudo unzip instantclient-sdk-linux.x64-21.1.0.0.0.zip sudo mv instantclient_21_1 lib ``` ## Step 4 Create symbolic link to the new Instant Client files: ``` cd /usr/lib/oracle/21.1/client64/lib/ sudo ln -s libclntsh.so.21.1 libclntsh.so (It may already exist, continue) sudo ln -s libocci.so.21.1 libocci.so (It may already exist, continue) ``` ## Step 5 Edit/Create this file with the path to the lib (for LDCONFIG): ``` sudo echo /usr/lib/oracle/21.1/client64/lib > /etc/ld.so.conf.d/oracle.conf ``` ## Step 6 Update Dynamic Linker ``` ldconfig ``` ## Step 7 Install php-dev php-pear build-essential and libaio1 ``` sudo apt-get install php-dev php-pear build-essential libaio1 ``` ## Step 8 Update PECL to install OCI8 from it ``` sudo pecl channel-update pecl.php.net ``` Install OCI8 from PCEL (desired version, default seems not to find it for me, i used php7.) ``` sudo pecl install oci8 (php 8) sudo pecl install oci8-2.2.0 (php 7.) ``` During install it will require the path to Instant Client, write this: ``` instantclient,/usr/lib/oracle/21.1/client64/lib ``` At the end something like this should appear: ``` Build process completed successfully Installing '/usr/lib/php/20190902/oci8.so' install ok: channel://pecl.php.net/oci8-2.2.0 configuration option "php_ini" is not set to php.ini location You should add "extension=oci8.so" to php.ini ``` ## Step 9 Load OCI8 into PHP ``` sudo echo "extension=oci8.so" >> /etc/php/7.4/cli/php.ini ``` Restart Apache ``` sudo systemctl restart apache2 ``` ## Step 10 Add to **mods-available** ``` cd /etc/php/7.4/mods-available/ sudo nano oci.ini ``` Add this to the file: ``` extension = oci8.so ``` ## Step 11 Create sym link to the created ini file ``` cd /etc/php/7.4/apache2/conf.d sudo ln -s /etc/php/7.4/mods-available/oci.ini 20-oci.ini ``` Restart Apache ``` sudo systemctl restart apache2 ``` ## Step 12 (Testing) Check if OCI is loaded in PHP ``` php -i | grep oci ``` Should output something like this: ``` oci8 oci8.connection_class => no value => no value oci8.default_prefetch => 100 => 100 oci8.events => Off => Off oci8.max_persistent => -1 => -1 oci8.old_oci_close_semantics => Off => Off oci8.persistent_timeout => -1 => -1 oci8.ping_interval => 60 => 60 oci8.privileged_connect => Off => Off oci8.statement_cache_size => 20 => 20 ``` ## Credits Based on a post from Carlos Juan > https://www.cjorellana.net/2020/12/como-instalar-oci8-en-ubuntu-2004-y-php.html