Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jeff Rex

Atualizando versão do php via código fonte

Recommended Posts

Boa tarde a todos,

 

Me deparei com um problema, que pode parecer estupido, mas está me tirando o sono, pois por mais simples que possa parecer, eu não consigui resolver, então decidi pedir auxílio aos amigos, para ver se alguém com uma visão externa do problema me dah alguma luz...

 

Tenho um servidor (Centos 5.5) rodando um apache 2.0. Esse servidor foi herdado (outra pessoa o configurou), e como os sistema de gestão da empresa (que eu e minha equipe desenvolvemos) roda no apache (eh sistema web), ainda não tive como reinstalar o servidor inteiro.

 

O fato é que tem um php 5.3.2, e eu precisei instalar suporte a mysql nele. Pois bem, a única coisa que sei sobre a instalação é que o php foi compilado a partir do código fonte (configure make make install), devido ao suporte ao firebird (que também é necessário). Decidi aproveitar para atualizar a versão do meu php, pois já está disponível ao 5.3.3. Baixei o fonte do php-5.3.3, descompactei, peguei o configure command que está no phpinfo(), adicionei as opções do mysql, e rodei...

 

Deu alguns problemas com caminho de bibliotecas do mysql, pois tem um diretório lib e outro lib64, e mesmo passando o diretório lib64 ele busca no lib :( .

 

Isso eu descobri analisando o Makefile e resolvi criando links simbólicos na pasta lib. Enfim consegui rodar o configure sem erros. Rodei um make clean, e make.., tudo certo, nenhum erro...

 

make install na cabeça.., tudo blza...

 

derrubei o apache.., subi de novo.., rodei um script com phpinfo() para ver a discriminação do suporte ao mysql e adivinhem?? A versão continuava a mesma (5.3.2), não apareceu o suporte ao mysql, e nem o configure command foi atualizado. Nem mesmo o php.ini foi alterado...

Aparentemente ficou na mesma, só que os arquivos foram copiados, pois o retorno do make install me diz isso...

 

alguém aí já teve algum problema do tipo ou faz alguma idéia do que pode estar acontecendo?

 

O mais interessante, é que eu já atualizei esse php (da versão 5.2.8 para a 5.3.2), seguindo os mesmos passos, para incluir suporte a biblioteca gd/png, apanhei um pouco devido minha pouca experiência, mas consegui..., não faço a menor idéia de porque não está funcionando agora....

 

Ahhhh sim, outro fato curioso, é o comando #php -v, retorna o seguinte:

PHP 5.1.6 (cli) (built: Mar 31 2010 02:39:17) e mais umas informações de copyright..., apesar do phpinfo mostrar uma versão bem mais nova (5.3.2).

 

alguém me salva por favor??

Compartilhar este post


Link para o post
Compartilhar em outros sites

A confusão com as versões de PHP é devido ao fato de no servidor existirem versões versões instaladas via pacote e outras compiladas.

 

Você precisa verificar se não existem também outras versões de Apache, você pode estar "apontando" sua compilação para a versão errada ou mesmo reiniciando o servidor errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A confusão com as versões de PHP é devido ao fato de no servidor existirem versões versões instaladas via pacote e outras compiladas.

 

Você precisa verificar se não existem também outras versões de Apache, você pode estar "apontando" sua compilação para a versão errada ou mesmo reiniciando o servidor errado.

 

Então cara..., já tinha até pensado que pudesse ser isso, mas procurei outras instalações de apache/php e não encontrei nada. Tem outros detalhes..., quando eu paro o apache, não consigo rodar o script com o phpinfo(), logo estou parando o apache correto. Além do mais, as opções do configure:

--prefix=/caminho/para/o/php \

--with-config-file-path=/caminho/para/o/diretorio/do/php.ini \

 

Foram tiradas do phpinfo() gerado de dentro do php, logo teoricamente não teria como errar nisso...

 

O comando yum list php não mostra nada instalado...

 

Se você conhecer algum outro meio de verificar se existem outras instâncias de php instaladas na máquina, a dica será bem vinda...

 

Grato pela atenção.., abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça uma busca no seu file system completo, desta forma:

# find / -name php

 

Todos os arquivos listados são binários ou links de arquivos com nome php, então, vamos supor o seguinte retorno:

/opt/php

/opt/php/bin/php

/bin/php

/usr/local/bin/php

 

Então você pode verificar a versão de cada um deles:

# /opt/php -v

# /opt/php/bin/php -v

# /bin/php -v

# /usr/local/bin/php -v

 

Bom... isto é mais uma dica, mas é complicado diagnosticar exatamente o que esta acontecendo, para facilitar, baixe uma nova versão do Apache e junto com esta versão do PHP, compile os 2, fazendo as configurações adequadas dos 2 programas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça uma busca no seu file system completo, desta forma:

# find / -name php

 

Todos os arquivos listados são binários ou links de arquivos com nome php, então, vamos supor o seguinte retorno:

/opt/php

/opt/php/bin/php

/bin/php

/usr/local/bin/php

 

Então você pode verificar a versão de cada um deles:

# /opt/php -v

# /opt/php/bin/php -v

# /bin/php -v

# /usr/local/bin/php -v

 

Bom... isto é mais uma dica, mas é complicado diagnosticar exatamente o que esta acontecendo, para facilitar, baixe uma nova versão do Apache e junto com esta versão do PHP, compile os 2, fazendo as configurações adequadas dos 2 programas.

 

Bom, obrigado pelas dicas.., vou tentar fazer o que me sugeriu..., qualquer coisa volto a postar aqui.., valeu pela ajuda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe intrometer.. estava pesquisando no google sobre um asssunto relacionado e encontrei eese link.

 

aproveitei pra deixar uma dica

 

procure tb pro pacotes rmp que possam já estar instalados

 

exemplo, para listar pacotes rpm do mysql que possam existir:

rpm -qa | grep -i mysql

se existir retornará algo asssim:

 

mysql-devel-5.0.77-3.el5
mysql-server-5.0.77-3.el5
perl-DBD-MySQL-3.0007-1.fc6
mysql-5.0.77-3.el5

 

por aí você tem uma idáeia mais clara.

 

se quiser remover algum pacote rpm

 

rpm -ev --nodeps mysql-devel-5.0.77-3.el5

em negrito o nome completo do pacote, tal como apareceu na lista.

 

 

faça esse tipo de procedimento sempre antes de instalar alguma coisa.

 

no caso do php, por exemplo

 

rpm -qa | grep -i php

 

aopache

 

rpm -qa | grep -i apache

 

 

outra dica.. já que está usando CentOS5, desinstale tudo que está manual e procure usar o YUM

 

é muito mais prático.. não precisa mais ficar compilando e perdendo noites e dias inteiros buscando dependências, etc..

 

algumas situãções muito específicas você precisará compilar manualmente, mas é bem específico mesmo..

 

espero ter ajudado..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.