Nginx 服务器块不起作用

Nginx 服务器块不起作用

免责声明:只是为了澄清,我对 Linux 完全陌生,但我已经通过谷歌搜索和个人研究配置了一切。

我有一个带有 LEMP 堆栈的 Debian Wheezy 服务器,我打算将其用作域的主机。

我让 DNS 正常工作,这样当我输入域名时,我就会得到“欢迎使用 nginx”页面。问题出现是因为我已经创建了将托管网站的目录,并用网站的文件填充了它(index.php 是主页),我还配置了服务器块(/etc/nginx/sites-available/example.com),如下所示:

UPDATED Server block
server {
        listen   80;
        server_name example.com www.example.com;
        root /var/www/example.com;
        index index.php index.html index.htm;
        location / {
                try_files $uri $uri/ /index.html;
        }

        error_page 404 /404.html;

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /var/www/example.com;
        }

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

带有指向 sites-enabled 目录的符号链接。但即使重新启动服务和/或重新启动计算机,域仍会显示“欢迎使用 nginx”消息。我尝试编辑网站中类似问题的答案的其他行,到目前为止没有任何变化,错误日志也没有显示任何内容。配置中的错误可能是由什么原因造成的?

提前感谢你的回答

更新:这是 nginx.conf 文件。在尝试注释和取消注释 sites-available 中的某些行并尝试将文件复制到“sites-enabled”目录时,域名现在完全拒绝加载,并给出“未收到数据”错误

UPDATED nginx.conf
user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
    worker_connections 768;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

     server_names_hash_bucket_size 64;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";
    text/javascript;


    ##
    # Virtual Host Configs
    ##

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

更新2:重新检查配置后,我注意到权限设置不正确,即使站点不在启用站点的目录中,默认权限也会以某种方式覆盖站点。我备份并删除了默认权限,并且为了保险起见,更改了服务器块中的工作目录,将站点文件移动到我捕获的目录中。它起作用了,现在站点可以加载了。现在我不知道是否应该将其添加到更新中或将其放在另一个问题中,但这里是:现在的问题是站点加载了 html 和 CSS,但出于某种原因没有加载 PHP,对此有什么想法吗?我会根据我发现的情况进行更新,或者如果你们需要更多信息,谢谢!

最后更新:花了一点时间,但我终于知道了 php 错误出在哪里,我开始查阅日志,发现我需要安装 php5-curl,之后问题就解决了,现在网站完全可以正常运行。

答案1

您使用的是 php CGI 还是 FPM?您只需要一个 fastcgi_pass 指令,但两个指令都未注释。

尝试创建索引文件 index.html,并将该文件放在服务器根目录中。重新加载 nginx 并查看它是否提供服务。添加 PHP 会使事情变得复杂,因此请确保 nginx 本身可以正常工作。service nginx configtest也非常有帮助。

更新:听起来你在端口 9000 上使用 PHP-FPM。我会将 unix 套接字行注释掉,并确保服务器可以与其自己的端口 9000(TCP)通信。就 nginx 而言,听起来它可以工作,但 PHP 可能不行。默认情况下,它将拥有自己的 FPM 守护进程日志文件和 PHP 脚本日志文件(可能在/var/log/某处)。深入研究 /etc/php5/fpm 并开始查看 .ini 文件。

答案2

鉴于部分:

带有指向 sites-enabled 目录的符号链接

我认为你错在这里。

sites-enabled应该有符号链接 sites-available配置而不是相反,因为那是 nginx 默认查找的地方(参见 nginx.conf)。

分享你的 nginx.conf 可能会有帮助。

相关内容