7

CentOS 5.2 64 ビットで 1&1 の VPS を使用しています。

先週の火曜日、私は PHP をアップグレードし、Apache、MySQL、Perl などを含む他の多くのパッケージをアップグレードしなければならなかった ImageMagick をインストールしました。

問題は、すべての Web サイトが次のようになっていることです。

1.
2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/    xhtml1/DTD/xhtml1-transitional.dtd">

(出力前にすべての単一のPHPファイルに改行)

私も試してみましたが、運がありませんでしたob_start();die(trim(ob_get_clean()));新しい行は持続し続けます。

目立ったものは何もないので簡単にチェック/etc/php.iniしました。

私に何ができる?

4

2 に答える 2

6

暗所で撮影しますが、php.ini のauto-prepend-file値を確認してください。たまたま改行がある空白のデフォルト ファイルを指している可能性があります。

于 2013-02-12T05:34:16.393 に答える
3

これの最も可能性の高い原因は、末尾に空白があるベース インクルード ファイルです。インクルード ファイルに<?phpand?>タグの外側に改行やスペースなどの文字が含まれている場合、Apache は、ご覧のように応答の先頭に空白行を書き込みます。

残念ながら、インクルード チェーン内の任意のファイルが原因である可能性があります。共有ホスティング プロバイダーを使用している場合は、AlienWebguy の言及のように、おかしな php 自動インクルード動作や apache ディレクティブがないことを確認するために、サポートに連絡する必要がある場合があります。これは、インクルード ファイルのベスト プラクティスに関する Stack Overflow の良い質問です。(サード パーティの php テンプレート プラグインである Smarty には、最近/現在のリリースであっても、インクルード ファイルに予備の空白があったことも指摘しています。)

そして、空白のあるページを見つけて削除する方法については、次のような記事がありそうです。*nix-fu が十分に強力な場合は、正規表現を使用してファイル構造を grep し、そのような原因を見つけようとすることができます。予防的に、リンクされたSOの質問のマリオは、それについて警告できるいくつかのphpディレクティブを投稿します。これは、svnコミットフックにスローされ、そのような将来のエラーをキャッチできます。

于 2013-02-12T05:34:29.457 に答える