当使用Capistrano的我总是碰到下面的错误部署我的开发环境,以我的外部开发服务器:Capifony + Symfony2中无法写入缓存文件
RuntimeException: Failed to write cache file "/var/www/xyz.co.uk/app/cache/dev/classes.php".
然后,我必须登录到我的开发服务器,并删除我的应用程序/ cache/dev /目录。
这里是我的development.rb文件:
server 'x.xx.xx.xxx', :app, :web, :db, :primary => true
ssh_options[:port] = 1234
ssh_options[:forward_agent] = true
set :deploy_to, "/var/www/xyz.co.uk"
set :symfony_env_prod, "dev"
set :branch, "develop"
# Need to clear *_dev controllers
set :clear_controllers, false
而且我deploy.rb文件:
set :stage_dir, 'app/config/deploy' # needed for Symfony2 only
set :stages, %w(production staging development)
require 'capistrano/ext/multistage'
set :application, "xyz.co.uk"
set :user, "root" # The server's user for deploys
set :normalize_asset_timestamps, false
set :repository, "[email protected]:xyz/xyz.co.uk.git"
set :scm, :git
set :keep_releases, 3
set :use_sudo, false
set :web_path, "web"
set :shared_files, ["app/config/parameters.yml"]
set :shared_children, [app_path + "/logs", web_path + "/uploads"]
set :use_composer, true
set :update_vendors, true
set :dump_assetic_assets, true
set :deploy_via, :remote_cache
#logger.level = Logger::MAX_LEVEL
这很可能是一个权限问题。 – cheesemacfly 2013-04-05 16:38:30
因为我部署为根?如何在部署时设置缓存和日志权限? – user1961082 2013-04-05 17:03:16
您不应该以root身份进行部署,因为这是一个主要的安全问题。更好的办法是创建一个单独的用户来进行部署。或者,如果你是唯一的部署者,你可以像你一样部署。 – 2013-04-07 10:43:31