V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
ivanlw
V2EX  ›  Linux

修改nginx默认web目录的求助

  •  
  •   ivanlw ·
    tolinwei · 2012-03-10 22:08:52 +08:00 · 33247 次点击
    这是一个创建于 4400 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在nginx.confg里面看到location那段有个root html,然后find下发现在/usr/local/html有index.html,于是想把这奇葩的目录改道Documents下面……

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

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

    你的意思是我那样子写配置文件没有错?是访问不了的问题吗?
    freefcw
        5
    freefcw  
       2012-03-10 22:32:16 +08:00
    @ivanlw 应该是权限的问题,你看看/var/log/nginx/下面的日志试试
    feiandxs
        6
    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
        7
    ivanlw  
    OP
       2012-03-10 22:55:38 +08:00
    @freefcw /var/log里面木有nginx这个目录唉……
    lerry
        8
    lerry  
       2012-03-10 22:55:47 +08:00
    403,我遇到的都是文件夹权限问题
    Livid
        9
    Livid  
    MOD
       2012-03-10 22:58:17 +08:00 via iPhone
    因为 Mac OS X 会保护用户的主文件夹。
    standme
        10
    standme  
       2012-03-10 23:06:37 +08:00 via iPhone   ❤️ 1
    无法列目录吧,把nginx.conf 里的 server 配置上 autoindex on;
    应该就可以了。
    freefcw
        11
    freefcw  
       2012-03-10 23:18:54 +08:00
    @ivanlw 这个。。。我还真不知道你的那个日志在哪里了,403的forbidden很显然是没有权限
    ivanlw
        12
    ivanlw  
    OP
       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
        13
    ivanlw  
    OP
       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
        14
    freefcw  
       2012-03-11 15:43:51 +08:00
    @ivanlw 嗯,这个确实是日志文件
    不用sudo直接运行的话应该是没有权限打开日志文件的

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

    你们平时的www目录放哪里呢?如果不放自己的主文件夹,新建个文件都要权限很麻烦啊
    freestyler
        21
    freestyler  
       2012-03-13 11:08:00 +08:00
    @lvanlw 注释掉没用的,代码里面的默认就是nobody
    cana
        22
    cana  
       2012-03-13 12:28:42 +08:00
    nginx -t看一下配置错了没
    fangpeishi
        23
    fangpeishi  
       2012-12-12 22:06:03 +08:00
    /Users/我的用户名/Documents/www权限不对。刚刚遇到这个问题。修改权限解决了。
    v88ex
        24
    v88ex  
       2013-11-04 21:12:26 +08:00   ❤️ 1
    我遇到过类似的问题,不过把#user nobody 注释去掉改成user root 之后,搞定了。
    不过nginx跑在root用户下不知道是不是不安全。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3254 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:46 · PVG 19:46 · LAX 04:46 · JFK 07:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.