Problema com a instalação do php_pdo_oci no Ubuntu 14.04.1 LTS

1

Eu preciso instalar o PDO_OCI para PHP no meu localhost (Ubuntu). Eu não sou especialista em pacotes / dependências linux então, por favor, corrija-me se em algum lugar em meus pensamentos eu estiver errado. Quando tento usar o pecl ( sudo pecl install pdo_oci ) ele diz:

pear/PDO_OCI requires PHP extension "pdo" (version >= 1.0)

mas acredite que o PDO está instalado ( ls -la /usr/lib/php5/20121212/ | grep -c pdo.so diz 1). Eu encontrei um tutorial na web para construir pdo_oci eu mesmo ( link ) então eu segui e com alguma luta obtida pdo_oci.so . Infelizmente não carrega me dando a mensagem:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/pdo_oci.so' - /usr/lib/php5/20121212/pdo_oci.so: undefined symbol: php_pdo_stmt_delref in Unknown on line 0

Eu suponho que pode ser algo com a incompatibilidade da versão php / pdo_oci, mas não tenho conhecimento e experiência para saber como lidar com essa situação.
O que posso fazer para que isso funcione?

Meu sistema info:
Ubuntu 14.04.1 LTS
PHP 5.5.9-1ubuntu4.5 (construído): 29/10/2014 11:59:10)

    
por Liberat0r 13.02.2015 / 12:19

2 respostas

2

Eu acredito que eu lidava comigo mesmo. Havia duas coisas que eu precisava mudar. 1. pdo_oci.so estava sendo carregado antes do pdo.so. Eu mudei a ordem ea mensagem de erro foi modificada.
2. Eu compilei o pdo_oci diretamente do código-fonte da minha versão do php (segui as instruções em: link ).
Agora a extensão funciona perfeitamente.

    
por Liberat0r 13.02.2015 / 13:03
0

Depois de instalar os drivers do Oracle, você pode usar essa esta classe aqui e então você só precisa mudar sua conexão PDO de alguma coisa como

$pdo = new PDO("oci:dbname=mydatabase;charset=utf8", "user", "password");

para

$pdo = new PDOOCI\PDO("mydatabase", "user", "password");

O restante deve funcionar exatamente como se você estivesse usando um objeto PDO.

    
por taq 24.06.2015 / 23:22