Nginx localhost 다중 사이트는 실행하는 대신 PHP 파일을 다운로드합니다.

Nginx localhost 다중 사이트는 실행하는 대신 PHP 파일을 다운로드합니다.

내 웹 루트(/var/www)에 여러 사이트(예: site1, site2 등)가 있고 아래와 같이 Nginx를 구성했습니다.

## PHP-FPM Servers ##
upstream localhost-php-fpm {
    server unix:/var/run/php/php7.3-fpm.sock;
}

server {

    server_name localhost;
    
    listen 80;
    
    root /var/www;
    index index.php index.html index.htm;
    
    location /site1/web {
        try_files $uri $uri/ /site1/web/index.php?$args;
    }
    
    location /site2/web {
        try_files $uri $uri/ /site2/web/index.php?$args;
    }
    
    # pass to php-fpm
    location ~ \.php(?:$|/) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass localhost-php-fpm;
        fastcgi_index index.php;
        fastcgi_intercept_errors on;
        include fastcgi_params;
        
        fastcgi_connect_timeout 600;
        fastcgi_send_timeout 600;
        fastcgi_read_timeout 15000;         
    }

}

예를 들어 사이트의 루트를 요청하면 http://localhost/site1/webindex.php를 다운로드할 수 있는 다운로드 창이 열립니다. 하지만 어떤 경로를 요청하면 http://localhost/site1/web/dashboard모든 것이 잘 작동합니다.

답변1

try_files마지막 블록에 지시어를 추가해야 합니다 location.

관련 정보