PHP gera pontos de interrogação

1

Estou implantando um aplicativo em um servidor no Japão. O aplicativo é um produto que minha empresa está vendendo e foi instalado com sucesso em muitos outros servidores sem esses problemas. O aplicativo é escrito em PHP / CodeIgniter e o mesmo pacote foi testado com sucesso em outros servidores.

O problema é que o aplicativo mostra apenas alguns pontos de interrogação (e, em seguida, ele morre com um erro, que uma determinada classe não é encontrada, embora o mesmo código funcione em outro servidor). Alguns arquivos de aplicativo estão codificados com o Zend Guard-Zend Optimizer disponível em ambos os servidores. O que eu tentei / descobri:

1) A versão principal do PHP em ambos os servidores é a mesma - 5.2.x

2) As versões do Zend Optimizer são as mesmas - 3.3.9

3) Os pontos de interrogação são, na verdade, pontos de interrogação - canalizou a saída para o arquivo com o wget e o abriu no editor HEX - o arquivo contém principalmente 3F, com alguns símbolos aleatórios HEX entre:

0000000: 3f3f 3f3f 3f3f 3f3f 3f3f 3f01 3f3f 3f3f  ???????????.????
0000010: 3f3f 3f3f 3f3f 3f3f 3f3f 203f 3f3f 3f3f  ?????????? ?????
0000020: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000030: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000040: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000050: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000060: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000070: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000080: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000090: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
00000a0: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
00000b0: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
00000c0: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
00000d0: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
00000e0: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
00000f0: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000100: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000110: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000120: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000130: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????

4) Eu suspeito, que o problema está relacionado com as configurações do PHP - até agora, eu tentei definir o default_charset como 'utf-8' no php.ini, mas isso não muda nada.

5) A saída esperada para o ponto em que o aplicativo trava não deve ser nada - nenhuma saída. Em vez disso, recebo a saída acima (continua dessa maneira).

6) O PHP é executado sob o Apache como um módulo.

Alguma idéia do que pode causar isso? Os arquivos foram copiados para o servidor scp'ing o arquivo e descompactá-lo no servidor.

Estes são os cabeçalhos de resposta - não vejo nada suspeito lá.

Date    Mon, 31 Jan 2011 16:09:34 GMT
Server  Apache/2.0.63 (Red Hat)
Content-Length  5339
Keep-Alive  timeout=15, max=100
Connection  Keep-Alive
Content-Type    text/html; charset=utf-8

Eu fiz essa pergunta no stackoverflow.com primeiro, mas decidi republicar aqui: link

EDIT: Eu acho que estou chegando a algum lugar, o problema é com o Zend Optimizer. A substituição dos arquivos codificados ajudou e a saída é conforme o esperado. Isso cria outro problema - como saber o que está errado com o Zend Optimizer? Os arquivos codificados foram testados em diferentes servidores com a mesma versão do Zend Optimizer, e eles rodam bem. Versões PHP são 5.2.14 no servidor que funciona, vs 5.2.13 no servidor onde os arquivos codificados não funcionam.

    
por fest 31.01.2011 / 17:16

1 resposta

1

php.ini:

zend_optimizer.enable_loader=0

O erro foi enigmático, embora ...

    
por 31.01.2011 / 18:11