Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, estou tentando acessar um banco Interbase/Firebird em outro servidor, mas me retorna o seguinte erro:
Fatal error: Call to undefined function ibase_connect() in /xxx/www/html/xxxxxxxxxx/conexao_firebird.php on line 16
Seria pq no servidor onde roda minha pagina nao tem suporte ao Interbase/Firebird?
Beraldo,
seria só eu executar um script com essa função?
Informação:
O Servidor onde esta o site eh Linux.
Tem que carregar sempre quando for usar.
Seria ideal fazer isso num arquivo de inicialização de sistema. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Beraldo ,
ql extensao eu terei que usar?
como vou colocar como arquivo de inicialização se esta no servidor? O servidor raramente reinicia.
Se puder ajudar fico grato.
Veja o tópico Arquivo de Inicialização de Sistemas, no Laboratório de Scripts. Lá está tudo explicado, inclusive com comentários no script.
Bom , pelo que eu intendi eu tenho que criar um script com essa parte de código:
if (!extension_loaded('mysql')) {
if (function_exists('dl') {
$prefix = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : '';
if (!dl($prefix . 'mysql.' . PHP_SHLIB_SUFFIX)) {
die("Não foi possível carregar a extensão MySQL.");
}
}
}Oq eu usaria no lugar de 'mysql'? Qual seria o nome correto?
Depois eu teria qeu fazer um include desse script na pagina onde tento carregar o BD?
Fiz o seguinte:
Criei a pagina banco.php
<?php
if (!extension_loaded('ibase')) {
if (function_exists('dl')) {
$prefix = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : '';
if (!dl($prefix . 'ibase.' . PHP_SHLIB_SUFFIX)) {
die("Não foi possível carregar a extensão ibase.");
}
}
}
?>include "banco.php";
Mas me retornou o seguinte erro:
>
Warning: dl() [function.dl]: Unable to load dynamic library '/usr/lib/php/modules/ibase.so' - /usr/lib/php/modules/ibase.so: cannot open shared object file: No such file or directory in /var/www/html/xxxxxxxxxxxx/banco.php on line 13
Não foi possível carregar a extensão ibase.
ibase.so não foi encontrado. Ou seja, esse arquivo não está no diretório de extensões.
Portanto, use outro SGBG ou troque de servidor.
Dá para tentar entrar em contato com o suporte e ver se eles podem habilitar a extensão, mas não espero muita coisa. :(
Joguei o arquivo ibase.so pro diretorio do servidor.
Agora me retorna outro erro:
>
Warning: dl() [function.dl]: Unable to load dynamic library '/usr/lib/php/modules/ibase.so' - /usr/lib/libstdc++.so.5: version `GLIBCPP_3.2' not found (required by /usr/lib/libgds.so) in /var/www/html/rastreamento_de_produto/banco.php on line 13
Não foi possível carregar a extensão ibase.
não é no diretório do servidor, é no diretório das extensões, que geralmente fica dentro do diretório do PHP.
Você não tem como acessar esse diretório num servidor remoto.
Eu tenho acesso a maquina servidor onde fica o site.
Ja fui no diretório das extensões e já joguei ibase.php pra la.
Só que agora da outro erro.
Parece qeu pede o arquivo: Joguei o arquivo ibase.so pro diretorio do servidor.
libstdc++.so.5
Mas só tem o libstdc++.so.6, ou seja , uma versao acima , mas parece que nao esta aceitando e eu nao acho a ersao qeu esta pedindo pra baixar e substituir no diertorio.
Se voc6e tem acesso aos arquivos de configuração, esqueça a função dl(). Habilite essa extensão no próprio php.ini.
No diretório das extensões, não coloque ibase.php, coloque o ibase.so.
OBS: Estou vendo aqui, e parece que é interbase.so.
Mas no php.ini nao tem como inserir essa linha, lembrando que o servidor é Linux.
Entao no php.ini do Linux tem uma linha que chama rpaum diretorio onde tem as bibliotecas q da suporte ao php.
Se eu acrescento "ibase.php" nao da em nada, pois o mysql funciona normalmente mas nao tem linha nenhuma no php ini citanto ele(mysql)
Procure por esta linha no php.ini:
;extension=php_interbase..so
retire o ponto-e-vírgula inicial, reinicie o Apache e tente de novo. ibase.php não é um arquivo de configuração. Você que o criou? qual é o conteúdo dele?
desculpa , onde eu disse ibase.php intenda como ibase.so.
o arquivo ibase.so eu achei na internet, mas na verdade achei com o nome de interbase.so renomeei e passei pro servidor como ibase.so.
No arquivo php.ini nao tem a linha
;extension=php_interbase..so
eh servidor Linux nao eh configurado com essa linha. Nao eh como o windows.
Nada de solução...
Não é possivel.
adicione a linha
extension=interbase.so
inserir essa linha em ql parte do arquivo?
junto com as outras extensões. Pode colocar no final ou manter a ordem alfabética
Mas é aí que tah beraldo , é o php.ini no Linux.. ou seja , nao tem essas linhas as quais você se refere, o php.ini do Linux é diferente do php.ini do Windows.
No do Windows tem , mas no do Linux nao tem.
E o mySql esta funcionando normalmente.
Jah nao sei oq fazer! :wacko:
Não há nenhuma linha nesta formatação?
extension=ext.so?? Tem que haver.
Dê uma olhada aqui:
http://forum.imasters.com.br/index.php?showtopic=252355
http://www.nabble.com/Instalar-o-PHP5-com-...td14732633.html
Sim.Você pode tentar habilitar essa extensão em tempo de execução, usando a função dl(), mas alguns servidores a desabilitam, por questões de segurança.