ホームページ  >  に質問  >  本文

サイトごとに php.ini ディレクティブを設定する

<p>Ubuntu サーバー上の Apache2 と PHP で複数のサイトを実行しています。 PHP には、 <code>upload_max_filesize</code> 、 <code>max_file_uploads</code> 、 <code>upload_tmp_dir</code> などの値を設定できる php.ini ファイルがあることは知っています。ただし、これにより、1 つの値がすべてのサイトに適用されます。 </p> <p>各サイトにディレクティブを設定するにはどうすればよいですか?例: <code>sitea.com</code> の <code>upload_max_filesize</code> を 50M に設定し、<code>siteb.com<の <code>upload_max_filesize</ を設定したいとします。 ;/code>code> は 5M に設定されます。 </p> <p>同様に、サイトごとに一意の <code>session.name</code> を設定したいと思います。どうすればこれを達成できるでしょうか? <code>PHP_INI_USER</code>、<code>PHP_INI_PERDIR</code>、<code>PHP_INI_SYSTEM</code>、<code>PHP_INI_ALL</code>というものがあると読みました。では、どうすればよいですか私がやる? </p>
P粉283559033P粉283559033441日前545

全員に返信(2)返信します

  • P粉320361201

    P粉3203612012023-08-28 22:34:33

    Mike 'Pomax' Kamermans からの明示的なコメント は、これを行う方法を説明しています。ただし、PHP のマニュアルドキュメントは少し不快な場合があります。

    他の回答についてもいくつか説明します:

    • PHP パーサー ファイル (Lajos Arpad で説明) を使用すると、いくつかのセキュリティ リスクと、実際には必要のない多くのエンコード、構文、および一部の処理オーバーヘッドが追加されます。

    • .htaccess 特定の PHPインストールに対してカスタムiniディレクティブを設定することは確かに可能ですが、「FastCGI」または「CGI」(場合によってはsuPHP)を使用している場合は、 ) ) PHP をインストールすると、実際には 500 エラーでサイトがクラッシュするため、ここで説明されているようにローカルの .user.ini ファイルを使用してください。 自分の SAPI はどうやって見つけますか?

    • PHP を Apache モジュール (mod_php など) として実行している場合は、.htaccess を使用します。 自分の SAPI はどうやって見つけますか?

    PHP suPHP/FastCGI/CGI SAPI

    それでは、あなたの願いはどのように叶えられるのでしょうか?

    1) コア PHP.ini の詳細を見つけます。

    現在の PHP バージョンの PHP.ini ファイルを読み取ります。

    180 行目 (PHP 8.1 の場合) は次のようになります:

    値をメモしておきます。 (この例に示すように) をカスタマイズすることをお勧めします。この値は、グローバル PHP.ini ファイルのアカウント固有の「ローカル」設定を保持するサーバー上の各一意のアカウントに配置されるファイルのファイル名です。

    このファイルは通常、public_html フォルダーにあります。したがって、デフォルトで非表示になるように、. で始まる必要があります (これについては後で詳しく説明します)。このファイルが存在しない場合、アカウントのコア PHP 設定は変更されません。

    2) ファイル名を記憶/設定し、新しいルールを作成します

    これで、カスタム PHP ファイルの名前がわかり、設定できました。次に、アカウントでファイルを生成し、このアカウントに対して個別にカスタマイズする PHP.ini 設定を設定できます。

    ###例えば;###

    には次のサンプル情報が含まれます:

    リーリー

    この情報は PHP によって解析され、コア PHP.ini 内の対応する値をオーバーライドしますが、そのアカウントのみが対象となります。

    3) 各アカウントの必要に応じてカスタマイズします

    たとえば、siteb.com php ユーザー ini ファイルの場合、次のようになります。

    には次のサンプル情報が含まれます:

    リーリー

    各アカウントの

    phpinfo()

    を調べて、表示されているローカルおよびコアの違いに注目することで、これらのアカウント設定が正しく設定されていることを確認できます。 4) テストと確認

    /public_html/

    パスにあるコアの user.ini ファイルは、そのアカウントで処理されるすべてのサブファイル/フォルダーに必要なすべてである必要があります (これは、正確な LAMP サーバーの設定に依存する場合があります)および PHP ハンドラー)。 先ほども述べたように、テスト ini ファイルを設定したら、

    phpinfo()

    を実行して、その値が実装されているかどうかを確認する必要があります。

    phpinfo()

    を使用したくない場合は、簡単に [ini_get](https://www.php.net/manual/en/function .ini-) を使用できます。 get) 機密データをブラウザの代わりにエラー ログにダンプします。 リーリー

    5) セキュリティ

    user.ini ファイルは通常、ディレクトリ内で非表示にするために . 文字で始まりますが、ブラウザ エージェントがアクセスできないという意味ではないため、ファイルに数行追加することをお勧めします。 .htaccess を使用して、このファイルへのアクセスを拒否します。

    リーリー

    最終的な考え:

    Core PHP.ini 値は PHP の新しいバージョンでは変更されるため、ベスト プラクティスは、PHP バージョンごとに異なるローカル .ini ファイルを使用することです (.account-php80.ini 、 <代码>.account-php81.ini など)。上記の手順 1 で説明したように、各 php.ini コアはそれぞれのローカル user.ini ファイルを明示的に呼び出す必要があることに注意してください。

    上記の原則 は PHP マニュアル にまとめられています。次の点に注意する必要があります。

    返事
    0
  • P粉144705065

    P粉1447050652023-08-28 14:10:59

    サイトごと (またはフォルダーごと) .htaccess ファイルを使用して PHP 構成値を設定できます - 少なくともほとんどのセットアップでは: 構成ディレクティブで を確認した場合document、フラグ PHP_INI_PERDIR または < code>PHP_INI_ALL については、PHP php_value または php_flag コマンドを使用できます。 .htaccess これらの内容をファイル="https://www.php.net/manual/ja/configuration.changes.php" rel="nofollow noreferrer">「構成設定の変更方法」に設定します。 ###ドキュメンテーション 。

    たとえば、Web サイトで

    upload_max_filesize を設定するには、Web サイトのドキュメント ルートに .htaccess ファイルを作成し、その中に次のテキストを挿入します。 リーリー 残念ながら、

    max_file_uploads

    upload_tmp_dirPHP_INI_SYSTEM のタグが付いた設定であり、.htaccess ファイル内で変更することはできません ...

    返事
    0
  • キャンセル返事