Daa*_*ron 6 deployment capistrano capifony
我正在尝试配置Capistrano,以便它适用于我们的服务器设置.我们正在部署symfony项目,所以我也使用capifony.我仍然遇到一些权限问题.
在我们的服务器上,每个项目都以项目用户身份运行,因此每个项目都有自己的用户.所以我配置了use_sudo并将其设置为true,我将admin_runner配置为项目的用户.但它仍然没有用,所以我修改了capifony以开始使用try_sudo而不是常规运行.这使它的工作更好一些.但我对在这种情况下使用什么感到困惑.你有try_sudo,sudo和run.但哪个用例需要哪个?
现在我的问题是deploy:symlink方法这也只是一个常规的运行命令,所以它作为本地用户执行,当我尝试查看网站时,它会给出权限问题.
所以有人能告诉我,如果我对3个命令的描述是正确的吗?还有谁知道如何使用admin_runner和use_sudo,以便正确完成符号链接(以及capistrano完成的所有其他命令)?
亲切的问候,
大安
很抱歉这么迟的答复达安。您对 Capistrano 的理解是正确的。另请注意,该:use_sudo标志默认为true。
在 Capistrano 2.11.2 中,您将找到 lib/capistrano/configuration/variables.rb:
_cset(:run_method) { fetch(:use_sudo, true) ? :sudo : :run }
Run Code Online (Sandbox Code Playgroud)
和 lib/capistrano/recipes/deploy.rb:
def try_sudo(*args)
options = args.last.is_a?(Hash) ? args.pop : {}
command = args.shift
raise ArgumentError, "too many arguments" if args.any?
as = options.fetch(:as, fetch(:admin_runner, nil))
via = fetch(:run_method, :sudo)
if command
invoke_command(command, :via => via, :as => as)
elsif via == :sudo
sudo(:as => as)
else
""
end
end
Run Code Online (Sandbox Code Playgroud)
也许您的权限问题涉及您的服务器,以普通用户身份运行,无法读取current符号链接指向的发布目录的内容?
| 归档时间: |
|
| 查看次数: |
4506 次 |
| 最近记录: |