我以前与Apache的工作,所以我知道,默认的公共Web根通常是/var/www/
。
我最近开始nginx的工作,但我似乎无法找到默认的公共Web根。
我在哪里可以找到nginx的默认的公共Web根?
我以前与Apache的工作,所以我知道,默认的公共Web根通常是/var/www/
。
我最近开始nginx的工作,但我似乎无法找到默认的公共Web根。
我在哪里可以找到nginx的默认的公共Web根?
如果您的配置不包括root /some/absolute/path;
语句,或者它包括一个使用像相对路径root some/relative/path;
,然后将得到的路径取决于编译时的选项。
也许这将让你做出一个受过教育的猜测,这是什么意思了,你会是这样,如果你唯一的情况下下载和自己编译的源。 在这种情况下,这个路径是相对于什么--prefix
使用。 如果你不改变它,它默认/usr/local/nginx
。 你可以找到这些参数nginx的是通过编译nginx -V
,它列出--prefix
作为第一个。
因为在root
指令默认为html
,这将,当然,导致/usr/local/nginx/html
作为回答你的问题。
但是,如果以任何其他方式安装nginx的,全盘皆输。 你的发行版可能采用完全不同的默认路径。 学习要弄清楚什么样的违约您所选择的分配使用的东西完全是另一项任务。
如果在Ubuntu上安装使用apt-get的,尝试/usr/share/nginx/www
。
编辑:
在较新版本的路径已更改为: /usr/share/nginx/html
Debian的默认Nginx的目录是/var/www/nginx-default
。
您可以检查该文件: /etc/nginx/sites-enabled/default
并找到
server {
listen 80 default;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www/nginx-default;
index index.html index.htm;
}
根是默认位置。
“默认的公共Web根”可以从nginx的-V输出中找到:
nginx -V
nginx version: nginx/1.10.1
built with OpenSSL 1.0.2h 3 May 2016
TLS SNI support enabled
configure arguments: --prefix=/var/lib/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/run/nginx/nginx.pid --lock-path=/run/nginx/nginx.lock --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --user=nginx --group=nginx --with-ipv6 --with-file-aio --with-pcre-jit --with-http_dav_module --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_v2_module --with-http_auth_request_module --with-mail --with-mail_ssl_module
--prefix参数值是问题的答案。 根以上的样品是/ var / lib中/ nginx的
在Mac OS X上安装的nginx与BREW使得默认的目录:
/usr/local/var/www
所以:
root html
手段
root /usr/local/var/www/html
没有html目录,因此将不得不手动创建。
您可以nginx的根文件夹简单地映射到你的网站的位置:
nano /etc/nginx/sites-enabled/default
默认的文件中,查找根服务器中的标签,并改变你的网站的默认文件夹,例如我的网站是位于/ var / WWW
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www; <-- Here!
...
当我nginx的评估,和的Apache2的lighttpd,我映射所有的人都到我的网站坐在位于/ var / WWW。 我发现这个有效评估的最佳方法。
然后你就可以启动/停止您所选择的服务器,看看哪一种最适合。
如
service apache2 stop
service nginx start
顺便说一句,nginx的其实是非常快的!
这里大多数网友表示,这是此路径下:
/usr/share/nginx/html
这是默认的路径,但你可以让你的虽然。
所有你需要的是创建一个在Web服务器的根目录树,给它一些权限“不是0777”,只有一个用户和看得见的只有该用户,但路径的终点的所有人都因为路径结束是你的文件和文件夹会被大众观看。
例如,你可以让一个像这样的:
home_web/site1/public_html/www/
只要您在Nginx的,你可以定制自己的根路径虚拟主机,只需添加这样的事情在你的服务器块:
server {
listen 80;
server_name yoursite.com;
root /home_web/site1/public_html/www/;
}
为nginx的默认Web文件夹取决于你如何安装它,但通常在这些地点:
/usr/local/nginx/html
/usr/nginx/html
运行命令nginx -V
并查找--prefix
。 使用该条目查找默认的路径。
对于Ubuntu和泊坞窗图片:
/usr/share/nginx/html/
转储配置:
$ nginx -T
...
server {
...
location / {
root /usr/share/nginx/html;
...
}
...
}
你得到的可能是不同的,因为这取决于你如何nginx
是配置/安装。
参考文献:
-T
的期权man
页
-T
在帮助信息选项
更新:有一个关于是否/何时的问题有些混乱-T
加入选项nginx
。 它是由手册页中VL-homutov 6月16日,这成为一部分2015年v1.9.2的版本 。 它甚至在提到发行说明 。 该-T
选项一直存在于每个nginx
发布以来,包括在Ubuntu 16.04.1 LTS的一个可供选择:
root@23cc8e58640e:/# nginx -h
nginx version: nginx/1.10.0 (Ubuntu)
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-T : test configuration, dump it and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /usr/share/nginx/)
-c filename : set configuration file (default: /etc/nginx/nginx.conf)
-g directives : set global directives out of configuration file
在Mac上安装使用nginx的酿造:
/usr/local/etc/nginx/nginx.conf
location / {
root html; # **means /usr/local/Cellar/nginx/1.8.0/html and it soft linked to /usr/local/var/www**
index index.html;
}
为CentOS,Ubuntu和Fedora的,默认的目录是/usr/share/nginx/html
在我的情况下,它是/usr/share/nginx/html
你可以尝试通过执行搜索,找到
find / -name html
如果你是在Ubuntu 14.04,你可以找到以下路径nginx的www目录:
yusuf@yusuf-he:/usr/share/nginx/html$ pwd
/usr/share/nginx/html
yusuf@yusuf-he:/usr/share/nginx/html$
对于AWS EC2的Linux,你会发现这里:
/usr/share/nginx
看看nginx的配置文件,以确保万无一失。 这对于任何命令里grep是您的机器配置:
cat /etc/nginx/sites-enabled/default |grep "root"
我的机器上它是:'根在/ usr /共享/ nginx的/ WWW;
只是要注意,对于nginx的服务器的默认索引页也将显示根位置为好。 从亚马逊的Linux AMI nginx的(1.4.3),你会得到如下:
这是一个散发着亚马逊的Linux AMI nginx的默认index.html页面。 它位于/ usr /共享/ nginx的/ HTML。
现在你应该把你的内容在您所选择的位置,并在nginx的配置文件/etc/nginx/nginx.conf编辑root配置指令
如果你需要找出在编译时定义nginx的公共根文件夹你可以检查你的access.log文件。
下面是与修改log_format指令nginx.conf的HTTP部分为例,$ DOCUMENT_ROOT是在字符串的开头说:
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
## ADD $document_root HERE ##
log_format main '$document_root $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;
etc. .......
然后,备份所有的配置文件* .conf文件在conf.d目录下,并创建有配置文件,test.conf有下面几行:
server{ listen 80; server_name localhost; }
添加下面一行到/ etc / hosts文件: 127.0.0.1 localhost
刷新nginx的配置: nginx -s reload
发送GET请求HTTP://本地主机 : curl http://localhost
检查的access.log的最后一个字符串: tail -n 1 /var/log/nginx/access.log
下面是此命令,其中的/ etc / nginx的/ HTML是在编译时定义的缺省文档根的示例输出:
/etc/nginx/html 127.0.0.1 - - [15/Mar/2017:17:12:25 +0200] "GET / HTTP/1.1" 404 169 "-" "curl/7.35.0" "-"
您可以搜索它,无论在哪里,他们将它(系统管理员移动或Nginx的更新版本)
查找/ -name nginx的
您可以访问文件配置nginx的,你可以看到根/路径。 在此默认nginx的阿帕奇的/var/www/html
我在Ubuntu nginx的是 “nginx的版本:nginx的/ 1.9.12(Ubuntu的)” 和根路径是/ var / www / html等/
Ubuntu的信息是:没有LSB模块可供选择。 经销商ID:Ubuntu的说明:Ubuntu的LTS 16.04版本:16.04代号:xenial
其实,如果你刚刚安装在Ubuntu nginx的,那么你可以去“的/ etc / nginx的/网站可用”并检查默认的文件,有喜欢的配置“根/网站/根/路/云/这里”。 这是你在找什么。
你可以找到它在/ var / WWW /那是nginx的和Apache默认目录,但你可以改变它。 第1步转到以下文件夹中的/ etc / nginx的/站点可用
第2步编辑默认的文件中,你可以找到一个服务器块下,有将线命名为根是什么定义的位置。
在Ubuntu 19.04中,我们发现它
在/ usr /共享/ nginx的/ HTML
对于nginx的/ 1.4.6(Ubuntu的)
/etc/nginx$ cat /etc/nginx/sites-available/default | grep -i root
- root /usr/share/nginx/html;
默认是关系到prefix
中的选项configure
时,nginx的编译脚本; 这里是从Debian的一些奇怪的示例:
% nginx -V | & tr ' ' "\n" | fgrep -e path -e prefix
--prefix=/etc/nginx
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-client-body-temp-path=/var/lib/nginx/body
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi
--http-log-path=/var/log/nginx/access.log
--http-proxy-temp-path=/var/lib/nginx/proxy
--http-scgi-temp-path=/var/lib/nginx/scgi
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi
--lock-path=/var/lock/nginx.lock
--pid-path=/var/run/nginx.pid
随后,默认值root
被设置为html
目录 (按照所述的文档root
指令 ),这恰好是内prefix
,如可以通过查看被验证$document_root
从一个简单的配置文件变量:
# printf 'server{listen 4867;return 200 $document_root\\n;}\n' \
>/etc/nginx/conf.d/so.10674867.conf
# nginx -s reload && curl localhost:4867
/etc/nginx/html
然而,如Debian邪恶分布似乎修改了不少,让你额外的招待:
% fgrep -e root -e include /etc/nginx/nginx.conf
include /etc/nginx/mime.types;
#include /etc/nginx/naxsi_core.rules;
#passenger_root /usr;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
% fgrep -e root -e include \
/etc/nginx/conf.d/*.conf /etc/nginx/sites-enabled/*
/etc/nginx/conf.d/so.10674867.conf:server{listen 4867;return 200 $document_root\n;}
/etc/nginx/sites-enabled/default: root /usr/share/nginx/www;
/etc/nginx/sites-enabled/default: # include /etc/nginx/naxsi.rules
/etc/nginx/sites-enabled/default: # root /usr/share/nginx/www;
/etc/nginx/sites-enabled/default: # include fastcgi_params;
/etc/nginx/sites-enabled/default: # deny access to .htaccess files, if Apache's document root
/etc/nginx/sites-enabled/default:# root html;
/etc/nginx/sites-enabled/default:# root html;
因此,在Debian的这种情况下,你可以看到这根最后被设置为/usr/share/nginx/www
。
但是当你与样本服务器配置,将成为其看到$document_root
通过http值,配置nginx的是很简单的,你可以写自己的配置在两个单行的问题,指定所需的root
,以满足您的需要。
在Ubuntu中,Nginx的默认根目录的位置是/usr/share/nginx/html
我也对数字海洋这个问题上运行一个WordPress网站nginx的。
我的解决办法是做到以下几点:
/etc/nginx/nginx.conf
具有下列文件: server {
root /var/www/html;
}
然后我不得不sudo service nginx restart
nginx -V
命令还显示你在哪里你的nginx的配置文件所在以及(我指出在/etc/nginx/nginx.conf
)