ホームページ > バックエンド開発 > PHPチュートリアル > Nginx が .php ファイルを実行せずにダウンロードするのはなぜですか?それを修正するにはどうすればよいですか?

Nginx が .php ファイルを実行せずにダウンロードするのはなぜですか?それを修正するにはどうすればよいですか?

DDD
リリース: 2024-12-05 02:37:09
オリジナル
1052 人が閲覧しました

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

Nginx は .php ファイルを実行する代わりにダウンロードとして提供します

このシナリオでは、Nginx は .php ファイルを誤って処理し、ファイルをダウンロードするのではなくダウンロードします。それらを実行しています。この問題を修正するには、特定の構成調整を行う必要があります。

1. Listen Lines:

のコメントを解除して、Nginx が IPv4 と IPv6 の両方のポート 80 で listen できるように /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 Location ブロックのコメントを解除します:

location ~ .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 Fix を無効にします:

/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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート