Articles of ruby

设置Rails的生产服务器

我目前在一台虚拟机上安装Ubuntu Server 10.04,我将在其中运行我的Web应用程序,以便在“生产”环境中看到它是如何运行的。 托pipeRails应用程序时应安装哪些软件以及安装的常用软件/软件包是什么? 在我的真实生产环境中,我运行Ubuntu Server 10.04 64位,Apache2,PHP5,MySQL,并使用Virtualmin来pipe理这些站点上的设置,因此我希望它能模仿真正的生产Web服务器,因为它将被部署到那个时候应用程序已准备就绪。 我已经在我的真实生产Web服务器上安装了Passenger。 我只是寻找我应该安装在我干净的Ubuntu服务器的软件。 编辑:也是build议在生产中使用RVM?

为什么安装libapache2-mod-passenger需要Ruby 1.8?

Ubuntu 10.04。 我已经通过rvm安装了Ruby 1.9.2,并且想要使用Passenger来为Rails应用程序提供服务。 但是,如果我sudo apt-get install libapache2-mod-passenger ,它告诉我,即将安装ruby,ruby1.8,rubygems,rubygems1.8,irb1.8,rdoc1.8以及其他一些软件包。 有没有安全的方法来避免安装这些,因为我已经安装了ruby和rubygems,并不需要任何ruby1.8?

CentOS – ruby – 可执行主机ruby是必需的

我试图在CentOS 5.6系统(内核v2.6.18-238.12.1.el5)上编译ruby(v1.9.2),但在制作过程中不断收到“可执行主机ruby是必需的”错误消息。 这里是步骤: ./configure –prefix=/usr/local/ruby make 我收到以下错误(完整): echo executable host ruby is required. use –with-baseruby option.; false ./tool/generic_erb.rb -c -o known_errors.inc ./template/known_errors.inc.tmpl ./defs/known_errors.def executable host ruby is required. use –with-baseruby option. 我读了“–with-baseruby”选项的描述,但似乎是循环的,我试图安装ruby。 所以我需要做一些事情: –with-baseruby=/usr/local/ruby/… ? 提前致谢。

Bootstrap和部署 – 厨师和Capistrano

我一直在网上查找人们在使用厨师/ capistrano调整网站时使用的做法,并且没有在这方面find太多的程序信息,所以我想在这里问。 我们在服务器上以有限的方式使用厨师,我们正在使用capistrano进行部署。 由于各种原因,我们不会使用厨师部署资源来部署我们的应用程序。 我们将使用厨师引导应用程序服务器来扩展我们的网站。 从我可以收集什么我会做的是引导与应用程序服务器angular色的节点,然后运行,帽部署。 这将与一些自定义脚本与ruby和雾gem。 cap HOSTFILTER:ip.add.ress.here production deploy 我的问题是: 其他人在扩展网站和部署时使用的一些常见方法是使用厨师进行部署 主机filter是完成这个最好的方法吗? 我应该重新部署到所有节点时,缩放而不是单一的节点? 任何其他gotchas /等赞赏。

单独的服务器为Resque工作者

我正在尝试为Rails项目分割几个服务器,其中一部分就是将Resque工作者分离出来的想法。 我已经把Redis打破了,但是在其他地方安置Resque工人是很常见的吗? 他们是否需要绑定到应用程序本身? 如果可以这样做,是否有任何通常引用的最佳实践或关于这个问题的写作? 如果没有,我最好在运行Resque工作的应用程序服务器上投入更多的内存吗? 我打算用领class来监督这一切,创造新的就业机会。

我如何设置Redis在Mac上自动在我的Ubuntu机器上运行

在我的(新)mac我可以使用spork和redis似乎已经在运行。 但是在我的Ubuntu系统(11.10),我得到了 Connection refused – Unable to connect to Redis on localhost:6379 (Errno::ECONNREFUSED) 我可以用redis-server来解决这个问题,在这个窗口中,redis作为前台进程启动。 我该如何让redis-server始终在我的Ubuntu上运行? 即通过重新启动 我想将redis服务器放在我的.bashrc中,但是我不希望每个新的terminal窗口都启动一个新的redis服务器。 它可以在我的.bash_login?

如何使用monit来确保只有一个进程实例正在运行

我有ruby守护进程运行。 有一段时间,我们会无意中启动它的第二个实例,这会导致竞争条件。 我可以使用Monit检测是否有多个“my_ruby_daemon”实例在运行? 如果是这样,杀死额外的实例?

build立RVM,乘客/ Apache与多个ruby和作为特定用户运行的最佳做法?

我的目标是在不同的服务器用户下运行ruby应用程序,并使用不同版本的ruby。 所以我会有用户作为“托pipe帐户”本质上。 文档根目录/应用程序文件将与RVMpipe理的ruby版本和gemset一起存在于其主目录中。 用户将有一个或多个networking应用程序需要运行。 此用户站点的虚拟主机将指向用户主目录中的文档根目录,Web服务器也将以该user:group身份有效运行。 示例布局: /home/theuser /.rvm /applications /railsapp1 /public [ other rails dirs ] /somephpapp (symfony, zf, etc.) /public [ other framework dirs ] /www /railsapp1.com (ln -s ../applications/railsapp1/public) /somestaticsite.com /somephpapp.com (ln -s ../applications/somephpapp/public) 所以… 问题1:我甚至有可能? 我知道乘客在虚拟主机级别支持ruby版本和乘客用户(我假设乘客用户等同于指定用户:fcgi,php-fpm,SuExec组),但是我发现所有的intstuction似乎都安装了apache模块特定的RVM用户,这似乎很奇怪。 还是只是创build一个通用用户来安装模块,然后在每个帐户的基础上做所有其他的事情? 问题2:即使这是可能的,设置的正确方法是? 这里最好的做法是什么: networking服务器/应用程序必须作为给定帐户的用户:组运行 必须有能力在每个应用程序的基础上运行不同版本的ruby 每个用户必须能够运行多个应用程序 每个应用程序必须包含在特定用户的主目录下 用户必须沙箱到他/她的homedir(不是一个sodoer) (注意:除了奇怪的shell脚本,我自己也不是ruby dev / user,或者使用compass / zurb-foundation,所以我打开Passenger之外的其他选项,而且这个服务器并不是一个生产环境。

GitLab&nginx:502

我已经按照给定的官方说明安装了GitLab,但是在尝试使用它时收到了502错误。 Nginx日志条目: *30 upstream prematurely closed connection while reading response header from upstream, client: 95.27.118.xx, server: gitlab.somehost.net, request: "GET /users/sign_in HTTP/1.1", upstream: "http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/users/sign_in", host: "gitlab.somehost.net" 正如我从以前的GitLab安装经验中记得的那样,错误原因是GitLab在第一次用户访问时初始化,而nginx认为它是超时的,所以解决方法是增加一些超时值。 问题是我不记得哪个超时我应该增加(这解决了以前的安装我的错误),谷歌并没有帮助我。

为虚拟机设置文件的MAC地址

我不确定这是否完全可能,所以认为这值得提问。 我想使用Vagrant来允许用户在需要时启动虚拟机。 但是,在我们的networking上,设备必须通过其MAC地址进行注册。 创build一个地址池不是一个问题,但可以select一个虚拟机的地址,即一步一步的过程: 读取MAC地址的文件 select未被使用的MAC地址 启动虚拟机并设置MAC地址 希望有人能告诉我这个,因为我的谷歌search失败了。