【发布时间】:2013-02-18 22:51:36
【问题描述】:
我有一个在 centOS 机器上运行的多应用系统,它由我们的主应用和部署应用组成。当客户想要我们应用程序的新实例时,他们会使用我们的部署程序,填写一些信息,然后在我们的服务器上创建新的安装。我遇到的问题是我无法让 nginx 自动重新加载它的配置文件。因此,在部署后访问新应用程序时,我们会收到 404,直到我手动重新加载。
我尝试了几种不同的方法,包括 chmod /opt/nginx/sbin/nginx 到 777,chmod 安装脚本和部署应用程序到 777,
脚本如下:
#create install directory -- works correctly
#copy files over -- works correctly
#run install script
##-- and then at this point i've tried multiple lines, including:
system("nginx -s reload") ## this works manually
system("/etc/init.d/nginx reload") ## this works manually
我已经按照这里的指示:Restart nginx without sudo? 创建了一个无需 sudo 密码即可运行的脚本,然后尝试了这个:
system("sudo /var/www/vhosts/deployer/lib/nginx_reload")
似乎没有任何效果,我假设这是一个权限错误,但也许我错了,如果有人能指出我的任何方向,那将非常有帮助,因为我一直在努力解决这个问题几天太长了,我没有新想法
【问题讨论】:
-
感谢您的建议,我明白了,我们的服务器权限混乱,nginx 以不同的用户身份运行,而不是作为乘客运行的用户,而不是作为不同用户运行的部署者该应用程序,在玩了一段时间后,我已经让它工作了
标签: ruby-on-rails linux nginx