在 Vagrant 中通过共享文件访问 CKAN 源文件

Access CKAN Source Files Via Shared Files In Vagrant

背景信息

我已经将 CKAN 安装到 Vag运行t 环境中,我希望能够查看和编辑配置文件 (etc/ckan) 和源文件 (/usr/lib/ckan ) 在我本地机器上的文本编辑器中(不是在 Vim over ssh 中)。这是我的文件夹结构:

VagrantFile 中的以下两行允许我查看本地桌面中的 ckan-configckan-source 文件夹:

config.vm.synced_folder "ckan-config/", "/etc/ckan"
config.vm.synced_folder "ckan-source/", "/usr/lib/ckan"

这是我的问题

上面的第一行同步了 ckan-config 文件夹(包含 datapush_settings.pydefault/development.ini 之类的东西)并且工作正常。但是,如果我不对第二行进行注释,那么 CKAN 将不起作用。我收到 500 内部服务器错误

我试过注释掉第二行,启动 Vag运行t 框,取消注释,然后 运行 vagrant reload 但 CKAN 仍然无法启动。我仍然得到相同的 500 内部服务器错误

我最初是如何创建本地文件夹的

抱歉这么久 post。只想从一开始就把一切都说清楚。提前感谢您的帮助。

您需要确保 root 用户拥有您的文件夹,因为您从本地主机同步它们,默认所有者将是 vagrant

使用

更改您的设置
config.vm.synced_folder "ckan-config/", "/etc/ckan", owner: "root", group: "root"
config.vm.synced_folder "ckan-source/", "/usr/lib/ckan", owner: "root", group: "root"

您可能还需要检查权限,对于 /usr/lib/ckan 文件夹,您可能需要添加 mount_options: ["dmode:775" ,"fmode=664"]

这是使用 Vag运行t 和 ckan 的好方法。我建议你从头开始重新创建这两个目录:

  1. 将这两行添加到您的 Vag运行tfile
  2. vagrant reload
  3. vagrant ssh
  4. 重新运行三个CKAN install steps:“2.将CKAN安装到Python虚拟环境中”“4.创建一个CKAN配置文件”“8.Link到who.ini

注意我这样做了 运行 Beaker 的一个问题,这里有详细的解决方法:https://github.com/ckan/ckan/issues/3512

通过复制源目录(通过 git),您可能搞砸了安装或 virtualenv 的一些细微之处 - 例如隐藏文件、符号链接等 - 根据该错误消息,您最终没有在 virtualenv 中安装 CKAN。最好先将这些行添加到您的 Vag运行t 文件中,而不是在安装之后。