2017-06-07 179 views
1

问题:如何创建简单的nginx配置文件,将文件夹结构作为域读取(test.local,myblog.local)并显示该文件夹中的页面,包括PHP?主机无法访问客机上的nginx虚拟主机

信息: 的Windows 10的x64建立
流浪1.9.5
的VirtualBox 5.0.22(最新)
来宾操作系统:Ubuntu的Xenial 64最新

所以,我想创建简单的nginx的配置,即将重新创建文件夹结构。请参阅pastebin上的 my config file

此处还有一个Vagrantfile配置,它使用SMB安装文件夹。

文件夹的结构:

├───devhost.local 
│ ├───log 
│ └───public 
│   index.html 
│   index.php 
│ 
└───test.local 
    ├───log 
    └───public 
      index.html 

为devhost的文件和文件夹权限:

[email protected]:~$ ls -la /var/www/html/devhost.local/ 
total 4 
drwxr-xr-x 2 ubuntu www-data 0 Jun 7 11:17 . 
drwxr-xr-x 2 ubuntu www-data 4096 Jun 7 12:44 .. 
drwxr-xr-x 2 ubuntu www-data 0 Jun 7 11:17 log 
drwxr-xr-x 2 ubuntu www-data 0 Jun 6 14:13 public 

我的hosts文件在Windows:

192.168.33.10 devhost.local 

所以,当我有我的sites-enabled文件夹中的默认配置,我可以通过打开访客机器3210和我看到nginx的html页面,但是当我删除这个默认配置并启用我的通配符配置(请参阅链接我的配置文件),所以我无法访问我的域名。 sudo nginx -t表示一切正常,我也尝试重新启动我的访客机器,重新加载/重新启动nginx服务。此外,我禁用Windows 10防火墙(我不知道它的完全禁用,但说它禁用)。此外,日志文件是空的,甚至没有创建,访问日志和错误日志。

我的错误在哪里?如果需要更多信息,请问我,我会给。

非常感谢!

+0

你不能没有的dnsmasq实现这一目标或手动添加的每个域到hosts文件 – spiil

+0

是的,我加入的主机manualy每个域文件,这是不行的? –

回答

0

下面的nginx设置应该有所帮助。

server { 
    listen 80 default_server; 
    root /var/www/html/$host; 
    index index.html index.php; 
    location ~ \.php { 
    # ... fastcgi details 
    } 
} 
+0

问题是一样的。 Chrome说那个ERR_CONNECTION_REFUSED。此外,我禁用ufw,但它没有帮助解决问题。 –

0

我找到了解决方案。我的nginx没有监听端口80,我检查了sudo netstat -ntlp | grep LISTEN,但是没有端口80.所以我Google,并且在stackoverflow上发现了另一个问题(请参见最后的链接) 。

解决方案:重新创建simlink到我的文件与配置,之后,当我运行sudo nginx -t我看到一些错误。所以它似乎在这个文件是空的或类似的东西之前,但我没有注意到这一点,因为我编辑文件直接在sites-available文件夹。

感谢大家!

这个问题可以帮助我解决这个问题:nginx not listening to port 80