私はこれが何度も尋ねられたことに気づき、答えは通常PHPタグの前後の空白ですが、すべてのファイルをチェックしましたが、これの証拠は見つかりませんでした。
Wordpressを使用していて、デバッグモードをオンにしています。私のサイトは1つのドメインで動作しますが、最近新しいサーバーに移動し(LinuxでApacheを実行しています。共有からVPSに移動しました)、新しいドメインを提供しました。私が変更したのは次のとおりですwp-config.php
:
define('DB_NAME', 'new db name');
define('DB_USER', 'new db user');
define('DB_PASSWORD', 'new db password');
define('WP_HOME','new url');
define('WP_SITEURL','new url');
しかし、今はログインできません。Cookieが設定されていないという事実に絞り込みました。訪問するwp-login.php
と、次のエラーが発生します。
Warning: Cannot modify header information - headers already sent by (output started at /home/rcnhca/public_html/wp-includes/load.php:270) in /home/rcnhca/public_html/wp-login.php on line 368
Warning: Cannot modify header information - headers already sent by (output started at /home/rcnhca/public_html/wp-includes/load.php:270) in /home/rcnhca/public_html/wp-login.php on line 380
注:wp-login.php
とは両方ともload.php
コアWordpressファイルです。
の368行目wp-login.php
は次のとおりです。
header('Content-Type: '.get_bloginfo('html_type').'; charset='.get_bloginfo('charset'));
380行目:
setcookie(TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN);
の270行目load.php
は次のとおりです。
ini_set( 'display_errors', 1 );
ただし、次の警告も受け取ります。
Warning: ini_set() has been disabled for security reasons in /home/rcnhca/public_html/wp-includes/load.php on line 270
これは、Suhosin PHPパッチがインストールされているためだと思いますが、これについては明確ではありません。より脆弱なバージョンのPHPを実行したくありません。
このエラーが発生している理由を理解できません。テーマのPHPファイルのいずれにも末尾の空白がありません。
注:これを解決するために出力バッファリングを使用できることも理解していますが、デバッグ機能に影響を与えるワンサイズのすべてのパッチを適用するのではなく、問題が発生している場所を理解したいと思います。