Caixa auto-hospedada,
RHEL 6
PHP 5.3.3
PDO instalado
freetds instalados
pdo_dblib - até agora não há sorte em instalar
Meu objetivo é usar o PDO com sybase. Tentativa de instalar o pdo_dblib a partir do código fonte da versão apropriada do php. Eu tentei uma variedade de métodos e procurei bastante por ajuda sobre este tópico, mas ainda não tive sucesso.
Método 1
Instalar os freetds
$ ./configure
$ make
$ su root
Password:
$ make install
Isso é bem sucedido
Instalar o pdo_dblib
dentro da pasta / ext / pdo_dblib:
$ phpize
$ ./configure
$ make
$ make test
Saída de erro:
PHP Warning: PHP Startup: Unable to load dynamic library '/home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so' - /home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so: undefined symbol: php_pdo_register_driver in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so' - /home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so: undefined symbol: php_pdo_register_driver in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so' - /home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so: undefined symbol: php_pdo_register_driver in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so' - /home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so: undefined symbol: php_pdo_register_driver in Unknown on line 0
Isso não parece bom ... Eu pesquisei isso e encontrei um hack interessante para este aqui . Mas mudar o pdo.ini para o pdo_0.ini não foi a solução, pois ainda tenho os mesmos erros no make test.
$ su
$ make install
Saída:
Installing shared extensions: /usr/lib64/php/modules/
Isso parece estranho ... e não, ele não é instalado (não aparece no phpinfo após o reinício do apache).
Método 2
Instalar os freetds
seguindo as instruções exatamente, adiciono o prefixo
$ ./configure --prefix=/usr/local/freetds
$ make
$ su root
Password:
$ make install
Isso é bem-sucedido |
Instalar o pdo_dblib
dentro da pasta / ext / pdo_dblib:
$ phpize
$ ./configure --with-sybase=/usr/local/freetds
Isso produz o seguinte erro na parte inferior da saída
...
checking for PDO_DBLIB support via FreeTDS... yes, shared
configure: error: Cannot find FreeTDS in known installation directories
Método 3
freetds ./configure variation (incluindo ou não incluir o --prefix ...) não alterou o resultado disso, então vou ignorá-lo.
Instalar extensão pecl pdo_dblib
seguindo o método especificado aqui .
pecl download pdo_dblib
tar -xzvf PDO_DBLIB-1.0.tgz
Removeu a linha
<dep type=”ext” rel=”ge” version=”1.0″>pdo</dep>
Salvou o arquivo package.xml e o moveu para o diretório PDO_DBLIB.
mv package.xml ./PDO_DBLIB-1.0
Navegue para o diretório PDO_DBLIB e, em seguida, instale o pacote a partir do
diretório.
cd ./PDO_DBLIB-1.0
pecl install package.xml
Mas, esse comando me fornece a seguinte saída de erro, igual ao Método 2 .
checking for PDO_DBLIB support via FreeTDS... yes, shared
configure: error: Cannot find FreeTDS in known installation directories
ERROR: '/home/sybase/Install_items/pecl_pdo_dblib/PDO_DBLIB-1.0/configure' failed