防止OpsWorks使用符号链接覆盖CodeIgniter的“system”目录

llycmphe  于 2023-03-16  发布在  其他
关注(0)|答案(1)|浏览(132)

我有多个CodeIgniter应用程序,我想用Amazon OpsWorks部署一个非常标准的“PHP应用服务器”层和一个自定义配方来调整权限。问题是部署脚本似乎会自动删除任何current/public/system目录,并用指向shared/system的符号链接替换它。
这是非常烦人的,因为CodeIgniter的所有文件过去都在current/public/system目录中。
有人知道如何阻止OpsWorks创建这个符号链接吗?
谢谢

ymdaylpp

ymdaylpp1#

这是不可能的,除非你创建自己的修改版本的AWS食谱,这样做。具体原因是食谱在:here
一种可能的解决方法:

## deploy/before_migrate.rb (in your app repo )

deploy_to = deploy_resource.deploy_to

dirs_to_protect = [ "public" ]
dirs_to_protect.each {|dir| 
    bash "save #{dir}" do
      code <<-EOL
        cp -a #{release_path}/#{dir}/* #{deploy_to}/shared/#{dir} 
      EOL
    end
}

这将把你需要保护的目录保存在符号链接发送到的共享文件夹中。你可以很容易地改变目的地,或者只是在符号链接之后写另一个钩子来移除符号链接的目录。等等。记住,如果它不是默认文件夹,你需要自己在循环中创建它。
更多关于钩子的信息:Chef Deployment Hooks

相关问题