PHPで有用なエラーメッセージを取得するにはどうすればよいですか?


583

多くの場合、私はPHPスクリプトを実行してみて、空白の画面を表示します。エラーメッセージはありません。ちょうど空の画面。原因は、単純な構文エラー(ブラケットの誤り、セミコロンの欠落)、関数呼び出しの失敗、またはその他の原因が考えられます。

何が悪かったのかを理解するのは非常に難しい。コードをコメントアウトしたり、どこにでも「エコー」ステートメントを入力したりして、問題を絞り込みます。しかし、もっと良い方法があるはずですよね?

Javaのように、PHPに有用なエラーメッセージを生成させる方法はありますか?




4
@JuannStrauss、それは過小評価しています。そして、最終的にエラーが表示されると、と表示されますT_PAAMAYIM_NEKUDOTAYIM。または、「整数のインスタンスである必要があります整数が指定されています」
Pacerier、2015

1
この上のチュートリアル:code2real.blogspot.com/2015/06/...
瞳孔

回答:


498

構文エラーの場合、php.iniでエラー表示を有効にする必要があります。エラーメッセージが「顧客」に表示されないようにするため、デフォルトではこれらはオフになっています。このページをチェックしてください 2つのディレクティブの詳細については、PHPのマニュアルに:error_reportingdisplay_errorsdisplay_errorsおそらく変更したいものです。php.iniを変更できない場合は、.htaccessファイルに次の行を追加することもできます。

php_flag  display_errors        on
php_value error_reporting       2039

error_reportingすべてのエラーを取得するために、PHPのバージョンにE_ALL(Gumboで言及されているように)の値を使用することを検討してください。より詳しい情報

その他の3つの項目:(1)すべてのエラーが含まれるため、エラーログファイルを確認できます(ログが無効になっていない場合)。(2)次の2行を追加すると、構文エラーではないエラーのデバッグに役立ちます。

error_reporting(-1);
ini_set('display_errors', 'On');

(3)別のオプションは、入力時にエラーをチェックするエディター(PhpEdなど)を使用することです。PhpEdには、より詳細な情報を提供できるデバッガーも付属しています。(PhpEdデバッガーはxdebugに非常によく似ており、エディターに直接統合されているため、1つのプログラムを使用してすべてを実行できます。)

カートマンのリンクもとても良いです:http : //www.ibm.com/developerworks/library/os-debug/


25
2039はの値ですE_ERROR | E_WARNING | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICEdocs.php.net/manual/en/errorfunc.constants.phpを
ガンボ

.htaccessファイルのオプションが好きです。公開ウェブサイトの一部ではない領域でデバッグするのに役立ちます。このヒントをありがとう!
jacekn 2013年

1
ロギングエラーをファイルに追加して(そこでエラーを検索する)最善の解決策です。ページ上のエラーの表示に依存しないでください。エラーが発生する可能性があります。本番サイトのエラー報告を忘れることがあります。これにより、将来トラブルが発生します
Ivan Yarych

455

以下はすべてのエラーを有効にします。

ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);

次のリンクも参照してください


28
これらの変更は.iniファイルレベルで行うのが最適です。スクリプト内からエラーレポートをオンにしても、構文エラーやコンパイルフェーズを強制終了するその他の致命的なエラーには役立たないため、役に立ちません。スクリプトは、実行を開始してレポートのオーバーライドに達するずっと前に強制終了されます。
マークB

あなたは確かに正しいです。自分のサーバーに移動することに気づきませんでした。
Eljakim、2011

6
phpinfo()を実行して、正しいphp.iniファイルを見つけます。Loaded Configuration File行を探します
11

1
コンパイルフェーズ中に発生するエラーを探している場合は、多くの場合/var/log/apache2/error.logにあるApacheログを確認してください
csi

1
厳密な型指定が有効になっている場合、php7ではこの回答は失敗します。2番目のパラメータini_setは文字列であるためです。
PeeHaa

175

次のコードはすべてのエラーを表示するはずです:

<?php

// ----------------------------------------------------------------------------------------------------
// - Display Errors
// ----------------------------------------------------------------------------------------------------
ini_set('display_errors', 'On');
ini_set('html_errors', 0);

// ----------------------------------------------------------------------------------------------------
// - Error Reporting
// ----------------------------------------------------------------------------------------------------
error_reporting(-1);

// ----------------------------------------------------------------------------------------------------
// - Shutdown Handler
// ----------------------------------------------------------------------------------------------------
function ShutdownHandler()
{
    if(@is_array($error = @error_get_last()))
    {
        return(@call_user_func_array('ErrorHandler', $error));
    };

    return(TRUE);
};

register_shutdown_function('ShutdownHandler');

// ----------------------------------------------------------------------------------------------------
// - Error Handler
// ----------------------------------------------------------------------------------------------------
function ErrorHandler($type, $message, $file, $line)
{
    $_ERRORS = Array(
        0x0001 => 'E_ERROR',
        0x0002 => 'E_WARNING',
        0x0004 => 'E_PARSE',
        0x0008 => 'E_NOTICE',
        0x0010 => 'E_CORE_ERROR',
        0x0020 => 'E_CORE_WARNING',
        0x0040 => 'E_COMPILE_ERROR',
        0x0080 => 'E_COMPILE_WARNING',
        0x0100 => 'E_USER_ERROR',
        0x0200 => 'E_USER_WARNING',
        0x0400 => 'E_USER_NOTICE',
        0x0800 => 'E_STRICT',
        0x1000 => 'E_RECOVERABLE_ERROR',
        0x2000 => 'E_DEPRECATED',
        0x4000 => 'E_USER_DEPRECATED'
    );

    if(!@is_string($name = @array_search($type, @array_flip($_ERRORS))))
    {
        $name = 'E_UNKNOWN';
    };

    return(print(@sprintf("%s Error in file \xBB%s\xAB at line %d: %s\n", $name, @basename($file), $line, $message)));
};

$old_error_handler = set_error_handler("ErrorHandler");

// other php code

?>

このコードで空白ページを生成する唯一の方法は、シャットダウンハンドラーでエラーが発生した場合です。これをテストせずに自分のcmsからコピーして貼り付けましたが、きちんと動作することを確認しています。


4
そのコードから空白のページが表示されます。「シャットダウンハンドラーにエラーがあります」とはどういう意味ですか?問題を解決するにはどうすればよいですか?
Paolo M

@PaoloM、彼はShutdownHandler上の関数でエラーを言っています。基本的に、これは適切なエラー処理の代わりの暫定的なハックです。
パーチェリア2014年

ありがとう、役に立ちましたがE_NOTICE、この機能のエラーを無効にするにはどうすればよいですか?
MajAfy 2015

これは正しい解決策ですが、エラーが発生した場合は情報開示に注意してください(ユーザーにエコーするのではなくログを優先してください)
Sam Jason Braddock

1
Symfonyが致命的なエラーを正しくキャッチできないときに、これを使用しています。
コイル2016

61

エラーと警告は通常、php.ini設定に表示される....\logs\php_error.log....\logs\apache_error.log、php.ini設定に依存します。

また、有用なエラーは多くの場合ブラウザに送られますが、有効なHTMLではないため、表示されません。

つまり、"tail -f「ログファイルと空白の画面が表示されたら、IEの「表示」->「ソース」メニューオプションを使用して、生の出力を表示します。


13
残念ながら、ページのソースを表示しても何も表示されません。
マシューシャーリー09/09/25

2
解析エラーは、他の場所での設定に関係なく、Apacheのエラーログに表示されます。サーバーを制御できない場合、Apacheエラーログを取得するのは難しいかもしれませんが、プロバイダーに相談することをお勧めします。エラーログを公開する方法はいくつかあります。それ以外の場合は、他に何があるかを提案することしかできません。本番環境にデプロイする前に、ローカル開発サーバーでエラーを解析するためにコードを確認してください。また、EclipseのPDTなどの検証IDEも非常に役立ちます。
Gussの

5
これに戻ると、最近、スタックオーバーフローの問題が発生しました。これはログでもエラーを生成せず、xdebugをサーバーにインストールするまで、そのようには現れませんでした。ああ。
Matthew Scharley、2011年

php.iniを変更できない場合は、.htaccessファイルを作成しますphp_flag display_errors 1
Tom

59

デバッグするファイルに次の行を含めることができます。

error_reporting(E_ALL);
ini_set('display_errors', '1');

これにより、php.iniのデフォルト設定が上書きされ、PHPがエラーをログに報告するようになります。


2
それは本当だ。この場合、値はiniで直接設定する必要があります-純粋な開発環境の場合は、とにかくこれが望ましい場合があります。
トマラック2009年

53

PHPの設定

php.iniの 2つのエントリがエラーの出力を指示します。

  1. display_errors
  2. error_reporting

生産display_errors通常に設定されているOff(生産拠点でのエラー表示が一般的に望ましいことではないので、良いことはどれ!)。

ただし、開発時にはOn、エラーが表示されるようにをに設定する必要があります。チェック

error_reporting(PHP 5.3以降)はデフォルトでE_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED(つまり、通知、厳密な標準、非推奨の通知を除いてすべてが表示される)に設定されています。疑わしい場合は、すべてのエラーE_ALLを表示するように設定してください。チェック

おっおっ!チェックなし!php.iniを変更できません!

残念です。通常、共有ホストはphp.iniファイルの変更を許可しないため、残念ながらそのオプションは利用できません。しかし恐れるな!我々は持っている他のオプションを

ランタイム構成

目的のスクリプトで、実行時にphp.iniエントリを変更できます。つまり、スクリプトの実行時に実行されます。甘い!

error_reporting(E_ALL);
ini_set("display_errors", "On");

これらの2行は、上記のphp.iniエントリを変更するのと同じ効果があります。驚くばかり!

まだ空白ページ/ 500エラーが発生します!

つまり、スクリプトは実行されていませんでした。これは通常、構文エラーがあるときに発生します。

構文エラーがあると、スクリプトはランタイムに到達しません。コンパイル時に失敗します。つまり、php.iniの値を使用します。変更していない場合、エラーが表示されない可能性があります。

エラーログ

さらに、PHPはデフォルトでエラーをログに記録します。共有ホスティングでは、問題のスクリプトと同じフォルダまたは専用フォルダにある可能性があります。

php.iniにアクセスできる場合は、error_logエントリの下にあります。


30

xdebug」と呼ばれる本当に便利な拡張機能があり、レポートをより優れたものにします。


2
確かに、これは非常に便利なデバッグツールです。完全なスタックトレースと変数ダンプなど、すべてのエラーメッセージをより詳細に表示します。
hbw 2009年

2
はい。そして、VimDebuggerプラグインのようなものを使用して、コードをステップ実行し、どこが間違っているかを見つけます。
サンダーマレシャル

1
ここでxdebugを使用したNetBeans。それはとても素晴らしいです。私はPHP(通常はASP.NET)を初めて使用し、以前にエコーステートメントを発行していました。
一部のカナック

30

私は常にこの構文をphpスクリプトの最上部で使用しています。

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 'On');  //On or Off

3
申し訳ありませんが、既に投稿されている他の回答を読んでいない場合は-1です。これは、すでに何度か言及されているように、.htaccessで処理されます。
Matthew Scharley、2009

12
通常の「無料ホスティング」は.htaccessを無視します
FDisk

27

迅速で実践的なトラブルシューティングのために、私は通常ここでSOを提案します:

error_reporting(~0); ini_set('display_errors', 1);

トラブルシューティング中のスクリプトの最初に配置されます。これは完璧ではありません。完璧なバリアントは、でそれを有効にし、php.iniPHPでエラーをログに記録して構文エラーと起動エラーをキャッチすることです。

ここで概説されている設定には、PHPのバージョンに関係なく、厳密なものを含むすべてのエラー、通知、警告が表示されます。

次に検討すること:

  • Xdebugをインストールし、IDEでリモートデバッグを有効にします。

同様に参照してください:


27

フックを登録して、最後のエラーまたは警告を表示することができます。

function shutdown(){
  var_dump(error_get_last());
}

register_shutdown_function('shutdown');

このコードをindex.phpの先頭に追加すると、問題のデバッグに役立ちます。


1
これは、エラーは表示されないがログへのアクセスは許可されないWebホストで立ち往生した人々にとっては純粋な金です
Rafael Mena Barreto

18

これは、ロードされた構成とランタイム構成の問題です

構文エラーまたは解析エラーがコンパイルまたは解析ステップ中に発生することを認識することが重要です。つまり、コードを実行する前にPHPがベイルします。したがって、display_errorsランタイム中にPHPの構成を変更する場合(これにはini_set、コードでの使用から、ランタイム構成ファイルである.htaccessの使用までが含まれます)、デフォルトでロードされた構成設定のみが機能します。

開発中のWSODを常に回避する方法

WSODを回避するには、ロードされた構成ファイルdisplay_errorsオンにerror_reporting設定されていることを確認する必要があります-1これは、実行しているPHPのバージョンに関係なくすべてのビットがオンになるため、同等のE_ALLです)。E_ALLの定数値をハードコーディングしないでください。その値は、PHPの異なるバージョン間で変更される可能性があるためです。

読み込まれた設定は、読み込まれたphp.iniファイルか、apache.confor httpd.confまたはvirtualhostファイルのいずれかです。これらのファイルは、起動段階(たとえば、Apache httpdまたはphp-fpmを最初に起動するとき)に一度だけ読み取られ、実行時の構成変更によってのみ上書きされます。ていることを確認して作るdisplay_errors = 1error_reporting = -1あなたが見ることはありませんことをご読み込まれた設定ファイルの性を保証してWSODをかかわらず、構文などのランタイム変更前に発生パースエラーのini_set('display_errors', 1);か、error_reporting(E_ALL);場所を取ることができます。

(php.ini)ロードされた構成ファイルを見つける方法

ロードされた設定ファイルを見つけるには、次のコードだけで新しいPHPファイルを作成します...

<?php
phpinfo();

その後であなたがブラウザや外観を指してロードされた設定ファイル解析された追加の.iniファイルあなたの一番上に通常ある、phpinfo()そしてすべてのロードされたコンフィギュレーションファイルへの絶対パスが含まれます。

(none)ファイルの代わりに表示される場合は、構成ファイル(php.ini)パスに php.iniがないことを意味します。したがって、PHPにバンドルされている標準のphp.iniをここからダウンロードし、php.iniとして構成ファイルのパスにコピーしてから、phpユーザーがそのファイルから読み取るための十分な権限を持っていることを確認してください。ロードするには、httpdまたはphp-fpmを再起動する必要があります。これは、PHPソースにバンドルされている開発用の php.iniファイルです。ですので、本番環境では使用しないでください!


本番環境ではこれを行わないでください

これは、開発中にWSODを回避するための最良の方法です。ここで行ったように、PHPスクリプトの上部ini_set('display_errors', 1);またはerror_reporting(E_ALL);上部に.htaccessを使用することを示唆している人は、ロードされた構成ファイルが(ここの場合のように)構文または解析エラーが発生したときにWSODを回避するのに役立ちませんたdisplay_errorsオフ。

多くの人々(およびPHPのdisplay_errors標準的なインストール)は、デフォルトでオフになっているproduction-iniファイルを使用します。これにより、通常、ここで経験したのと同じ不満が生じます。PHPは起動時にすでにオフになっているため、構文エラーまたは解析エラーが発生し、何も出力されずにベイルされます。ini_set('display_errors',1);PHPスクリプトの先頭でそれを回避する必要があると予想されますが、ランタイムに到達しないため、PHPがコードを解析できなくても問題ありません。


17

あなたが超クールなら、あなたは試すかもしれません:

$test_server = $_SERVER['SERVER_NAME'] == "127.0.0.1" || $_SERVER['SERVER_NAME'] == "localhost" || substr($_SERVER['SERVER_NAME'],0,3) == "192";

ini_set('display_errors',$test_server);
error_reporting(E_ALL|E_STRICT);

これは、ローカルで実行している場合にのみエラーを表示します。また、必要に応じて他の場所で使用するtest_server変数も提供します。

スクリプトが実行される前に発生するエラーは捕捉されませんが、私が行うエラーの99%では、それは問題ではありません。


2
ローカル環境と本番環境を区別している場合は、エラーをグローバルに(php.iniで)有効または無効にし、本番コードの可能性があるコードでは使用しないでください。プロダクション環境でプロダクションWebサイトをデバッグする必要があり、エラーのみを表示できるようにしたい場合は、を使用$_SERVER['REMOTE_HOST']して、クライアントがあなたであるかどうかを確認します。
Jaap Haagmans、2014年

17

ページの上部でパラメーターを選択します

error_reporting(E_ERROR | E_WARNING | E_PARSE);

16

これを永続化して快適にするために、php.iniファイルを編集できます。通常は/etc/php.iniまたは/etc/php/php.iniに保存さphp.iniれますが、ホスティングプロバイダーのセットアップガイドラインによっては、より多くのローカルによって上書きされる場合があります。一番上にあるphpinfo()ファイルをチェックして、Loaded Configuration File最後に読み込まれるファイルを確認します。

そのファイルでdisplay_errorsを検索します。3つのインスタンスしかなく、そのうち2つはコメントされています。

コメント化されていない行を次のように変更します。

display_errors = stdout

16

役に立たなければDunnoですが、これが私のphpプロジェクトの標準構成ファイルの一部です。私は自分のサーバーでもapacheの設定にあまり依存しない傾向があります。

私は消えるエラーの問題は一度もないので、おそらくここで何かがあなたにアイデアを与えるでしょう。

APPLICATON_LIVEを表示するように編集されました

/*
APPLICATION_LIVE will be used in process to tell if we are in a development or production environment.  It's generally set as early as possible (often the first code to run), before any config, url routing, etc.
*/

if ( preg_match( "%^(www.)?livedomain.com$%", $_SERVER["HTTP_HOST"]) ) {
    define('APPLICATION_LIVE', true);
} elseif ( preg_match( "%^(www.)?devdomain.net$%", $_SERVER["HTTP_HOST"]) ) {
    define('APPLICATION_LIVE', false);
} else {
    die("INVALID HOST REQUEST (".$_SERVER["HTTP_HOST"].")");
    // Log or take other appropriate action.
}


/*
--------------------------------------------------------------------
DEFAULT ERROR HANDLING
--------------------------------------------------------------------
Default error logging.  Some of these may be changed later based on APPLICATION_LIVE.
*/
error_reporting(E_ALL & ~E_STRICT);
ini_set ( "display_errors", "0");
ini_set ( "display_startup_errors", "0");
ini_set ( "log_errors", 1);
ini_set ( "log_errors_max_len", 0);
ini_set ( "error_log", APPLICATION_ROOT."logs/php_error_log.txt");
ini_set ( "display_errors", "0");
ini_set ( "display_startup_errors", "0");

if ( ! APPLICATION_LIVE ) {
    // A few changes to error handling for development.
    // We will want errors to be visible during development.
    ini_set ( "display_errors", "1");
    ini_set ( "display_startup_errors", "1");
    ini_set ( "html_errors", "1");
    ini_set ( "docref_root", "http://www.php.net/");
    ini_set ( "error_prepend_string", "<div style='color:red; font-family:verdana; border:1px solid red; padding:5px;'>");
    ini_set ( "error_append_string", "</div>");
}

@Eli、ただし、ページリクエストごとにランタイムオーバーヘッドがあります
Pacerier 2014年

デバッグ設定を見落とすがサーバーは構成されているが、展開または保守中(開発中)に適しているという概念に1を
加える

15
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
ini_set('html_errors', 1);

さらに、xdebugを使用すると、より詳細な情報を取得できます。


Xdebugはphp.iniから有効にできます
jewelhuq

15

PHPのエラーと例外をよりよく視覚化するには、Nette Tracyをお勧めします。

Nette Tracyスクリーンショット


3
Tracyは、すべての表示エラーとエラー報告オプションの適切な設定を考慮して、元の投稿で説明されているような状況で出力を提供します...したがって、このツールは、質問者への対処に特に役立ちます」
JanDrábek16年



9

独自のエラーハンドラーをPHPに登録できます。すべてのエラーをファイルにダンプすると、たとえば、これらのあいまいなケースで役立つ場合があります。現在のerror_reportingが何に設定されていても、関数が呼び出されることに注意してください。非常に基本的な例:

function dump_error_to_file($errno, $errstr) {
    file_put_contents('/tmp/php-errors', date('Y-m-d H:i:s - ') . $errstr, FILE_APPEND);
}
set_error_handler('dump_error_to_file');

7

PHPから有用なエラーを取得するために必要な2つの重要な行は次のとおりです。

ini_set('display_errors',1);
 error_reporting(E_ALL);

他の貢献者が指摘したように、これらはセキュリティ上の理由からデフォルトでオフになっています。便利なヒントとして-サイトを設定するときに、ローカル環境と開発環境でこれらのエラーがデフォルトでオンになるように、さまざまな環境の切り替えを行うと便利です。これは、次のコードで実現できます(理想的には、index.phpまたは設定ファイルにあるため、最初からアクティブになります)。

switch($_SERVER['SERVER_NAME'])
{
    // local
    case 'yourdomain.dev':
    // dev
    case 'dev.yourdomain.com':
        ini_set('display_errors',1);
        error_reporting(E_ALL);
    break;
    //live
    case 'yourdomain.com':
        //...
    break;
}


6

php.iniを開き、次のように設定されていることを確認します。

display_errors = On

サーバーを再起動します。


6

また、PHPStormをコードエディタとして試すこともできます。エディターに入力していると、多くのPHPやその他の構文エラーがすぐに見つかります。


6

あなたがubuntuユーザーであれば、あなたのターミナルに行き、このコマンドを実行してください

sudo tail -50f /var/log/apache2/error.log

最近の50個のエラーが表示されます。error.logすべてのエラーをログに記録するapache2のエラーファイルがあります。


5

完全なエラー報告をオンにするには、これをスクリプトに追加します。

error_reporting(E_ALL);

これにより、最小限の警告でも表示されます。そして、念のために:

ini_set('display_errors', '1');

エラーの表示を強制します。これは運用サーバーではオフにする必要がありますが、開発中はオフにしないでください。


Tomalakの回答と同様に、これは構文エラーに対しては機能しません。
ダリル・ハイン

5

「エラー」は、開発者が間違いを知り、システムを完璧に機能させるために解決するために最も役立つものです。

PHPは、コードの一部とエラーが発生する理由と場所を開発者に知らせるための優れた方法をいくつか提供しているため、これらのエラーを知ることにより、開発者はさまざまな方法でコードを改善できます。

すべてのエラーメッセージを取得するためにスクリプトの上部に次の2行を記述する最良の方法:

error_reporting(E_ALL);
ini_set("display_errors", 1);

IDEでxdebugなどのデバッガーツールを使用する別の方法。


4

完全なエラー報告(通知と厳密なメッセージを含む)を有効にすることができます。これは冗長すぎると感じる人もいますが、試してみる価値はあります。php.iniでに設定error_reportingE_ALL | E_STRICTます。

error_reporting = E_ALL | E_STRICT

E_STRICT 廃止された機能について通知し、特定のタスクを実行するための最良の方法に関する推奨事項を提供します。

通知は必要ないが、他のメッセージタイプが役立つ場合は、通知を除外してみてください。

error_reporting = (E_ALL | E_STRICT) & ~E_NOTICE

またdisplay_errors、php.iniで有効になっていることを確認してください。PHPのバージョンが5.2.4より古い場合は、次のように設定しOnます。

display_errors = "On"

バージョンが5.2.4以降の場合は、次を使用します。

display_errors = "stderr"

4

error_reportingおよびdisplay_errors ini設定の他に、WebサーバーのログファイルからSYNTAXエラーを取得できます。PHPを開発しているときに、開発システムのWebサーバーログをエディターに読み込みます。ページをテストして空白の画面が表示されると、ログファイルが古くなり、編集者がページを再読み込みするかどうか尋ねてきます。実行すると、一番下にジャンプし、構文エラーがあります。例えば:

[Sun Apr 19 19:09:11 2009] [error] [client 127.0.0.1] PHP Parse error:  syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\\webroot\\test\\test.php on line 9

3

nginxを使用していて、のファイルでも画面が白い場合<?php echo 123;。私の場合、nginx設定ファイルにPHPのこの必須オプションがありませんでした:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

このオプションはfastcgi_paramsファイルにはなかったため、PHPは機能せず、ログにエラーはありませんでした。


私は同じ問題を抱えていましたが、Nginxのデフォルト設定ファイルにその行がないためです。
セーラム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.