Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Capifony部署到服务器X,清除服务器X和Y上的APC缓存_Php_Symfony_Capistrano_Capifony - Fatal编程技术网

Php Capifony部署到服务器X,清除服务器X和Y上的APC缓存

Php Capifony部署到服务器X,清除服务器X和Y上的APC缓存,php,symfony,capistrano,capifony,Php,Symfony,Capistrano,Capifony,我有一个带有两个节点的Web服务器集群。它们使用相同的文件服务器从中托管文件。由于文件是共享的,所以我只需要访问其中一台服务器就可以进行部署,但我希望清除这两台服务器上的APC缓存。我有没有办法告诉Capifony不要部署到第二台服务器,只需运行“symfony:clear\u apc” My deploy.rb当前的状态: set :application, "app.domain.net" set :domain, "#{application}" set :deploy_to,

我有一个带有两个节点的Web服务器集群。它们使用相同的文件服务器从中托管文件。由于文件是共享的,所以我只需要访问其中一台服务器就可以进行部署,但我希望清除这两台服务器上的APC缓存。我有没有办法告诉Capifony不要部署到第二台服务器,只需运行“symfony:clear\u apc”

My deploy.rb当前的状态:

set :application, "app.domain.net"
set :domain,      "#{application}"
set :deploy_to,   "/hosting_files/#{application}"
set :app_path,    "app"
set :web_path,    "web"

set :repository,  "git@bitbucket.org:company/#{application}.git"
set :scm,         :git
set :deploy_via,  :remote_cache

set :model_manager, "doctrine"

role :web,        "X.domain.com"
role :app,        "X.domain.com"
role :db,         "X.domain.com", :primary => true

set :keep_releases,  10
set :shared_files,      ["app/config/parameters.yml"]
set :shared_children,   [app_path + "/logs", web_path + "/uploads", "vendor"]
set :permission_method, :acl
set :use_composer,      true

set :interactive_mode,  false
set :branch, `git tag`.split("\n").last

set :user,  "applicationUser"
set :use_sudo, false
ssh_options[:forward_agent] = true
ssh_options[:keys] = [File.join(ENV["HOME"], ".ssh", "id_rsa")]

"symfony:cache:warmup"

logger.level = Logger::MAX_LEVEL

namespace :symfony do
  desc "Clear apc cache"
  task :clear_apc do
    capifony_pretty_print "--> Clear apc cache"
    run "php #{deploy_to}/current/app/console apc:clear"
    capifony_puts_ok
  end
end

after "deploy", "symfony:clear_apc"

应使用多级扩展为两个节点配置访问参数:

创建部署配置node1和node2。您将能够将文件部署到任何节点。更好的是,将其中一个节点设置为默认阶段

set :default_stage "node1"
之后,通过在cap命令后添加阶段(节点)名称,您将能够在每个服务器上分别执行symfony命令:

cap node2 symfony:clear_apc