[英]Docker web server always returns status 200
我在php:8.0-apache
docker 容器中托管的 Web 服務器有問題,總是返回狀態代碼 200,即使它設置為不同的值。 容器外的相同代碼正常工作
我的php.ini
文件是:
log_errors=On
error_log=/dev/stderr
和 php 代碼是:
... some code ...
http_response_code(400);
exit;
但我收到回復:
HTTP/1.1 200 OK
任何想法我的設置有什么問題?
編輯: docker 文件:
FROM php:8.0-apache
RUN echo "<?php echo '{some json content}'; http_response_code(400); exit; ?>" >> /var/www/html/index.php
COPY php.ini /usr/local/etc/php/
我想出了什么問題:
當我調用echo "..."
,已經發送了狀態為 200 的標頭,因此忽略了http_response_code(400)
。
要解決這個問題(以及它在我的電腦上使用默認配置的原因)是將php.ini
output_buffering
設置為某個值,因此不會立即發送輸出。
log_errors=On
error_log=/dev/stderr
output_buffering=4096
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.