> 백엔드 개발 > PHP 튜토리얼 > Nginx가 .php 파일을 실행하는 대신 다운로드하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Nginx가 .php 파일을 실행하는 대신 다운로드하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

DDD
풀어 주다: 2024-12-05 02:37:09
원래의
1046명이 탐색했습니다.

Why is Nginx Downloading .php Files Instead of Executing Them, and How Can I Fix It?

Nginx는 .php 파일을 실행하는 대신 다운로드로 제공합니다

이 시나리오에서 Nginx는 .php 파일을 잘못 처리하여 파일을 다운로드하는 대신 다운로드합니다. 그들을 실행합니다. 이 문제를 해결하려면 특정 구성을 조정해야 합니다.

1. Listen Line 주석 해제:

Nginx가 IPv4 및 IPv6 포트 80을 모두 수신할 수 있도록 /etc/nginx/sites-available/default를 수정합니다.

listen 80; ## listen for ipv4;
listen [::]:80 default_server ipv6only=on; ## listen for ipv6
로그인 후 복사

2 . 서버 이름 설정:

server_name이 실제 서버 이름을 반영하는지 확인하세요(예: server_name example.com;.

3. 인덱스 줄에 index.php 추가:

루트 지시문에서 인덱스 파일 목록에 index.php를 추가합니다:

root /var/www/html;
index index.php index.html index.htm;
로그인 후 복사

4. PHP 위치 블록 주석 해제:

php 처리를 활성화하려면 위치 ~ .php$ {} 블록의 주석 처리를 해제합니다:

location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+?\.php)(/.+)?$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
}
로그인 후 복사

5. php.ini에서 Pathinfo 수정 비활성화:

/etc/php5/fpm/php.ini를 편집하고 cgi.fix_pathinfo = 0으로 설정합니다.

6. Nginx 및 PHP-FPM 다시 시작:

Nginx 및 PHP-FPM 다시 시작:

sudo service nginx restart && sudo service php5-fpm restart
로그인 후 복사

수정된 구성:

server {
        listen 80;
        listen [::]:80 default_server ipv6only=on;

        root /var/www/html;
        index index.php index.html index.htm;

        # Make site accessible from http://example.com/
        server_name example.com;

               location ~ \.php$ {
                    try_files $uri $uri/ =404;
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                    #
                    #               # With php5-cgi alone:
                    #               fastcgi_pass 127.0.0.1:9000;
                    #               # With php5-fpm:
                    fastcgi_pass unix:/var/run/php5-fpm.sock;
                    fastcgi_index index.php;
                    include fastcgi_params;
            }
  

              location / {
                    
                    try_files $uri $uri/ =404;
                    # Uncomment to enable naxsi on this location
                    # include /etc/nginx/naxsi.rules
            }
로그인 후 복사

이러한 변경 사항을 구현한 후 Nginx는 .php 파일을 올바르게 실행해야 합니다.

위 내용은 Nginx가 .php 파일을 실행하는 대신 다운로드하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿