teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答追記

2017/02/13 01:56

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -1,3 +1,29 @@
1
+ > ログを確認したところ、
2
+ > shutdown - Cannot modify header information - headers already sent by
3
+ > と表示されておりました。
4
+
5
+ レスポンスボディーが1文字(1byte)でも出力された後にレスポンスヘッダーを出力した場合に`headers already sent by ....`エラーとなります。
6
+ ソースファイル先頭が`<?php`(ショートタグが有効な場合は `<?`)で始まっていない場合はレスポンスボディーとして出力されてしまいます。
7
+ 当然ですが`include`/`include_once`/`require`/`require_once`で読み込んでいるファイルについても全てについてこの条件が適用されます。
8
+
9
+ `echo`/`print`/`var_dump()` などで何か出力している。
10
+ 以下のように`?>`で閉じた後に何か出力している(ソースコード上の改行コードも含まれます)
11
+
12
+ ```php
13
+ <?php
14
+ ?>
15
+ <?php
16
+ header('x-foo:var');
17
+ ?>
18
+ ```
19
+
20
+ 開発環境(ソースファイルの作成環境)にWindowsを使用している場合、
21
+ よくやるのがUTF-8(BOM付)でソースファイルを保存してしまっている事があります。
22
+ (`<?`の前にあるBOM2Byteがレスポンスボディーとして出力されるため)
23
+ メモ帳(norepad.exe)でファイルを保存するとBOM付になります。
24
+
25
+ ----
26
+
1
27
  > 真っ白になっていて
2
28
 
3
29
  HTTPステータス 500 Internal Server Errorが発生しているのでしょう。