1. ホーム
  2. php

[解決済み] Nginxが.phpファイルを実行せず、ダウンロードとして提供する

2022-04-20 09:53:42

質問

ドロップレット(Digital Ocean)にウェブサイトをインストールしています。私は適切にPHPでNGINXをインストールするための問題があります。私はチュートリアルをしました https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-14-04 しかし、いくつかの.phpファイルを実行しようとすると、それをダウンロードするだけです...。 例えば... http://5.101.99.123/info.php は動作しているのですが もし私がメインの http://5.101.99.123 index.phpがダウンロードされてしまいます :/)

何か心当たりはありますか?

-rw-r--r--  1 agitar_user www-data   418 Jul 31 18:27 index.php
-rw-r--r--  1 agitar_user www-data    21 Aug 31 11:20 info.php

私の /etc/nginx/sites-available/default

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

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

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

               location ~ \.php$ {
                    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
            }

...

その他、quot;location"がコメントされています...

.

解決方法は?

これを試してみてください。

  1. 編集 /etc/nginx/sites-available/default

  2. リスン行を両方ともアンコメントすると、nginx はポート 80 IPv4 と IPv6 をリッスンするようになります。

    listen   80; ## listen for ipv4; this line is default and implied
    listen   [::]:80 default_server ipv6only=on; ## listen for ipv6
    
    
  3. 出発 server_name 単独

    # Make site accessible (...)
    server_name localhost;
    
    
  4. 追加 index.phpindex

    root /usr/share/nginx/www;
    index index.php index.html index.htm;
    
    
  5. コメント解除 location ~ \.php$ {}

    # pass the PHP scripts to FastCGI server listening on (...)
    #
    location ~ \.php$ {
            try_files $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;
    }
    
    
  6. 編集 /etc/php5/fpm/php.ini を確認し cgi.fix_pathinfo が設定されています。 0

  7. nginxとphp5-fpmを再起動します。 sudo service nginx restart && sudo service php5-fpm restart


私は1週間前にLinuxを使い始めたばかりなので、この件であなたのお役に立てればと思います。私はファイルを編集するためにnanoテキストエディターを使っています。もっと詳しく知りたい方はググってみてください。