Ygornet 0 Denunciar post Postado Janeiro 15, 2008 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? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 15, 2008 Seria pq no servidor onde roda minha pagina nao tem suporte ao Interbase/Firebird?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. Compartilhar este post Link para o post Compartilhar em outros sites
Ygornet 0 Denunciar post Postado Janeiro 15, 2008 Beraldo, seria só eu executar um script com essa função? Informação: O Servidor onde esta o site eh Linux. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 15, 2008 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 http://br2.php.net/dl Compartilhar este post Link para o post Compartilhar em outros sites
Ygornet 0 Denunciar post Postado Janeiro 15, 2008 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. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 15, 2008 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. Compartilhar este post Link para o post Compartilhar em outros sites
Ygornet 0 Denunciar post Postado Janeiro 15, 2008 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."); } } } Acima esta só verificando se a função mysql esta carregada , como faria pra verificar a interbase/ firebird? 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? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 15, 2008 ibase. http://www.php.net/manual/pt_BR/ref.ibase.php Compartilhar este post Link para o post Compartilhar em outros sites
Ygornet 0 Denunciar post Postado Janeiro 15, 2008 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."); } } } ?> Na pagina onde eu chamo a conexão com o banco eu inseri a seguinte linha antes de chamar o banco: 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. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 15, 2008 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. :( Compartilhar este post Link para o post Compartilhar em outros sites
Ygornet 0 Denunciar post Postado Janeiro 15, 2008 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. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 15, 2008 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. Compartilhar este post Link para o post Compartilhar em outros sites
Ygornet 0 Denunciar post Postado Janeiro 15, 2008 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. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 15, 2008 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. Compartilhar este post Link para o post Compartilhar em outros sites
Ygornet 0 Denunciar post Postado Janeiro 15, 2008 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) Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 15, 2008 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? Compartilhar este post Link para o post Compartilhar em outros sites
Ygornet 0 Denunciar post Postado Janeiro 15, 2008 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. Compartilhar este post Link para o post Compartilhar em outros sites
Ygornet 0 Denunciar post Postado Janeiro 17, 2008 Nada de solução... Não é possivel. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 17, 2008 adicione a linha extension=interbase.so Compartilhar este post Link para o post Compartilhar em outros sites
Ygornet 0 Denunciar post Postado Janeiro 17, 2008 inserir essa linha em ql parte do arquivo? Compartilhar este post Link para o post Compartilhar em outros sites