LiteSpeed Web Server logo LiteSpeed Web Serverユーザーズ・マニュアル

PHP

以下の設定は、従来の External App + Script Handler 方式よりも簡単にPHPハンドラーを設定する方法を提供します。古い設定がすでに存在する場合も、そのまま動作します。

LiteSpeedは一般的なコントロールパネル環境のPHPハンドラーも自動検出しようとします。そのため、PHPハンドラーをまったく設定する必要がない場合もあります。

目次

PHPグローバル設定

PHPハンドラー定義

PHPハンドラー既定値

分離モード

説明

PHPハンドラープロセスをメインのLiteSpeed workerプロセスから分離して実行します。

構文

ラジオボックスから選択

ヒント

パフォーマンス これにより、LiteSpeedの再起動後も分離されたPHPハンドラープロセスを継続して使用でき、新しいPHPハンドラープロセスを起動し直す必要がありません。

デフォルトPHPバージョン

説明

".php"ハンドラーがスクリプトハンドラーまたは"Handled suffixes"設定で明示的に設定されていない場合に、デフォルトの".php"ハンドラーとして使用するPHPバージョンの一覧です。
この一覧に基づき、最初に利用可能なPHPハンドラーが使用されます。

構文

PHPのメジャー番号とマイナー番号を組み合わせたXXを使う、phpXXバージョンのカンマ区切りリスト。

例

php74, php73, php72, php71, php70, php56

ヒント

情報 php52からphp56、およびphp70からphp74までのすべてのバージョンが利用できます。

コントロールパネル

説明

使用しているコントロールパネルに基づいてPHPハンドラーを自動検出します。
デフォルト値は"auto detect"です。

構文

ドロップダウンリストから選択

CloudLinux Alt PHP

説明

CloudLinux alt PHPハンドラーを検出します。
デフォルト値は"Yes"です。

構文

ラジオボックスから選択

SuEXECハンドラー

説明

suEXECモードのハンドラーに関連付けられるファイルサフィックスの一覧です。自動検出されるすべてのPHPハンドラーはsuEXECモードです。

構文

ファイルサフィックスのカンマ区切りリスト

例

php, php5, php7

ヒント

情報 ほとんどの場合、この設定は"Not Set"のままにできます。

ドメイン別PHPアプリ

説明

複数のドメインが同じシステムユーザーで実行される場合でも、ドメインごとに個別のLSPHPアプリケーションインスタンスを使用するかどうかを制御します。この設定はPHP suEXECとは無関係です。Pleskのopen_basedirパスなど、ドメインごとに異なるプロセスレベルのPHP設定が必要な場合に、個別のインスタンスが必要になることがあります。
はい:ドメインごとに個別のLSPHPアプリケーションを使用します。
いいえ:同じシステムユーザーで実行されるドメインはLSPHPアプリケーションを共有できます。
未設定:サーバーのデフォルト値であるいいえを使用します。

構文

ラジオボックスから選択

ヒント

パフォーマンス この設定はグローバルに適用され、リソース使用量が増加する可能性があります。選択したバーチャルホストだけで専用PHPハンドラーを有効にするには、代わりにApacheスタイルのDedicatePhpHandler onディレクティブを使用します。

PHPハンドラー定義

説明

"Handler ID", "Command"、および任意の"Handled Suffixes"だけを指定して、カスタムPHPハンドラーを追加します。この方法では、外部アプリケーションと関連するスクリプトハンドラーが自動的に追加されます。
サーバーレベルで同じ"Handler ID"または"Command"を使って明示的に定義された外部アプリケーションの方が、より高い優先度を持ちます。

ヒント

情報 自動検出されたPHPハンドラーが正しく動作するはずなので、これらの設定は不要な場合があります。

ハンドラーID

説明

このPHPハンドラーのコマンドを処理対象サフィックスに関連付けるための一意のIDです。このID自体も処理対象サフィックスとして扱われます。
よく使われるIDには"phpXX", "alt-phpXX", "ea-phpXX"があります。

例

php72

ヒント

情報 ID "php72" のハンドラーを追加すると、サフィックス ".php72" のファイルと MIMEタイプ "application/x-httpd-php72" は自動的にこのハンドラーで処理されます。

コマンド

説明

PHPハンドラーを起動するために使用するコマンドです。

ヒント

情報 通常は"lsphp"バイナリへのパスです。

処理対象サフィックス

説明

このハンドラーで処理する追加のファイル"suffixes"です。

ヒント

情報 指定したファイルサフィックスに対してスクリプトハンドラーが明示的に設定されている場合、この設定は無視されます。

PHPハンドラー既定値

説明

PHPハンドラー定義 で定義されたハンドラーのデフォルト設定を指定します。

最大接続数

説明

サーバーと外部アプリケーションの間で確立できる同時接続の最大数を指定します。 この設定は、外部アプリケーションによって同時に処理できる要求の数を制御しますが、実際の制限は外部アプリケーション自体によっても異なります。 この値を高く設定すると、外部アプリケーションの速度が不十分であるか、多数の同時要求に対応できない場合に役立ちません。

構文

整数

ヒント

パフォーマンス高い値を設定しても、高いパフォーマンスに直接変換されるわけではありません。 制限を外部アプリケーションに負荷をかけない値に設定すると、最高のパフォーマンス/スループットが得られます。

環境

説明

外部アプリケーション用の追加の環境変数を指定します。

構文

Key=value. 複数の変数は "ENTER"で区切ることができます。

初期リクエストタイムアウト(秒)

説明

新しく確立された接続で、外部アプリケーションが最初のリクエストに応答するまでサーバーが待機する最大秒数を指定します。 このタイムアウト内に外部アプリケーションからデータを受信しない場合、サーバーはこの接続を不良としてマークします。 これにより、外部アプリケーションとの通信問題をできるだけ早く特定できます。 処理に時間がかかるリクエストがある場合は、503エラーメッセージを避けるためにこの制限を増やしてください。

構文

整数

リトライタイムアウト(秒)

説明

以前に通信問題が発生した外部アプリケーションを再試行する前に、サーバーが待機する時間を指定します。

構文

整数

接続のKeep-Aliveタイムアウト

説明

アイドル状態の永続接続を開いたままにする最大秒数を指定します。

"-1"に設定すると、接続はタイムアウトしません。0以上に設定すると、この秒数が経過した後に接続が閉じられます。

構文

整数

応答バッファリング

説明

外部アプリケーションから受信したレスポンスをバッファリングするかどうかを指定します。 "nph-"(Non-Parsed-Header)スクリプトが検出された場合、完全なHTTPヘッダーを持つレスポンスではバッファリングがオフになります。

構文

ドロップダウンリストから選択

バックログ

説明

リスニングソケットのバックログを指定します。 自動起動が有効な場合は必須です。

構文

整数

起動時に実行

説明

サーバー起動時に外部アプリケーションを起動するかどうかを指定します。 自身の子プロセスを管理でき、インスタンスの値が"1"に設定されている外部アプリケーションにのみ適用されます。

有効にすると、外部プロセスは実行時ではなくサーバー起動時に作成されます。

"Yes (Detached mode)"を選択した場合、デタッチされたすべてのプロセスは、サーバーレベルでは$SERVER_ROOT/admin/tmp/配下、 バーチャルホストレベルでは$VH_ROOT/配下の'.lsphp_restart.txt'ファイルにtouchすることで再起動できます。

デフォルト値:Yes (Detached mode)

構文

ラジオボックスから選択

ヒント

パフォーマンス Railsアプリのように、設定された外部プロセスの起動オーバーヘッドが大きい場合は、 このオプションを有効にすると最初のページ応答時間を短縮できます。

最大アイドル時間

説明

外部アプリケーションがサーバーによって停止され、アイドルリソースが解放されるまでの最大アイドル時間を指定します。 "-1"に設定すると、ProcessGroupモードで実行されている場合を除き、外部アプリケーションはサーバーによって停止されません。 ProcessGroupモードでは、アイドル状態の外部アプリケーションは30秒後に停止されます。

デフォルト値:-1

構文

整数

ヒント

パフォーマンス この機能は大量ホスティング環境で特に便利です。 あるバーチャルホストが所有するファイルに、別のバーチャルホストの外部アプリケーションスクリプトからアクセスされるのを防ぐため、 SetUIDモードで多数の異なるアプリケーションを同時に実行する必要があります。 これらの外部アプリケーションが不要にアイドル状態のままにならないよう、この値を低く設定してください。

優先度

説明

外部アプリケーションプロセスの優先度を指定します。値の範囲は-20から20です。 数字が小さいほど優先度は高くなります。外部アプリケーションプロセスはWebサーバーより高い優先度を持つことはできません。 この優先度がサーバーより小さい数値に設定されている場合、この値にはサーバーの優先度が使用されます。

構文

整数

参照

Server 優先度

メモリソフトリミット(バイト)

説明

外部アプリケーション・プロセスまたはサーバーによって開始された外部アプリケーションのメモリー消費制限をバイト単位で指定します。

この制限の主な目的は、ソフトウェアのバグや意図的な攻撃のために過度のメモリ使用を防止し、通常の使用に制限を設けないことです。 十分なヘッドスペースを確保してください。そうしないと、アプリケーションが失敗し、503エラーが返される可能性があります。 サーバーレベルまたは個々の外部アプリケーションレベルで設定できます。 サーバーレベルの制限は、個々のアプリケーションレベルで設定されていない場合に使用されます。

オペレーティングシステムのデフォルト設定は、値が両方のレベルにないか、0に設定されている場合に使用されます。

構文

整数

ヒント

注意この制限を過度に調整しないでください。 アプリケーションでより多くのメモリが必要な場合は、503のエラーが発生する可能性があります。

メモリハードリミット(バイト)

説明

ソフトリミットをユーザープロセス内のハードリミットまで上げることができることを除けば、メモリソフトリミット(バイト)と同じくらい同じです。 ハード・リミットは、サーバー・レベルまたは個々の外部アプリケーション・レベルで設定できます。 サーバーレベルの制限は、個々のアプリケーションレベルで設定されていない場合に使用されます。

値が両方のレベルにないか、0に設定されている場合、オペレーティングシステムのデフォルトが使用されます。

構文

整数

ヒント

注意この制限を過度に調整しないでください。アプリケーションがより多くのメモリを必要とする場合、503エラーが発生する可能性があります。

プロセスソフトリミット

説明

ユーザーに代わって作成できるプロセスの総数を制限します。 既存のすべてのプロセスは、開始される新しいプロセスだけでなく、この限度に対してカウントされます。

制限は、サーバーレベルまたは個々の外部アプリケーションレベルで設定できます。 サーバーレベルの制限は、個々のアプリケーションレベルで設定されていない場合に使用されます。 この値が0または両方のレベルにない場合、オペレーティングシステムのデフォルト設定が使用されます。

構文

整数

ヒント

情報 suEXECモードでLSWSがユーザーに対して行うプロセスの数を制御するには、suEXEC Max Conn設定を使用します。 PHPスクリプトはプロセスをフォークするために呼び出すことができ、通常の機能に必要なプロセスの数はsuEXEC Max Connの設定を上回る可能性があります。 この制限の主な目的は、フォーク爆弾や他のプロセスを作成するPHPプロセスによって引き起こされる他の攻撃を防ぐための最終防衛線です。
この設定を低すぎると、機能が著しく損なわれる可能性があります。 この設定は特定のレベル以下では無視されます。
suEXECデーモンモードを使用する場合、親プロセスが制限されないように、実際のプロセス制限はこの設定よりも高くなります。

プロセスハードリミット

説明

ソフトリミットをユーザープロセス内のハードリミットまで上げることができることを除けば、プロセスソフトリミットとほとんど同じです。 ハードリミットは、サーバー・レベルまたは個々の外部アプリケーションレベルで設定できます。 サーバーレベルの制限は、個々のアプリケーションレベルで設定されていない場合に使用されます。 オペレーティングシステムのデフォルト値は、値が両方のレベルにないか、0に設定されている場合に使用されます。

構文

整数