현재 위치: > 최신 기사 목록> Nginx의 특정 디렉토리에서 PHP 스크립트를 비활성화하는 방법

Nginx의 특정 디렉토리에서 PHP 스크립트를 비활성화하는 방법

gitbox 2025-07-28

소개하다

경우에 따라 Nginx 서버의 특정 디렉토리에서 PHP 스크립트 실행을 비활성화 할 수 있습니다. Nginx의 프로필을 사용하면이를 쉽게 달성하여 웹 사이트의 보안을 향상시킬 수 있습니다. 이 기사는 특정 디렉토리에서 PHP 스크립트의 실행을 금지하기 위해 Nginx를 구성하는 방법을 자세히 설명합니다.

지정된 디렉토리에서 PHP를 실행하는 것을 금지하는 원칙

특정 디렉토리에서 Nginx에서 PHP 스크립트를 실행하는 것을 금지하려면 Nginx의 'Location'지침을 사용하여 지정된 디렉토리에 대한 액세스 제한을 설정할 수 있습니다. 구체적으로, 당신은 정규 표현식을 통해 디렉토리 경로와 일치 한 다음`deny all '지침을 통해 PHP 스크립트의 실행을 차단합니다. 구성의 기본 원칙은 다음과 같습니다.

nginx 서버 블록을 만듭니다

먼저 웹 사이트를 구성하려면 Nginx 구성 파일에서 서버 블록을 작성해야합니다. 이 서버 블록에는 다른 디렉토리에 대한 규칙이 포함됩니다.

 
server {
    listen 80;
    server_name example.com;
    # 나머지를 구성하십시오Nginx옵션
}

PHP 실행을 금지하기위한 옵션을 구성하십시오

다음으로 PHP 실행을 금지하는 특정 디렉토리에 대한 규칙을 구성하십시오. Location Directive를 사용하면 특정 디렉토리 또는 파일 경로에 대한 액세스 제한을 추가 할 수 있습니다.

 
server {
    listen 80;
    server_name example.com;
    # 다른 사람을 구성하십시오Nginx옵션

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

위의 구성에서`location '지침을 사용하여`/dir1/`또는`/dir2/`로 시작하는 요청과`.php`로 끝납니다. ```````지침 "을 통해, 모든 일치하는 요청은 거부됩니다. 실제 요구에 따라 디렉토리 경로와 정규식을 조정할 수 있습니다.

완전한 구성 예

다음은 특정 디렉토리에서 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/website`로 지정되고 기본 색인 파일`index.html`가 설정됩니다. 'location'지침을 통해`/dir1/`및`/dir2/`디렉토리에서 PHP 스크립트의 실행을 금지합니다. 다른 요청의 경우 Nginx는 정적 파일을 제공하려고 시도하며 파일이 존재하지 않으면 404 오류가 반환됩니다.

요약

Nginx의 위치 지침을 사용하여 특정 디렉토리에서 PHP 스크립트의 실행을 효과적으로 금지 할 수 있습니다. 이것은 웹 사이트 보안을 향상시키는 쉽고 효과적인 방법입니다. 이 유형의 구성을 수행 할 때는 PHP가 비활성화 된 디렉토리의 올바른 경로를 설정하고 필요에 따라 정규식을 조정하십시오. 구성이 완료되면 변경 사항이 적용되도록 Nginx를 다시로드하십시오.