首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony2 + Capifony

Symfony2 + Capifony
EN

Stack Overflow用户
提问于 2013-03-13 18:39:15
回答 2查看 1K关注 0票数 2

我正在尝试配置Capifony以部署到我的远程服务器。我想知道的是我的uploads目录是否应该在.gitignore中?当运行cap development depoy时,我得到一个符号链接错误:

代码语言:javascript
复制
executing "ln -nfs /var/www/dev.xyz.co.uk/shared/web/uploads /var/www/dev.xyz.co.uk/releases/20130313103147/web/uploads"

*** [err :: x.xx.xx.xxx] ln:
*** [err :: x.xx.xx.xxx] failed to create symbolic link `/var/www/dev.xyz.co.uk/releases/20130313103147/web/uploads'
*** [err :: x.xx.xx.xxx] : No such file or directory
*** [err :: x.xx.xx.xxx] 

这是因为/web/uploads在.gitignore中,所以永远不会为了符号链接而从git中取出它吗?

我是否需要首先在远程服务器上克隆我的存储库,或者Capifony会为我做这件事吗?

下面的deploy.rb:

代码语言:javascript
复制
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 :scm,         :git
set :repository, "git@github.com:test/#{application}.git"
set :keep_releases,  3
set :use_sudo,       false
set :shared_files,      ["app/config/parameters.yml"]
set :shared_children,   [app_path + "/logs", web_path + "/uploads", "vendor"]
set :use_composer, true
set :update_vendors, true
set :dump_assetic_assets, true
set :deploy_via, :copy

logger.level = Logger::MAX_LEVEL

下面的development.rb:

代码语言:javascript
复制
server 'x.xx.xx.xxx', :app, :web, :primary => true
ssh_options[:port] = xxxx
ssh_options[:forward_agent] = true
set :deploy_to, "/var/www/xyz.co.uk/"
set :symfony_env_prod, "dev"
EN

回答 2

Stack Overflow用户

发布于 2013-03-13 20:34:56

有几种方法可以实现这一点。

将空文件夹提交给git:

创建包含以下内容的文件/web/uploads/.gitignore:

代码语言:javascript
复制
!.gitignore

这将允许将目录提交到存储库,但所有内容都将被忽略。它将在每个部署上创建一个空的上传文件夹。

将上载创建为所有部署的共享文件夹

这种方法的优点是可以在部署之间保留您的上传内容--这可能是您想要的。

在deploy.rb中创建"firstdeploy“任务,该任务仅在初始部署时执行,并在此阶段创建目录:

代码语言:javascript
复制
run "mkdir -p #{shared_path}/web/uploads"

在部署配置中,将其配置为共享路径,如下所示

代码语言:javascript
复制
set :web_path,   "web"
set :shared_children, [web_path + "/uploads"]

我发布了我的部署脚本here,如果它有用的话。

票数 1
EN

Stack Overflow用户

发布于 2013-03-13 19:21:38

我认为对于/config/parameters.yml,您可以忽略它

但是你应该在共享文件夹中手动创建上传文件夹,你做到了吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15382956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档