我有一个.htaccess文件,其中包含一行,用于指定我正在运行的应用程序的环境(登台,生产等)。
RackEnv staging
使用capistrano和capistrano-ext处理环境特定部署的最佳方法是什么?
以某种方式在capistrano任务中动态写入? 象征性地链接到特定于每个部署的现有共享.htaccess,其方式与对database.yml的方式非常相似?
还有其他选择吗?感谢
答案 0 :(得分:3)
您可以将其添加到该应用的apache配置文件中,而不是将其添加到您的.htaccess文件中,通常这将是/ etc / apache2 / sites-available / yoursite
以下是您的设置...
等文件的示例<VirtualHost *:80>
ServerName yoursite.com
ServerAlias yoursite.*
DocumentRoot /var/www/httpdocs/current/public
<Directory /var/www/httpdocs/current/>
Allow from all
Options -MultiViews
</Directory>
RackEnv staging
RailsEnv staging
# Logfiles
ErrorLog /var/www/logs/error.log
CustomLog /var/www/logs/access.log combined
</VirtualHost>
然后在您的deploy.rb文件中分离出特定于站点的内容,例如......
task :staging do
set :application, "yoursite"
set :repository, "yoursite.git"
set :branch, "master"
set :deploy_to, "/var/www/httpdocs/currebt"
server "staging.yoursite.com", :app, :web, :db, :primary => true
set :rails_env, "staging"
end
如果完成所有设置,则可以运行
cap staging deploy