NginX不执行PHP

NginX不执行PHP,php,nginx,ubuntu-14.04,Php,Nginx,Ubuntu 14.04,对于这个问题,我已经研究了几十种可能的解决方案,但找不到任何有效的方法。基本上,PHP文件不会在我的NginX+PHP\u fpm+Ubuntu14服务器上执行。我有所有的软件包,它们正在运行。我已经清除了浏览器缓存等,但没有任何效果。我感谢所有的帮助 现在,如果我尝试访问PHP文件,GET会将其作为HTML文件返回,但不会执行脚本 这是我的nginx.conf文件: worker_processes 1; worker_rlimit_nofile 8192; events { worker

对于这个问题,我已经研究了几十种可能的解决方案,但找不到任何有效的方法。基本上,PHP文件不会在我的NginX+PHP\u fpm+Ubuntu14服务器上执行。我有所有的软件包,它们正在运行。我已经清除了浏览器缓存等,但没有任何效果。我感谢所有的帮助

现在,如果我尝试访问PHP文件,GET会将其作为HTML文件返回,但不会执行脚本

这是我的nginx.conf文件:

worker_processes 1;
worker_rlimit_nofile 8192;

events {
 worker_connections  3000;
}

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

http {
   include       /etc/nginx/mime.types;
   #default_type  application/octet-stream;
   default_type text/html;

   log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                     '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent" "$http_x_forwarded_for"';

   access_log  /var/log/nginx/access.log  main;

   sendfile        on;
   #tcp_nopush     on;

   keepalive_timeout  65;

   #gzip  on;

   include /etc/nginx/conf.d/*.conf;
   include /etc/nginx/sites-enabled/*;
}
server {

   listen 8000 default_server;

   listen [::]:8000 default_server ipv6only=on;

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

   #location / {

     #index index.php index.html index.htm;

   #}
}
以下是我的/站点可用/默认文件:

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

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

    # SSL configuration
    #
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
    #
    # Note: You should disable gzip for SSL traffic.
    # See: https://bugs.debian.org/773332
    #
    # Read up on ssl_ciphers to ensure a secure configuration.
    # See: https://bugs.debian.org/765782
    #
    # Self signed certs generated by the ssl-cert package
    # Don't use them in a production server!
    #
    # include snippets/snakeoil.conf;

    root /usr/share/nginx/html;

    # Add index.php to the list if you are using PHP
    index index.php index.html index.htm index.nginx-debian.html;

    server_name localhost;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        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;
      }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        try_files $uri =404;
        include snippets/fastcgi-php.conf;

        # With php5-cgi alone:
        #fastcgi_pass 127.0.0.1:9000;
        # With php5-fpm:
        #fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        #fastcgi_index index.php;
        include fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny all;
    #}
}


# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
#    listen 80;
#    listen [::]:80;
#
#    server_name example.com;
#
#    root /var/www/example.com;
#    index index.html;
#
#    location / {
#        try_files $uri $uri/ =404;
#    }
#}
这是我的服务器配置文件:

worker_processes 1;
worker_rlimit_nofile 8192;

events {
 worker_connections  3000;
}

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

http {
   include       /etc/nginx/mime.types;
   #default_type  application/octet-stream;
   default_type text/html;

   log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                     '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent" "$http_x_forwarded_for"';

   access_log  /var/log/nginx/access.log  main;

   sendfile        on;
   #tcp_nopush     on;

   keepalive_timeout  65;

   #gzip  on;

   include /etc/nginx/conf.d/*.conf;
   include /etc/nginx/sites-enabled/*;
}
server {

   listen 8000 default_server;

   listen [::]:8000 default_server ipv6only=on;

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

   #location / {

     #index index.php index.html index.htm;

   #}
}

如你所见,我一直在玩弄这些文件。但是没有用。

好的,因此根据我们的反复评论,您需要将此部分添加到您的nginx配置中,以便监听服务器配置:8000

该正则表达式告诉nginx,每当它收到一个以.php结尾的URL请求时,就将其发送到fastcgi进程。否则,它将默认返回与/var/www/html中匹配的原始文件

希望有帮助

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
    try_files $uri =404;
    include snippets/fastcgi-php.conf;

    # With php5-cgi alone:
    #fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    #fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    #fastcgi_index index.php;
    include fastcgi_params;
}

您的错误日志(/var/log/nginx/error.log)是怎么说的?您可能希望grep cgi/var/log/nginx/error.log并查看弹出的内容。我打赌你会在那里找到答案。当我尝试加载php文件时,没有任何内容进入错误日志。你请求的URL是什么?localhost:8000/info.php没有侦听端口8000的服务器的
~\.php$
位置块。你需要添加它。成功了!非常感谢。它们的关键是默认情况下的位置块没有执行。因此,将它移动到实际的配置文件修复了它。我无法执行
.php
文件。