我们有一个Ruby应用程序在我们的服务器上作为守护进程服务运行。目前,该应用程序位于/usr/share/theapp
下的Ubuntu计算机上。
我的问题可能有争议,但我只是想知道哪个位置实际上是Ruby应用程序的最佳,最常规的地方?以上是否正确,或者是否有针对守护程序应用程序的不同位置?
例如,通常情况下,我们将使用Apache托管的PHP Web应用程序放在/var/www/...
下,所以我认为必须有一个更好的,更好的实践位置来放置Ruby应用程序。
位置可能并不重要,因此如果应用程序托管并位于不同的文件夹中,应用程序不会中断,但我相信需要有一些形式和方法来解决这个问题。
有什么建议吗?
答案 0 :(得分:3)
在阅读了通常使用的各种目录的几个描述之后,我们将应用程序放在/ usr / local / share中。
“bin”子目录中应该可供用户使用的任何命令然后通过我们在安装时运行的rake任务从/ usr / local / bin获得它的软链接。
我同意评论说,当他们不提供HTML时,将它们放在“www”目录下是没有意义的。
答案 1 :(得分:2)
我只是添加这个作为我自己问题的答案,因为我认为其他人可能觉得它很有用,这来自http://www.ubuntugeek.com/linux-or-ubuntu-directory-structure.html:
答案 2 :(得分:0)
我部署到/u/<app_name>/revisions
使用由构建的日期时间命名的文件夹。然后我创建一个符号链接到/u/<app_name>/current
。这是capistrano的惯例,它适用于任何类型的应用程序。
u/foobar/
|- current* -> /u/foobar/revisions/042920131205
|- revisions/
|- 042920131205/
|- bin/
|- lib/
|- spec/
|- README.md
|- ... (you get the idea)
要手动制定此部署策略,您将会看到一些非常简单的命令。
date=`date +"%m%d%y%H%M"`
git clone <repo> /u/<app_name>/revisions/$date
ln -s /u/<app_name>/revisions/$date /u/<app_name>/current