我正在安装一个网站在一个液滴(数字海洋)。我有一个问题安装NGINX与PHP正确。我做了一个教程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

My /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
            }

...

其他“地点”被评论为……

.


当前回答

对于任何与php7有同样问题的人,这是我所做的让nginx在CentOS 7中正确执行PHP文件,张贴在这里,以防任何人有同样的问题:

按照这个数字海洋的文件一步一步。 打开/etc/nginx/conf.d/default.conf(默认情况下我没有站点启用或站点可用,你可以相应地编辑)。 编辑位置参数如下:

default.conf:

location ~ \.php$ {
    try_files $uri =404;
    #fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

    #instruct nginx execute php7 files instead download them :D
    fastcgi_pass unix:/var/run/php-fpm/www.sock;

    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

重启Nginx和PHP服务sudo systemctl Restart PHP -fpm和sudo systemctl Restart Nginx。 最后但最重要的是,清除浏览器缓存或运行在隐身(Chrome)或私人浏览(Firefox)等…

希望这有助于和快乐的编码

其他回答

试试这个:

Edit /etc/nginx/sites-available/default Uncomment both listen lines to make Nginx listen on port 80 IPv4 and IPv6. listen 80; ## listen for ipv4; this line is default and implied listen [::]:80 default_server ipv6only=on; ## listen for ipv6 Leave server_name alone # Make site accessible (...) server_name localhost; Add index.php to the index line root /usr/share/nginx/www; index index.php index.html index.htm; Uncomment 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; } Edit /etc/php5/fpm/php.ini and make sure cgi.fix_pathinfo is set to 0 Restart Nginx and php5-fpm sudo service nginx restart && sudo service php5-fpm restart


我一周前才开始使用Linux,所以我真的希望能帮助到你。我正在使用一个纳米文本编辑器来编辑文件。如果没有,运行apt-get install nano。谷歌想知道更多。

如果还有什么对你没用的话。也许之前你用info。php测试文件安装了apache2。只需清除本地主机的应用程序数据(缓存,cookie)。

为了记录,我发现我的php-fpm没有运行,我用服务php7.2-fpm start修复了它。

首先,你必须在浏览器中删除缓存

打开terminal,执行如下命令:

sudo apt-get install php-gettext
sudo nano /etc/nginx/sites-available/default

然后在默认文件中添加如下代码:

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

    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    server_name localhost;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

如果有任何不匹配,只需纠正并从终端通过以下命令重新启动Nginx

须藤系统缓冲nginx系统

然后进入浏览器,享受…

检查你的nginx配置文件扩展名为*.conf。 例如:/etc/nginx/conf.d/myfoo.conf

我也遇到了同样的情况。在我将我的配置文件从myfoo重命名为myfoo.conf后,它修复了。 不要忘记在重命名nginx后重新启动它。