ビジネスが発展し、Web サイトへのアクセス数が増加するにつれて、多くの場合、長時間かかる PHP スクリプトを実行する必要があります。ただし、PHP のデフォルトのタイムアウトはわずか 30 秒であり、ビジネス ニーズを満たすには程遠いです。この問題を解決するには、PHP のタイムアウト時間を変更する必要があります。
PHP タイムアウトを変更する方法は次のとおりです。
php.ini を変更する
#これは、php.ini ファイルの max_execution_time パラメータを変更する最も一般的な方法です。 , PHP のタイムアウトを変更できます。 php.ini ファイルで次の内容を見つけます。
; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 30
ログイン後にコピー
max_execution_time パラメータを 30 秒より大きい値に変更します。
php.ini ファイルの変更が機能しない場合は、PHP が現在どの php.ini ファイルを使用しているかを確認する必要があることに注意してください。これは、phpinfo() 関数を使用して PHP コードで表示できます。
コードで set_time_limit() を使用する
set_time_limit() 関数は、スクリプト実行の最大時間を変更するために使用できる PHP の組み込み関数です。たとえば、コードの先頭に次のコードを追加します。
set_time_limit(600);
ログイン後にコピー
PHP スクリプトの最大実行時間は 600 秒、つまり 10 分に設定されます。
パラメータに 0 が渡された場合、実行時間制限が解除され、スクリプトの実行を継続できることを意味します。
Apache での設定
PHP が Apache モジュールとして実行されている場合は、.htaccess ファイルの php_value を変更することで PHP タイムアウトを変更できます。
次のコードを .htaccess ファイルに追加します。
php_value max_execution_time 600
ログイン後にコピー
この時点で、PHP の最大実行時間は 600 秒、つまり 10 分に設定されます。
Nginx または FastCGI で設定する
Nginx または FastCGI を使用している場合は、設定ファイルに次のコードを追加できます。
fastcgi_read_timeout 600;
ログイン後にコピー
現時点での最大実行時間は、時間は 600 秒、つまり 10 分に設定されます。
PHP-FPM での設定
PHP-FPM を使用している場合は、php-fpm.conf または www.conf ファイルを変更することで PHP タイムアウトを設定できます。ここでは、例として php-fpm.conf ファイルを取り上げます。
次の内容を見つけます。
; Process timeouts in seconds. Negative values disable timeouts.
; Default Value:
; process.timeout = 0s
process.timeout = 30s
ログイン後にコピー
process.timeout パラメータを 30 秒より大きい値に変更します。
まとめ
上記はPHPのタイムアウトを変更する方法ですが、環境や用途に合わせて、PHPのタイムアウトを変更する方法を使い分けてください。さらに、Web サイトのパフォーマンスと安定性を向上させるために、PHP メモリ制限 (memory_limit) や Apache または Nginx サーバー要求の応答時間などのパラメーターの調整にも注意を払う必要があります。
以上がPHPでタイムアウトを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。