2009-10-13 39 views
0

我在CentOS 5.3系統上升級了php-commonphp-devel包。現在,當我嘗試訪問任何PHP腳本在瀏覽器中,我得到的垃圾這樣的:PHP升級問題 - 這是一個編碼錯誤?

alt text http://javierdesign.com/error.jpg

如果我試着捲曲獲得頁面,或嘗試在瀏覽器中一切看起來普通的HTML,CSS和JS好。

在PHP本身和通過「Content-Type:text/html; charset = UTF-8」的PHP輸出中,編碼設置爲UTF-8。

我失去了什麼可能導致的變化?有任何想法嗎??

+0

你嘗試過,如果phpinfo()工作? – 2009-10-13 15:22:30

+0

是的,一個簡單的phpinfo()輸出一切OK – 2009-10-13 15:25:18

+0

你可以包含前幾個字符嗎?我猜這是gzip的內容,但沒有看到開始 – Greg 2009-10-13 15:26:31

回答

2

我們曾經這樣做過。我相信這與gzip有關。

嘗試修改從原始值Offzlib.output_compressionOn

+0

Apache 2,並且是gzip啓用,但不能說,但我相信在我的3個小時試圖解決這個今天,我試圖禁用DEFLATE無濟於事... – 2009-10-13 15:26:19

+1

嗯, - 我之前沒有嘗試過的一件事是將zlib.output_compression從原來的值Off更改爲On,從而解決了問題。 Yeeha!您可能希望將其添加到您的答案中,因爲我無法編輯其他帖子,那麼我可以將其標記爲已接受。謝謝你的提示。 – 2009-10-13 15:31:14

1

哇。是的,這很不尋常。我的第一個想法是,Apache中的MOD_PHP位必須以某種方式被搞砸(或者在你使用的任何web服務器中等價),或者它綁定了錯誤的MIME類型,或者什麼......但是由於php不是' t(減去一個解釋器)編譯的代碼,如果它真的是虛擬的,那麼你只會看到純文本,或者根本沒有,而不是二進制的亂碼。看起來更像服務器處理.php作爲某種二進制文件類型。

我會清除這些軟件包並重新安裝它們。最初是從「庫存」包安裝,還是有人從源代碼編譯它們?如果他們是第一次編譯,有人可能會設置未在官方軟件包中設置的選項,這可能會導致您的問題。

可能是某種編碼問題,但由於您剛剛升級這些軟件包,那將是我要開始的地方。

+0

遵循了MIME類型的推理,儘管現在我認爲請求標頭「Accept-encoding:gzip,deflate;」欺騙PHP將gzip中的內容再次壓縮,這不會發生在CURL中。 – 2009-10-13 15:41:27