我在php:8.0-apachedocker 容器中托管的 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/
uj5u.com熱心網友回復:
我想出了什么問題:
我打電話時已經發送了狀態為 200 的標頭echo "...",所以http_response_code(400)被忽略了。
為了解決這個問題(和原因,它與默認配置我的電腦上作業)是設定output_buffering在php.ini一定的值,所以輸出不會立即發送。
log_errors=On
error_log=/dev/stderr
output_buffering=4096
見:https : //stackoverflow.com/a/8028987/1557025
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/351572.html
