我使用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
此代码在部署后在服务器上创建.env文件.但! .env文件权限是640,我的PHP脚本无法读取它.我可以在每次部署后运行chmod命令,但可能存在其他不错的解决方案?
编辑
我创建了pull request并在此gem中添加了新的filemode选项.那么,现在的解决方案是:
Capistrano::Env.use do |env| env.add 'DB_DSN','pass' env.filemode = 0644 end
你有几个选择可以让这更好.
>它看起来不像capistrano-env支持自定义权限设置,但也许可以添加该功能! Open an issue at 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