当前位置: 首页 > 面试题库 >

Nginx将.php文件作为下载文件,而不是执行它们

薛宜
2023-03-14
问题内容

我正在将站点安装在Droplet中(数字海洋)。我在使用PHP正确安装NGINX时遇到问题,但是当我尝试运行一些.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
            }

…评论其他“位置”(#)


问题答案:

尝试这个:

  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$ {}

```

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;

}
```

  1. 编辑/etc/php5/fpm/php.ini并确保cgi.fix_pathinfo设置为0

  2. 重新启动Nginx和php5-fpm sudo service nginx restart && sudo service php5-fpm restart

我一周前才刚刚开始使用Linux,因此我真的希望能在此方面为您提供帮助。我正在使用nano文本编辑器来编辑文件。如果没有,请运行apt-getinstall nano。Google对它了解更多。



 类似资料:
  • 我正在一个水滴(数字海洋)中安装一个网站。我对正确安装带有PHP的NGINX有一个问题。我做了一个辅导https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-14-04但是当我试着跑的时候。php文件只是下载而已。。。例如<代码>http:/

  • 我最近在我的机器上安装了nginx和php 7.0.16,但是由于某种原因,nginx下载了php文件,而不是执行它们。我已经花了几天时间在网上实施了所有可用的解决方案,但都是徒劳的。 我的nginx。配置文件是: conf.d文件夹中没有文件,启用的站点只有如下所示的默认文件 有人能告诉我,有什么问题吗?

  • 问题 我今天尝试从PHP7.0升级到7.2,结果服务器上的网站通过浏览器下载,而不是像正常的那样执行。 我的问题 有人能给我一些如何调试的例子吗?还有关于可能发生的事情的其他见解吗? 我的理论 从技术上说,我不知道是什么导致了这种情况,但我的经验告诉我,这是一行,在一个文件中,来自NGinx,需要编辑。 我试过的 我发现这个问题在这里经常被报道。但是解决方案缺少关键信息,例如文件路径,或者它们引用

  • 我最近通过以下博客在Ubuntu 14.04上配置了php7http://www.zimuel.it/install-php-7我根据博客成功安装了它。但是当尝试运行php文件(/var/www/test.php)时,它会被下载而不是执行。我不知道我错过了什么配置。当我在浏览器中输入localhost时,它的响应是“Itworks”。

  • 问题内容: 我正在使用php下载文件,而不是在新窗口中打开文件本身。对于较小的文件似乎可以正常工作,但对于较大的文件则无法工作(我需要在大型文件上使用)。这是我必须下载文件的代码: 但是,当我尝试下载大文件(例如265mb)时,浏览器告诉我找不到文件吗?文件一定在服务器上,脚本对于较小的文件也可以正常工作。有什么方法可以下载类似于我已有的大文件? 问题答案: PHP对脚本可以运行多长时间以及可以使

  • 问题内容: 操作系统和服务器信息: CentOS 6.4(最终版) 阿帕奇2.2.15 PHP 5.5.1 我以前安装了php 5.3.x,但决定升级。我首先卸载了php 5.3.x,然后安装了php 5.5.1,但是在安装完成后apache并没有解析php文件,只是下载了它们。我在这里检查了stackoverflow中的类似问题,但到目前为止,它们都没有帮助我。 作为记录,我在httpd.con