我的 Rails 应用程序在 engineyard 服务器上。
我需要为公用文件夹创建符号链接。
如何在engineyard服务器上创建符号链接?
我没有部署经验,所以我很想知道符号链接的重要性以及应该为哪个文件夹创建它?
另外,目前我正在使用我的暂存环境,我应该在代码中编写什么或创建一个文件,以便在我在生产中部署相同的代码时它应该自动创建一个符号链接。
谢谢!
我的 Rails 应用程序在 engineyard 服务器上。
我需要为公用文件夹创建符号链接。
如何在engineyard服务器上创建符号链接?
我没有部署经验,所以我很想知道符号链接的重要性以及应该为哪个文件夹创建它?
另外,目前我正在使用我的暂存环境,我应该在代码中编写什么或创建一个文件,以便在我在生产中部署相同的代码时它应该自动创建一个符号链接。
谢谢!
在 EngineYard 上创建符号链接的正确方法是添加部署挂钩。您想在项目中添加 /deploy 目录并添加 before_symlink.rb 文件。
例如,如果我将一个配置文件放在共享目录(/data/my_app/shared/config)中,我可以添加一个部署挂钩来符号链接这个文件。
您的文件内容如下所示:
run "ln -nfs #{shared_path}/config/some_config.yml #{release_path}/config/some_config.yml"
#{shared_path} 变量指向您的应用程序共享目录,#{release_path} 是作为部署的一部分创建的当前版本。
更多信息请访问:http ://docs.engineyard.com/use-deploy-hooks-with-engine-yard-cloud.html
每当您部署时,符号链接应该会自动创建。其目的是在多个部署中保持应用程序的相同路径。部署应用程序时,应创建指向最新版本的符号链接,如下所示(在 Unix 机器上):
ln -s /application/releases/10102011011029/public /application/current
第一个路径是真实的文件或目录。第二个路径是符号链接的路径和名称。现在,当您将某些内容指向 /application/current 时,它将位于最新版本中。
如果您使用Capistrano,所有这些都会在您部署时自动为您处理好。