要是你採用了Vlad Deployer,基本上可以簡化相當多Mongrel cluster的設定,但有關啟動Mongrel cluster的帳號或開機時一併啟動Mongrel cluster等等,還需要花點工夫。
首先,請在之前提過的deploy.rb設定檔做如下設定,安排好Mongrel的帳號、幾部Mongrel伺服器以及啟動的port、啟動的環境等等:set :mongrel_user, "mongrel"
set :mongrel_group, "www-data"
set :mongrel_servers, 18
set :mongrel_port, 9000
set :mongrel_environment, "development"
設定好之後,按以下指令就可以產生Mongrel設定檔:
rake vlad:target:macmini vlad:setup接著,請建立一個mongrel帳號,專門用來啟動Mongrel,不這麼做的話,八成都是以root或您自己的管理帳號啟動,這會造成安全疑慮:
adduser --system --group --no-create-home mongrel再來請修改log/ pids目錄權限,這樣以mongrel帳號啟動的Mongrel才有辦法將log檔、pid檔寫入這兩個目錄,絕大多數無法順利啟動Mongrel的原因,幾乎都是這兩個目錄權限沒修改過所造成的:
chown mongrel:www-data /myrails/shared/log chown mongrel:www-data /myrails/shared/pids以下是隨Debian linux開機時一併啟動Mongrel的方式,如果你的機器上有好幾種不同的Rails app,請做symbolic link到該目錄下:
mkdir /etc/mongrel_cluster chown mongrel:www-data /etc/mongrel_cluster ln -s /myrails/shared/mongrel_cluster.conf /etc/mongrel_cluster/railsapp1.yml再來是做一個隨開機啟動的script,原先安裝在/etc/init.d底下的mongrel-cluster是爛掉的,我們要拿mongrel_cluster gem裡頭的原裝貨來用:
rm /etc/init.d/mongrel-cluster cp /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.1.1/resources/mongrel_cluster /etc/init.d/接著修改成可執行權限,然後下指令放到相關的執行階段即可:
chmod +x /etc/init.d/mongrel_cluster update-rc.d mongrel_cluster defaults
以上設定完成之後,下次您的Linux啟動時,您所指定的Mongrel cluster就會依照您所指定的帳號、數量、埠以及執行環境來啟動了。
