ste*_*zer 6 php ruby capistrano web-deployment capistrano3
我使用gem capistrano-env并发现了一个小问题.我的部署脚本是:
Capistrano::Env.use do |env|
env.add 'DB_DSN', 'mysql:host=localhost;dbname=dbname'
env.add 'DB_USER', 'user'
env.add 'DB_PASS', 'pass'
end
Run Code Online (Sandbox Code Playgroud)
此代码.env在部署后在服务器上创建文件.但!.env文件权限是640,我的PHP脚本无法读取它.我可以chmod在每次部署后运行命令,但可能存在其他不错的解决方案?
编辑
我创建了pull请求并filemode在此gem中添加了新选项.那么,现在的解决方案是:
Capistrano::Env.use do |env|
env.add 'DB_DSN', 'mysql:host=localhost;dbname=dbname'
env.add 'DB_USER', 'user'
env.add 'DB_PASS', 'pass'
env.filemode = 0644
end
Run Code Online (Sandbox Code Playgroud)
你有几个选择可以让这更好.
它看起来不像capistrano-env支持自定义权限设置,但也许可以添加该功能!在GitHub上打开一个问题,也许项目维护者会添加它.
您可以修改您deploy.rb的chmod命令以运行必要的命令.这样,您不必在每次部署后手动运行chmod.
像这样的东西:
# In deploy.rb
after "capenv:copy", "capenv:chmod" do
on roles(:all) do
execute "chmod", "a+r", "#{release_path}/#{Capistrano::Env.filename}"
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
481 次 |
| 最近记录: |