V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
sutking
V2EX  ›  NGINX

求助一个关于开机自动启动 nginx 的问题~

  •  1
     
  •   sutking · 2015-05-05 07:15:15 +08:00 · 3689 次点击
    这是一个创建于 3480 天前的主题,其中的信息可能已经有所发展或是发生改变。

    centos6.6 64位是我的系统,已经编译安装好nginx,通过
    /usr/local/nginx/sbin
    ./nginx
    可以正常启动nginx服务,
    但是service nginx start(stop,restart,reload)
    就都没有任何反应
    在网上找的办法几乎都是通过写js脚本,然后命令加入rc.local实现
    我试过之后发现重启也是没有启动nginx服务……
    比较郁闷,请问该怎么解决?
    谢谢~~

    第 1 条附言  ·  2015-05-05 13:05:12 +08:00
    真心非常感谢大家!!这么短的时间问题已经解决了,V2EX是我用过解决问题最快的社区,太感谢你们了!开始放感谢!
    现在写出来成功解决我的问题的方法:
    我进行了两个操作:
    ㈠按照@yaxin 说的,在rc.local中加入了`/path/to/nginx/sbin/nginx`
    ㈡按照@xiaobu 说的,直接`echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.d/rc.local`
    然后`reboot`,成功。
    现在还不确定是谁的办法帮到了我,其实想确定也很简单,直接删掉rc.local中的`/path/to/nginx/sbin/nginx`然后重启系统就知道了,但是懒得弄了~~
    总之,感谢大家给我热情的帮助!你们真的感动到我了!!谢谢大家!!!?
    第 2 条附言  ·  2015-05-05 21:42:01 +08:00
    重新研究了下rc.local这个东西,才发现附言一当中㈠和㈡其实是同一回事儿~~~
    哈哈~~~
    又涨姿势了~~~
    27 条回复    2015-05-05 13:19:37 +08:00
    Septembers
        1
    Septembers  
       2015-05-05 07:17:51 +08:00
    sutking
        2
    sutking  
    OP
       2015-05-05 07:22:06 +08:00
    @Septembers 就是按照这个页面的这个方法搞得不起作用啊……
    oott123
        3
    oott123  
       2015-05-05 07:48:51 +08:00 via Android   ❤️ 1
    为啥是写 js 脚本…
    sutking
        4
    sutking  
    OP
       2015-05-05 08:14:38 +08:00 via iPhone
    @oott123 一楼那个网址进去不就是一个js脚本吗
    avtester
        5
    avtester  
       2015-05-05 08:15:38 +08:00
    @sutking 是不是没调整nginx bin文件和配置文件的路径
    yaxin
        6
    yaxin  
       2015-05-05 08:15:41 +08:00   ❤️ 1
    js脚本??? 如果单单是开机自启,你可以在rc.local中加入/path/to/nginx/sbin/nginx就行了
    sutking
        7
    sutking  
    OP
       2015-05-05 08:22:03 +08:00 via iPhone
    @oott123 sorry,是我理解有误,不是js脚本,感谢指正
    loading
        8
    loading  
       2015-05-05 08:25:59 +08:00 via Android   ❤️ 1
    shell 脚本!
    usernametoolong
        9
    usernametoolong  
       2015-05-05 08:47:34 +08:00
    init.d下的文件没弄好
    micate
        10
    micate  
       2015-05-05 08:51:26 +08:00   ❤️ 1
    1. 保存 http://wiki.nginx.org/RedHatNginxInitScript 文中的 shell 内容到 /etc/init.d/nginx
    2. chmod +x /etc/init.d/nginx
    3. chkconfig --add nginx
    4. service nginx start
    micate
        11
    micate  
       2015-05-05 08:53:51 +08:00   ❤️ 1
    @micate

    还要注意修改 http://wiki.nginx.org/RedHatNginxInitScript 文中的 nginx 和配置文件路径:

    nginx="/usr/sbin/nginx"
    NGINX_CONF_FILE="/etc/nginx/nginx.conf"

    上面的路径需要和你编译安装的路径一致
    anyforever
        12
    anyforever  
       2015-05-05 09:06:07 +08:00
    这问题你百度一下就能找到一堆答案了。比这里问快的多。
    Septembers
        13
    Septembers  
       2015-05-05 09:06:48 +08:00
    @micate 好吧我题主想的太聪明了,没认知看内容
    shiny
        14
    shiny  
       2015-05-05 09:35:46 +08:00
    为啥不 yum 安装呢,嫌版本低?
    sutking
        15
    sutking  
    OP
       2015-05-05 10:09:12 +08:00 via iPhone
    @avtester 可否详细解说一下?初学者🔰,手还比较生~谢谢了~
    sutking
        16
    sutking  
    OP
       2015-05-05 10:10:34 +08:00 via iPhone
    @yaxin 不是js脚本,我理解错了
    请问一下/path/to/该怎么理解呢?
    fising
        17
    fising  
       2015-05-05 10:16:42 +08:00   ❤️ 1
    @sutking /path/to/ 就是指的路径。是代指,不是具体的路径。
    frankzeng
        18
    frankzeng  
       2015-05-05 10:18:26 +08:00   ❤️ 1
    @sutking 你安装的位置。比如/usr/local
    frankzeng
        19
    frankzeng  
       2015-05-05 10:20:54 +08:00
    @sutking 你可以写个监控的脚本,5分钟检查一下发现不存在nginx进程,就启动一下,这样也可以避免以后进程挂掉后服务不可用。
    sutking
        20
    sutking  
    OP
       2015-05-05 10:25:08 +08:00 via iPhone
    @micate 嗯,之前就是按照这样一步一步来的,不过没起作用,手动输入`service nginx start`也不管用我就郁闷了,可能是位置没写对吧,可是我没找到9,10,11,三行“config”“pidfile”的位置在哪,就没改,用whereis也找不到…(˃̣̣̥᷄⌓˂̣̣̥᷅)
    Ansen
        21
    Ansen  
       2015-05-05 11:08:33 +08:00   ❤️ 1
    Ansen
        22
    Ansen  
       2015-05-05 11:08:51 +08:00
    Ansen
        23
    Ansen  
       2015-05-05 11:09:03 +08:00
    好吧,我放弃,不会贴代码了
    xiaobu
        24
    xiaobu  
       2015-05-05 11:25:34 +08:00   ❤️ 1
    echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.d/rc.local
    sutking
        25
    sutking  
    OP
       2015-05-05 12:51:43 +08:00
    @fising 就是说应该将/path/to/根据我自己的实际情况修改吗?
    extreme
        26
    extreme  
       2015-05-05 12:59:34 +08:00   ❤️ 1
    @sutking 还可以这样:
    ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
    我不确认你的Nginx配置文件目录是否在/usr/local/nginx/conf ,如果是,就执行:
    ln -s /usr/local/nginx/conf /etc/nginx
    以上是创建符号链接,那样你就不用修改那个Shell Script的内容了。
    ryd994
        27
    ryd994  
       2015-05-05 13:19:37 +08:00
    为啥自己编译?
    乖乖用官方源,别作……
    要改参数的话学会rebuid SRPM
    比自己编译靠谱多了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5994 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:07 · PVG 10:07 · LAX 18:07 · JFK 21:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.