現在の位置: ホーム> 最新記事一覧> Nginxの特定のディレクトリでPHPスクリプトを無効にする方法

Nginxの特定のディレクトリでPHPスクリプトを無効にする方法

gitbox 2025-07-28

導入

場合によっては、NGINXサーバーの特定のディレクトリでPHPスクリプトの実行を無効にすることができます。 Nginxのプロフィールを使用すると、これを簡単に達成できるため、Webサイトのセキュリティが向上します。この記事では、特定のディレクトリ内のPHPスクリプトの実行を禁止するようにnginxを構成する方法について詳しく説明します。

指定されたディレクトリでNginxがPHPを実行することを禁止する原則

特定のディレクトリからNGINXでPHPスクリプトの実行を禁止するには、Nginxの「Location」指令を使用して、指定されたディレクトリのアクセス制限を設定できます。具体的には、正規表現を介してディレクトリパスを一致させ、「deny all」指令を介してPHPスクリプトの実行をブロックします。構成の基本原則は次のとおりです。

nginxサーバーブロックを作成します

まず、Webサイトを構成するためにNginxの構成ファイルにサーバーブロックを作成する必要があります。このサーバーブロックには、異なるディレクトリのルールが含まれます。

 
server {
    listen 80;
    server_name example.com;
    # 残りを構成しますNginxオプション
}

PHP実行を禁止するオプションを構成します

次に、PHPの実行を禁止する特定のディレクトリのルールを構成します。ロケーションディレクティブを使用すると、特定のディレクトリまたはファイルパスのアクセス制限を追加できます。

 
server {
    listen 80;
    server_name example.com;
    # その他を構成しますNginxオプション

    location ~ /(dir1|dir2)/.*\.php$ {
        deny all;
    }
}

上記の構成では、 `/dir1/`または `/dir2/`で始まり `.php`で終了するリクエストを一致させるために` location`ディレクティブを使用します。 「すべてを否定する」を通じて、指令、すべてのマッチングリクエストは拒否されます。実際のニーズに応じて、ディレクトリパスと正規表現を調整できます。

完全な構成の例

以下は、特定のディレクトリでPHPスクリプトを実行してからNginxを無効にする方法を示す完全な構成例を示します。

 
server {
    listen 80;
    server_name example.com;

    root /path/to/website;
    index index.html;

    location ~ /(dir1|dir2)/.*\.php$ {
        deny all;
    }

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

この例では、ルートディレクトリは「/path/to/websity」として指定され、デフォルトのインデックスファイル「index.html」が設定されています。 「location」指令を通じて、 `/dir1/`および `/dir2/`ディレクトリでPHPスクリプトの実行を禁止します。他のリクエストの場合、NGINXは静的ファイルを提供しようとし、ファイルが存在しない場合、404エラーが返されます。

要約します

Nginxのロケーション指令を使用することにより、特定のディレクトリからのPHPスクリプトの実行を効果的に禁止できます。これは、ウェブサイトのセキュリティを強化する簡単で効果的な方法です。このタイプの構成を実行するときは、PHPが無効になっているディレクトリの正しいパスを設定し、必要に応じて正規表現を調整してください。構成が完了したら、変更を有効にするためにnginxをリロードすることを忘れないでください。