问题:如何创建简单的nginx配置,将文件夹结构读取为域(test.local,myblog.local)并显示该文件夹中的页面,包括PHP?
信息:
Windows 10 x64构建
Vagrant 1.9.5
VirtualBox 5.0.22(最新)
客户操作系统:Ubuntu Xenial x64最新
所以,我想创建简单的nginx配置,它将重新创建文件夹结构。看到 关于pastebin的my config file。
这里还有一个Vagrantfile配置,它使用SMB来挂载文件夹。
文件夹的结构:
├───devhost.local
│ ├───log
│ └───public
│ index.html
│ index.php
│
└───test.local
├───log
└───public
index.html
devhost的文件和文件夹的权限:
ubuntu@ubuntu-xenial:~$ 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
我在Windows中的主机文件:
192.168.33.10 devhost.local
所以,当我在我的sites-enabled
文件夹中有默认配置时,我可以通过192.168.33.10
打开来宾机,我看到nginx的html页面,但是当我删除这个默认配置并启用我的通配符配置时(看到链接我的配置文件)所以我无法访问我的域名。 sudo nginx -t
表示一切正常,我也尝试重启我的客机,重新加载/重启nginx服务。此外,我禁用Windows 10防火墙(我不知道它是否完全禁用,但说它已禁用)。此外,日志文件为空,甚至未创建,包括访问日志和错误日志。
我的错误在哪里?如果需要更多信息,请问我,我会给。
非常感谢!
答案 0 :(得分:0)
在nginx设置之后应该有所帮助。
server {
listen 80 default_server;
root /var/www/html/$host;
index index.html index.php;
location ~ \.php {
# ... fastcgi details
}
}
答案 1 :(得分:0)
我找到了解决方案。
首先,当我只保留一个配置文件时,我的nginx不会侦听端口80,我检查sudo netstat -ntlp | grep LISTEN
但是没有端口80.所以我谷歌,并在stackoverflow上找到了另一个问题(请参阅链接at结束)。
解决方案:使用config重新创建我的文件的simlink,之后当我运行sudo nginx -t
时,我看到了一些错误。所以它似乎在此文件之前是空的或类似的东西,但我没有注意到这一点,因为我直接在sites-available
文件夹中编辑文件。
感谢大家!
这个问题可以帮助我解决问题:nginx not listening to port 80