修改nginx默认web目录的求助

2012-03-10 22:08:52 +08:00
 ivanlw
在nginx.confg里面看到location那段有个root html,然后find下发现在/usr/local/html有index.html,于是想把这奇葩的目录改道Documents下面……

把html换成/Users/我的用户名/Documents/www,然后nginx -s reload一下,发现原来可以看到的welcome to ngingx变成403了,应该怎么该呢?

详细的如何配置要去哪里找手册?
33274 次点击
所在节点    Linux
24 条回复
freestyler
2012-03-10 22:18:21 +08:00
用root启动的? nginx worker默认是会用nobody用户, 无权限读你的目录。
lerry
2012-03-10 22:19:22 +08:00
nginx好像是www-dada运行的,看看是不是没有访问权限。
ivanlw
2012-03-10 22:30:37 +08:00
@freestyler 如果不用root运行不起来bin里面的nginx啊,默认的那个目录应该有权限限制吧?开发的时候修改文件不久很麻烦吗?
ivanlw
2012-03-10 22:31:20 +08:00
@lerry www-dada运行是什么意思呢?

你的意思是我那样子写配置文件没有错?是访问不了的问题吗?
freefcw
2012-03-10 22:32:16 +08:00
@ivanlw 应该是权限的问题,你看看/var/log/nginx/下面的日志试试
feiandxs
2012-03-10 22:54:29 +08:00
nginx.conf主配置文件里头部部分
user www www;

worker_processes *;
如果是nobody或者被注释掉了,就手动修改下,指定用什么用户身份来运行。

同时对应的目录和文件赋予对应的权限。文件里用www用户,就添加www用户,并赋予网站目录以www权限——但其实不是必要的,真的。
还是检查下默认的index 是不是都正确了吧。。。比如你是个php文件或者非默认index.html的索引页。。

此外,运行nginx不用 bin里的nginx——nginx编译下来的怎么会有bin这个目录呢,默认的话应该是sbin吧。
以及它的运行并不需要root权限。
ivanlw
2012-03-10 22:55:38 +08:00
@freefcw /var/log里面木有nginx这个目录唉……
lerry
2012-03-10 22:55:47 +08:00
403,我遇到的都是文件夹权限问题
Livid
2012-03-10 22:58:17 +08:00
因为 Mac OS X 会保护用户的主文件夹。
standme
2012-03-10 23:06:37 +08:00
无法列目录吧,把nginx.conf 里的 server 配置上 autoindex on;
应该就可以了。
freefcw
2012-03-10 23:18:54 +08:00
@ivanlw 这个。。。我还真不知道你的那个日志在哪里了,403的forbidden很显然是没有权限
ivanlw
2012-03-11 15:36:02 +08:00
@feiandxs 嗯,确实是sbin……我大意了;不过,您说的运行不用权限的问题,我试着不用sudo直接nginx,却出现了下面的提示:

$ nginx
nginx: [alert] could not open error log file: open() "/usr/local/logs/error.log" failed (13: Permission denied)
2012/03/11 15:32:29 [emerg] 626#0: open() "/usr/local/logs/access.log" failed (13: Permission denied)

虽然我英语不太好,但是应该是权限不够的问题吧?

@freefcw 上面的那个/usr/local/logs/access.log 是不是就是您说的日志文件?
ivanlw
2012-03-11 15:41:51 +08:00
@feiandxs 尝试着按照你说的设置user,这个应该是我机器的登录名吧?但是关闭nginx的时候却出现如下提示,应该是这个用户名是错误的……

nginx: [emerg] getgrnam("ivanlw-air") failed in /usr/local/conf/nginx.conf:3
freefcw
2012-03-11 15:43:51 +08:00
@ivanlw 嗯,这个确实是日志文件
不用sudo直接运行的话应该是没有权限打开日志文件的

应该还有一个error.log日志,可以贴一下最近的访问信息
Kvm
2012-03-13 01:44:47 +08:00
nginx没有权限验证
ivanlw
2012-03-13 10:10:51 +08:00
@Livid 怎么修改才能让nginx可以访问用户的主文件夹呢……我尝试着按照 @feiandxs 的方法,但是被提示说识别不出来我改的那个用户名(就是user后面那个)~
ivanlw
2012-03-13 10:10:54 +08:00
@Livid 怎么修改才能让nginx可以访问用户的主文件夹呢……我尝试着按照 @feiandxs 的方法,但是被提示说识别不出来我改的那个用户名(就是user后面那个)~
ivanlw
2012-03-13 10:11:26 +08:00
@Kvm 应该怎么修改配置文件才能让nginx可以访问用户主文件夹呢?
freestyler
2012-03-13 10:20:02 +08:00
要用root跑的话,把目录owner改成 nobody把,
你的用户的那个user是不在/etc/passwd的,
所以你用 user指令指定你的用户是不行的
ivanlw
2012-03-13 11:06:27 +08:00
@freestyler 你说的owner是指user吗,我把配置里面user nobody的注释去掉了,这样子localhost访问的照样是403……按照楼上的说法还是没有访问权限……

你们平时的www目录放哪里呢?如果不放自己的主文件夹,新建个文件都要权限很麻烦啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/29281

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX