Nginx服务器块不能正常工作

免责声明:只是澄清,我是Linux的全新,但我已经通过谷歌search和个人研究configuration一切。

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

我得到了DNS的工作,所以当我进入域,我得到“欢迎nginx”页面。 麻烦的出现是因为我已经创build了将要托pipe该站点的目录,并使用该站点的文件(index.php是主页面)填充该目录,并且还configuration了服务器块(/ 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; } } 

带有启用网站的目录的符号链接。 但即使重新启动服务和/或重新启动计算机,域仍会显示“welcome to nginx”消息。 我已经尝试过编辑其他行的类似问题的答案,到目前为止没有变化,错误日志什么也没有显示。 什么可能导致configuration中的错误?

在此先感谢您的答案

更新 :这是nginx.conf文件。 在实验中,在评论和取消注释站点中的某些行的可用性并试图将该文件复制到“站点已启用”目录时,域名现在只是简单地拒绝加载提供“未收到数据”错误

 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:重新检查我的configuration后,我注意到,权限设置不正确,并且默认是以某种方式覆盖该网站,即使它不是在启用网站的目录。 我备份并删除了默认,只是为了更好的措施改变了服务器块的工作目录,将网站的文件移动到我捕获的那个。 它的工作,现在加载网站。 现在我不知道是否应该只是将其添加到更新中,或者将其放在另一个问题中,但现在问题是:现在的问题是,该网站加载的HTML和CSS,但由于某种原因不是PHP,任何想法那?。 我会根据我发现的或者如果你们需要更多的信息更新,谢谢!

最后更新:它花了一点,但我设法知道哪里的PHP错误撒谎,我开始挖掘日志,发现我需要安装php5curl,问题得到解决后,现在该网站完全正常工作。

你使用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/ somewhere)。 潜入/ etc / php5 / fpm并开始浏览.ini文件。

鉴于部分:

带有启用网站的目录的符号链接

我认为那是你错了的地方。

sites-enabled ,应该有sites-available 用于 sites-availableconfiguration的符号链接而不是相反,因为这是nginx默认查找的位置(请参阅nginx.conf)。

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