Eu encontrei um monte de tutoriais de como fazer a instalação, mas tive que recomeçar várias vezes até que encontrei uma forma de fazer funcionar. Está tudo resumido nos passos abaixo:
-
Instale Ubuntu Server como sempre
-
Vá até o website da Oracle e faça o download de “Instant Client for Linux X86–64" de
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html -
Registre-se com uma conta, aceite o License Agreement e faça o download dos arquivos RPM (não do zip!) para os pacotes: Instant Client Package Basic e Instant Client Package SDK
-
Certifique de baixar a versão 12.1.0.1.0
-
Transfira os pacotes RPM para o seu Ubuntu (provavelmente home/yourusername) e então instale o alien package converter e build tools para depois compilar a oci8 library.
sudo apt-get install alien build-essential
-
Agora é preciso instalar todos os pacotes necessários para configurar o Apache e o PHP. Não é para instalar o pear porque vamos compilar manualmente a oci8 do PECL website.
sudo apt-get install apache2 php7.0 php7.0-dev libaio1
-
Agora nós podemos instalar tudo. Primeiro precisamos converter os pacotes RPM para um formato compatível com o Ubuntu (deb) usando o alien. Abra o terminal no local onde estão os RPMse execute:
sudo alien oracle-instantclient12.1-basic-12.1.0.1.0-1.x86_64.rpm
Aguarde até aparecer: oracle-instantclient12.1-basic_12.1.0.1.0-2_amd64.deb generated
sudo alien oracle-instantclient12.1-devel-12.1.0.1.0-1.x86_64.rpm
Aguarde até aparecer: oracle-instantclient12.1-devel_12.1.0.1.0-2_amd64.deb generated
-
Para instalar os pacotes basta executar:
dpkg -i oracle-instantclient12.1-basic_12.1.0.1.0-2_amd64.deb dpkg -i oracle-instantclient12.1-devel_12.1.0.1.0-2_amd64.deb
-
Agora, vá até o website PECL e pegue o ultimo pacote oci8:
http://pecl.php.net/package/oci8 -
Faça o download o arquivo tgz e novamente mova para o seu home/yourusername do Ubuntu
-
Descomprima o oci8 e execute esses commandos
tar -xzvf oci8-2.1.8.tgz cd oci8-2.1.8 phpize ./configure -with-oci8=shared,instantclient,/usr/lib/oracle/12.1/client64/lib make sudo make install
-
Isso provavelmente vai instalar a oci8 library em:
/usr/lib/php/20151012/
-
Agora precisamos editar estes arquivos…
/etc/php/7.0/apache2/php.ini /etc/php/7.0/cli/php.ini
-
Ative a estensão:
extension=/usr/lib/php/20151012/oci8.so
-
Salve cade php.ini
IMPORTANTE
A maioria dos tutoriais dizem para editar o /etc/environment e adicionar set path e oracle variables.
ERRADO!!.Vocë precisa editar /etc/apache2/envvars e adicionar as seguintes linhas:
export PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/administrador/oracle/oci8–2.1.8/modules:/usr/lib/oracle/12.1/client64:/usr/lib/oracle/12.1/client64/lib” export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib export ORACLE_HOME=/usr/lib/oracle/12.1/client64
-
Agora restart o server (apenas restarting o apache service pode não resolver)
sudo shutdown -r now
-
Crie um test.php no /var/www/html com algo assim:
<?php $dbstr =”(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ORACLEIP)(PORT=1521))(CONNECT_DATA=(SID=ORACLESID)))”; if($conn = oci_connect(‘YOURUSERNAME’,’YOURPASSWORD’, $dbstr)): print “CONNECTED OK!!”; else: print “WE HAVE A PROBLEM”; endif; ?>