Глядя на ссылку, они специально упоминают пробелы или выходные данные, которые могут вызывать проблемы, и просят вас проверить, что их нет до открытия тегов PHP и т. Д.
Причина, по которой они говорят об этом, заключается в том, что если вообще был какой-либо вывод, то PHP больше не сможет отправлять HTTP-заголовки!
Если ваши файлы выглядят нормально, то я предполагаю (даже гарантированно?), Что ваш display_errors
включен. В зависимости от уровня error_reporting
в вашем ini-файле, любое небольшое уведомление или предупреждение создаст вывод и, следовательно, остановит дальнейшие настройки заголовков HTTP.
Для лучшего ведения журнала ошибок (и, надеюсь, также исправим вашу ошибку), установите error_reporting
на -1
, поверните display_errors off
и установите пользовательский error_log
. Затем в терминале введите tail -f /path/to/error_log
. Ваши уведомления, предупреждения и ошибки теперь будут прокручиваться в реальном времени, не искажая отображение вашей веб-страницы.