簡體   English   中英

Docker Web 服務器總是返回狀態 200

[英]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

見: https : //stackoverflow.com/a/8028987/1557025

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM