2011-01-31 7 views
2

日本のサーバーにアプリケーションをデプロイしています。アプリケーションは、私の会社が販売している製品であり、このような問題がなくても他の多くのサーバーに正常にインストールされています。 アプリケーションはPHP/CodeIgniterで書かれており、同じパッケージが他のサーバで正常にテストされました。PHPが疑問符を出力する

問題は、アプリケーションがいくつかの疑問符を表示するだけです(そして、同じコードが他のサーバー上で動作するにもかかわらず、特定のクラスが見つからないというエラーで死んでしまいます)。一部のアプリケーションファイルはZend Guardでエンコードされています.Zend Optimizerは両方のサーバで利用できます。 私が試してみました何/アウトが見つかりました:両方のサーバーで 1)主なPHPのバージョンが

2)のZend Optimizerのバージョンは3.3.9 same-

3)クエスチョンマークですsame- 5.2.xではあります

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)アプリケーションは、ポイントで死ぬところなし:wgetので出力をファイルにパイプして、ファイルのほとんどは3Fが含まれていEditorの間にいくつかのランダムなHEXシンボルと、HEXでそれを開いたmarks-実際の質問であります出力はまだ送信されているはずです。

5)PHPの設定に関連していると思われますが、これまでphp.iniのdefault_charsetを 'utf-8'に設定しようとしましたが、何も変わりません。

6)アプリケーションがクラッシュするポイントへの期待される出力は、何も出力されないはずです。代わりに、私は上記の出力を得ます(それはそのように続きます)。

編集: 私はどこかに行っていると思いますが、問題はZend Optimizerにあります。エンコードされたファイルの置換が助けられ、出力は期待通りです。これは別の問題、つまりZend Optimizerの何が問題なのかを伝える方法を作り出します。 Zend Optimizerの同じバージョンで、エンコードされたファイルが別のサーバでテストされ、うまく動作しました。 PHPのバージョンは5.2.14で動作し、5.2.13はエンコードされたファイルが動作しないサーバで動作します。

+2

私は、答えを知っていないと-確認してください。しかし、http://serverfault.comでもお試しください。 – Stephen

+0

1)httpヘッダーで疑わしいものは何ですか? 2)デフォルトのWebサーバーのエンコードの問題? –

+0

この入力は送信されていますか?ゴミ入れ、ゴミ出し。あなたは本当に問題を考えるのに十分な情報を与えていません。確かに知っているのは、奇妙な何かをしているミステリーコードXを持っていて、予想される出力、コードの内容、 – Incognito

答えて

0

のphp.ini:

zend_optimizer.enable_loader=0 

エラーはいえ十分に不可解だった...

1

問題のファイルの最初の行に移動し、echo 'flag1';を追加します。最初のinclude()に移動し、その後にecho 'flag2';を追加します。 include()とファイルの最後にもう1つ続けます。これは疑問符がどこから始まっているかを示し、正確な情報源が見つかるまでそれらを動かすことができます。

このプロセスによってCodeIgniterライブラリが表示される場合は、コードにバグがあり、そのコードでバグが発生する可能性があります。

+0

このおかげで、私はこの退屈な作業をしたくなかったが、これは問題の原因となるZendオプティマイザに私をもたらした。 – fest