symfony - Capifony + Symfony2 写入缓存文件失败

标签 symfony deployment capifony

使用 capistrano 将我的开发环境部署到外部开发服务器时,我总是收到以下错误:

RuntimeException: Failed to write cache file "/var/www/xyz.co.uk/app/cache/dev/classes.php".

然后我必须登录我的开发服务器并删除我的 app/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,            "git@github.com: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

最佳答案

我的 deploy.rb 文件中有这个来设置缓存目录的权限:

after "deploy:update_code" do
  capifony_pretty_print "--> Ensuring cache directory permissions"
  run "setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX #{latest_release}/#{cache_path}"
  run "setfacl -dR -m u:www-data:rwX -m u:`whoami`:rwX #{latest_release}/#{cache_path}"
  capifony_puts_ok
end

关于symfony - Capifony + Symfony2 写入缓存文件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15838981/

相关文章:

Symfony PHP Unit Bridge 只显示一次弃用通知

php - __halt_compiler 之后的代码执行

python - Heroku/python 未能检测到 set buildpack

symfony - 使用capifony在symfony2部署上,方法Assetic\AssetWriter::getCombinations()不存在异常

amazon-ec2 - 在进行滚动部署时,如何确保 Cloudfront 具有正确的 Assets 版本?

ruby - Capifony 数据库函数失败并显示 `require' : cannot load such file -- FileUtils (LoadError)

symfony - FOSUserBundle 登录后重定向的最佳方法是什么

php - 找不到 Symfony 4 phpunit 类 WebTestCase

windows - 为什么 Qt 让开发人员为每个应用程序包含他们的 dll?

web-services - 使用生产代码部署配置文件