De um tempo para cá, eu tenho usado o Zend Server em meu ambiente de desenvolvimento PHP para facilitar a minha vida por ele ter o maldito Oracle InstantClient pré-instalado, principalmente por isso pois eu odeio instalar aquela coisa, porém, de uns tempos para cá isso tem me causado problemas pois o client que vem embutido no Zend Server aparente é o Basic Lite que vem com algumas funcionalidades faltando, por exemplo ORA-12737: Instant Client Light: unsupported server character set WE8ISO8859P15, pelo pouco que pesquisei ele não suporta diversos encodings e bibliotecas relacionadas a I18n.
Ontem eu tive o problema supracitado e não foi a primeira vez que tive um problema do gênero, então eu desisti dessa vida fácil, mandei o Zend Server pro espaço e instalei uma VM Vagrant com Ubuntu Server 11.10, PHP, Oracle InstantClient e OCI8 para nunca mais ter problemas deste tipo e os passos necessários para montar este ambiente eu tentarei passar para você, meu querido leitor, logo abaixo.
O PHP que eu instalei neste caso foi o 5.3.x mas creio que funcione com o PHP 5.4.x numa boa também.
Então primeiramente eu instalei o PHP:
sudo apt-get install php5
Depois instalei algumas bibliotecas necessárias para compilar a extensão OCI8 com o pecl:
sudo apt-get install php5-dev build-essential php-pear libaio1
Será necessário fazer o download do Oracle Client Basic e do SDK (devel) para podermos compilar a extensão OCI8, lembro que você deve fazer o download do pacote BASIC, não confunda com BASIC-LITE senão vai dar a mesma merda coisa que deu com o Zend Server.
Outro ponto importante é que eu fiz o download dos pacotes RPM em vez de usar os outros binários, na verdade eu fiz o download dos outros pacotes mas eu percebi que iria rolar um trabalho braçal, como eu já estava com o pissed off guy mode enabled eu fiz o download dos pacotes novamente, só que desta vez os RPM que são instalados de uma maneira mais automágica. :D
Para fazer o download você deve se cadastrar e se autenticar no site, mas creio que isso não seja problema para você, certo?
Então vá ao endereço: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html e selecione o sistema operaciol desejado. No caso deste post, estou usando como referência o Ubuntu Server 11.10 64 bits, sendo assim eu baixei os seguintes pacotes:
Como estou usando Ubuntu, preciso converter os pacotes, para isso eu usei o utilitário alien. Para instalar, execute o comando:
sudo apt-get install alien
Em seguida execute:
sudo alien oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
sudo alien oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
Pronto, agora é mandar ver.
Instale primeiro o pacote basic e em seguida o devel:
sudo dpkg -i oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.deb
Erro nenhum deve ter ocorrido até o momento, se aconteceu algum problema, tente todos os passos novamente.
Antes de instalarmos o OCI8 via pecl, nós precisamos arrumar um link simbólico que deveria existir mas não existe, caso contrário o pecl vai criar caso:
cd /usr/lib/oracle/11.2/client64/lib/
ln -s libclntsh.so.11.1 libclntsh.so
Como eu estou usando o PHP 5.3.6, eu instalei o oci8 versão 1.4.5 pois pelo que entendi as versões posteriores não funcionavam com a versão do PHP que eu tinha instalado, o que é um alerta para que eu atualize logo para a versão mais atual do PHP.
Vamos lá:
sudo pecl install --alldeps oci8-1.4.5
Este processo pode demorar um pouquinho e um certo ponto o instalador irá te pedir o caminho para o instantclient, apenas tecle ENTER que ele buscará automaticamente.
Quando o processo for finalizado, você deve habilitar a extensão inserindo extension=oci8.so no arquivo /etc/php5/apache2/php.ini.
Pronto, está instalado.
Daqui pra frente você deve saber como proceder. Presumo.
Na minha opinião o Zend Server é um bom produto, porém a Zend deu mole em colocar o client basic-lite, eu não sei qual o motivo que os levaram a fazer isso, mas ele não serve para muita coisa se você for usar o Oracle para um pouco mais do que o arroz com feijão.
É isso moçada, espero que este post possa ajudar outros PHPers.
Abraço.
Post date: 05/07/2012 - 22:02:50