Ir para conteúdo

POWERED BY:

Arquivado

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

Marcos Knijnik

[Resolvido] Totalmente Desapontado com PHP 5.3.3

Recommended Posts

Devo dizer que me sinto totalmente desapontado com o PHP 5.3.3.

 

Isso por simplesmente, após mais de cinco dias (4 horas cada dia), não ter conseguido instalar com sucesso tal versão do PHP.

 

Vou contar minha história: comecei a aprender PHP em um servidor gratuíto da web, de modo que não tive de me preocupar com a instalação de Apache, PHP e MySQL. Pois, quando quis começar a usar tais ferramentas, instalei a versão 5.2.9 do PHP, porém agora há várias outras atualizações, entre elas o "grandiozo" PHP 5.3.3

 

Só para constar, quando fui baixar a versão 5.2.9, tive aqueles problemas básicos, mas acabei conseguindo baixá-lo de modo que extensões como a mysql funcionem transferindo arquivos como a libmysql.dll e a extensão php_mysql.dll (ou algo do tipo) para a pasta C:\Windows\System32. Funcionou perfeitamente, e aliáis indico que instalem o PHP direito na pasta System32.

 

Bem, quando fui baixar o PHP 5.3.3, já o instalei em etc/System32. Porém, a porcaria do mysql_connect não funcionava!

 

Já tentei baixar o Non Thread Safe sei lá o que e o Thread Safe. Estou baixando o V6 (já tentei V9) e estou veinculando com o Apache2.2

 

Já chequei o httpd.config (tudo certo), o php.ini e minhas informações do phpinfo() são:

 

========================

mysqlnd

mysqlnd enabled

Version mysqlnd 5.0.7-dev - 091210 - $Revision: 300533 $

Compression supported

========================

 

Por favor, se souberem como fazer esse bendito PHP 5.3.3 funcionar, eu ficaria extremamente agradecido. Perdi muito tempo nisso e até agora nada.

 

Agradeço antecipadamente pela atenção

Marcos Knijnik

 

OBS: E o estranho é a quantidade enorme de pessoas com as mesmas dúvidas na NET. Acho que vou voltar pro PHP 5.2.9 :mellow:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu compilei o PHP a partir do fonte para instalar em Linux. Não tive nenhum problema

 

Quando eu suava Windows, tive um problema semelhante. A causa era o modo de instalação: assim como você, eu estava copiando esse monte de .dll para outros locais. Aí esqueci de atualizar um dos arquivos (as DLL's são bibliotecas dinâmicas que são modificadas nas versões do PHP. Logo, você deve atualizá-las também)

 

A solução foi instalar do jeito correto: criando variáveis de ambiente, como mostra este tutorial do Fabyo:

http://forum.imasters.com.br/index.php?/topic/125190-instalar-o-apache-php4-e-5-mysql/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na versão 4 do php, as funções mysql eram nativas a linguagem, mas com o fim do contrato tornou-se uma biblioteca terceira, "php_mysql.dll".

 

No php 5.3 a lib mysql, antiga "php_mysql.dll" foi "extinta" por que retornaram acordo de licenciamento e uso das funções de modo "nativo", por isso, o atual php não utiliza mais a lib php_mysql.dll que passou a ser "mysqlnd" somente.

 

Não há necessidade em copiar as dlls para pastas do sistema operacional.

 

Basta adicionar o PATH das libs do PHP na variável de ambiente "%PATH%".

 

obs: há casos específicos onde o mais fácil é jogar as dlls em folders do SO, como no caso de servidores de produção que não podem ser reiniciados, porque para tornar a modificação da variável de ambiente válida, é necessário reiniciar o sistema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu compilei o PHP a partir do fonte para instalar em Linux. Não tive nenhum problema

 

Quando eu suava Windows, tive um problema semelhante. A causa era o modo de instalação: assim como você, eu estava copiando esse monte de .dll para outros locais. Aí esqueci de atualizar um dos arquivos (as DLL's são bibliotecas dinâmicas que são modificadas nas versões do PHP. Logo, você deve atualizá-las também)

 

A solução foi instalar do jeito correto: criando variáveis de ambiente, como mostra este tutorial do Fabyo:

http://forum.imasters.com.br/index.php?/topic/125190-instalar-o-apache-php4-e-5-mysql/

 

Não entendi muito bem, mas o que entendi é que tinha que adicionar as variáveis "PHPEXT" e "PHP" ao meu computador. Entretanto, já exitiam as variáveis "Path" (C:\Arquivos de programas\PHP\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Arquivos de programas\MySQL\MySQL Server 5.1\bin) e PHPRC (C:\Arquivos de programas\PHP), mas de qualquer jeito, adicionei as variáveis PHPEXT e PHP.

 

Nada mudou.

 

Na versão 4 do php, as funções mysql eram nativas a linguagem, mas com o fim do contrato tornou-se uma biblioteca terceira, "php_mysql.dll".

 

No php 5.3 a lib mysql, antiga "php_mysql.dll" foi "extinta" por que retornaram acordo de licenciamento e uso das funções de modo "nativo", por isso, o atual php não utiliza mais a lib php_mysql.dll que passou a ser "mysqlnd" somente.

 

Não há necessidade em copiar as dlls para pastas do sistema operacional.

 

Basta adicionar o PATH das libs do PHP na variável de ambiente "%PATH%".

 

obs: há casos específicos onde o mais fácil é jogar as dlls em folders do SO, como no caso de servidores de produção que não podem ser reiniciados, porque para tornar a modificação da variável de ambiente válida, é necessário reiniciar o sistema.

 

Sim, eu já sabia que não existe mais a lib do mysql. Só não entendi o que quis dizer com adicionar o PATH das libs do PHP na variável do ambiente "%PATH%".

 

Agradeço à todos que estão tentando me ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim. Prefira instalação manual. Também não gosto desses pacotes mágicos que instalam tudo. :P

 

 

A variável PATH existe em todos os SO's (ou quase todos). Ela contém caminhos para programas executáveis, de forma que você pode executá-los a partir de qualquer diretório.

O que o hinom quis dizer, em suma, é para adicionar os caminhos dos executáveis e libs do PHP na PATH, ou seja, deixá-los acessíveis de qualquer diretório. Assim não precisa copiar arquivos de um lado para outro

 

Não posso ajudar muito além disso pois não conheço a instalação para Windows. Mas a ideia central é essa :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcos, pelo que descreveu, acho que entendi o problema.

Posso estar equivocado, mas acho que você não entendeu como deve ser configurado o %PATH% da variável de ambiente.

 

Pelo o que entendi você adicionou duas novas variáveis "PHPEXT" e "PHP", mas não é isso que deve ser feito.

 

O procedimento é simples, basta adicionar o "path" do diretório raíz do PHP dentro da variável de ambiente %PATH%

 

exemplo:

 

Esse é o valor atual da variável de ambiente %PATH% (postado no post #4)

C:\Arquivos de programas\PHP\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Arquivos de programas\MySQL\MySQL Server 5.1\bin

 

Esse é o caminho onde está o PHP, certo ?

C:\Arquivos de programas\PHP

 

Para adicionar o path basta fazer isso no valor da variável PATH, sem necessidade de criar novas variáveis:

 

C:\Arquivos de programas\PHP\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Arquivos de programas\MySQL\MySQL Server 5.1\bin;C:\Arquivos de programas\PHP

 

nota: em ambiente windows, os paths são separados por ";".

 

 

dicas:

- Procure estudar o básico sobre o sistema operacional com o qual trabalha.

- Conforme comentário do Beraldo, evite utilizar esses pacotes de instalação automatizada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado por tentar me ajudar, Himon (você foi o primeiro que realmente explicou o que falou), porém após fazer essas mudanças, o erro persiste.

 

Ps.: Estou também com um erro sem importância, porém chatinho; ao iniciar o Apache, a mensagem "PHP Error: syntax error, unexpected TC_STRING um etc/php.ini" aparece. Como disse, acho que o erro é insignificante, porém caso alguém saiba como concertá-lo, ficaria agradecido caso me disesse ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcos,

 

não se esqueça de que para surtir efeito das alterações nas variáveis de ambiente, é necessário reiniciar o sistema operacional..

 

Mas não entedi muito bem.. você comentou que o erro persisti mas mostrou que há outro erro na execução do script.

 

Se conseguiu executar é porque conseguiu instalar ,certo ?

Agora o problema decorrente parece outro assunto, que aliás, é uma mensagem que indica erro de sintaxe ou outro erro no php.ini

 

Quanto a instalação manual, que não é o foco do tema, apenas para esclarecer, isso é questão pessoal e cada um escolhe o que for conveniente para cada caso específico.

 

Recomendo instalar manualmente para aprender mais sobre os recursos do ambiente... nada contra pacotes de instalação automatizados.

Se quiserem discutir sobre isso, abram outro tópico para debater os prós e contras e se esbufetear a vontade. rs..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, Beraldo, como eu disse eu consegui instalar todas as versões do PHP fora essa 5.3.3 pois, em minha opinião, algo não foi explicado direito ou configurado direito pelos desenvolvedores dessa versão.

 

Marcos,

 

não se esqueça de que para surtir efeito das alterações nas variáveis de ambiente, é necessário reiniciar o sistema operacional..

 

Mas não entedi muito bem.. você comentou que o erro persisti mas mostrou que há outro erro na execução do script.

 

Se conseguiu executar é porque conseguiu instalar ,certo ?

Agora o problema decorrente parece outro assunto, que aliás, é uma mensagem que indica erro de sintaxe ou outro erro no php.ini

 

Reiniciar o sistema operacional? Você diz reiniciar o computador, pois isso já fiz... ;)

 

O que eu quis dizer é que há esse erro com o mysql e esse outro do TC_STRING no php.ini, que provavelmente não deve ser nada, já que consigo fazer códigos php, desde que estes não se conectem com o MySQL

 

Ps.: Obrigado por me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é só com o MySQL? Tente executar funções de outras libs. Se forem problemas com todas, seu extension_dir deve estar errado. Se for só com o MySQL, deve ser um problema com algum arquivo relacionado exclusivamente a ele

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal eu removi as conversas com conteúdo fora de contexto pois não há a necessidade delas

nem para o tópico e nem para a organização do fórum. Peço novamente que por gentileza foquem

na ajuda ao amigo Marcos ok?

 

Leiam o tópico abaixo por gentileza:

 

Orientacoes para uma boa participacao

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, desculpe ser meu ignorante, mas pode me dar um exemplo de código de outras lib para eu testar? (tenho todas instaladas).

 

Ps.: Alguém aí já tentou usar o PHP 5.3.3? Se sim, conseguiu?

 

Estou começando a achar algo estranho...

 

Lembra daquele erro que eu disse que estava ocorrendo. Bem, é esse daqui:

 

8Dec2010_160847-PHP_Error.PNG

 

E aponta para a linha short_open_tag = On [Portability].

 

Bem, será que como as extensões ficam no fim do php.ini, será que é possível que esse erro esteja impedindo que tudo após o short_open_tag = On [Portability] seja executado, incluindo as extensões?

 

Ps.: Já tentei excluir a linha, retirar o Portability e nada mudou (quero dizer, fazendo isso o Apache simplesmente não inicia)

 

O problema é só com o MySQL? Tente executar funções de outras libs. Se forem problemas com todas, seu extension_dir deve estar errado. Se for só com o MySQL, deve ser um problema com algum arquivo relacionado exclusivamente a ele

Desculpe ser meio ingorante, mas dá um exemplo de um código que posso usar como teste.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste as linhas 114 e 116 também. O erro pode estar na 114, que espera algo, mas encontra "short_open_tag" na 115

 

para testar outras libs, pode usar postgres, curl, gd... teste um imagecreatefromjpeg(), por exemplo, depois de ativar a extensão GD.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço imensamente à todos que estão me ajudando. Consegui solucionar o erro e, como pensava, o problema era o PHP mesmo, e não nós...rs

 

Eu percebi que com o [Portability], o PHP funcionava, embora não carregasse as extensões do MySQL, etc.

 

Sempre que eu excluia o [Portability], o Apache não ligava, então resolvi testar se acontecia o mesmo caso eu excluisse o [Portability] e tudo após isso. O que aconteceu é que o Apache ligou sem problemas. Raciocinei que o defeito estava no código que havia excluído, então fui o colocando de volta em etapas para tentar localizar onde estava o erro, e o erro está nessa extensão:

 

[php_PDO_MYSQL]
extension=php_pdo_mysql.dll

 

Simplesmente a excluí (e, claro, aquele [Portability] também) e pronto. Tudo funcionando perfeitamente!

 

Mais de uma semana perdida com um erro dos desenvolvedores do PHP. Ainda não sei o que tem de errado com aquela extensão, só sei que agora tudo está funcionando...rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já que isto é um erro (bug) do PHP porque você não contribui com os desenvolvedores

e reporta o bug a eles? Assim todos não iremos mais sofrer com estes problemas ;)

 

Abraços.

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.