【问题标题】:Work(flow) Setup: Remote Debian VM (in office), ssh, web development工作(流程)设置:远程 Debian VM(在办公室)、ssh、Web 开发
【发布时间】:2016-11-08 23:23:19
【问题描述】:

通常我在本地开发(在我自己的机器上)并通过映射驱动器、ftp、github 等推送到需要去的任何地方。我在 vagrant/virtualbox 上做了一些工作(但同样是在本地)使用共享/镜像文件夹。

我现在处于这样一种情况,这里的每个人都可以访问他们自己的开发盒(网络上的虚拟机)。我相信有些人直接通过 SSH 在 Vim 中工作,但我还没有。所以我留下了一个问题:(更多是前端人员)处理这个问题的最佳方式是什么?

我听说在我的工作站上进行 SSH 挂载……如​​果这是可行的话。我很好奇每个人对这种环境的看法以及(也许)任何最佳实践。提示、链接和阅读也非常受欢迎和赞赏......任何指向好的方向都会很棒。

谢谢。

【问题讨论】:

  • 当有人提到 ssh-mount 时,他/她一定是指 sshfs,一个基于 ssh 的 fuse(用户空间中的文件系统)文件系统驱动程序。这些东西非常可行,多年来我一直在做 Web 开发,使用 sshfs 安装服务器空间并直接在这个文件系统上工作。它简直完美无瑕。

标签: web-services ssh debian virtual-machine frontend


【解决方案1】:

SSH 挂载确实允许您使用 VM 上的所有文件,就好像它们存储在您的本地计算机中一样,让您可以编辑和更新文件,而无需在每次执行更改时手动复制它们。但是,您将遇到减速带,因为每次更改的文件都必须同步/复制到您的远程计算机,这需要几秒钟。查看 DigitalOcean 的 this 帖子,他们解释了如何让 SSH 挂载工作。

您拥有的更好的选择(恕我直言)是在保存或手动执行此操作后将IDE in your local machine that allows you to push changes 用于服务器。这将允许您使用本地资源(本地 Web 服务器)更快地开发,因为不必通过网络将文件复制到远程 VM;并且还允许您在准备好在该环境上进行测试时上传文件,以便在需要时在该远程 VM 上进行测试。

PS:将可视化应用程序或环境从远程计算机导出到本地计算机可能会很慢(取决于您的网络和运行您计算机的 VM 主机负载)。如果您仍然喜欢这种方法,您还可以安装一些东西以通过更标准和更轻量级的东西来访问该 VM,例如 RDP for GNU/Linux (xrdp)。

【讨论】:

  • 感谢您的回复——我没有考虑在本地工作(不幸的是,我目前使用的是 Windows 机器),我的主要威慑是在我的 (假设)WAMP 和远程机器 Debian (Jessie)。
【解决方案2】:

最佳答案来自您希望为虚拟联网 VM 使用哪些虚拟资源。如果您只想要存储空间,那么共享虚拟机的驱动器,并将它们安装在本地,将它们视为本地,故事结束。如果您想在远程机器上运行所有处理,并从瘦客户端连接,您有几个选项,但它们都采用相同的形式。连接到机器,编辑远程机器上的文件。根据您的操作系统,您将有不同的可用选项。

  • 如果远程计算机没有安装图形客户端,您也无法使用,在本地安装远程共享(您可以使用任何您想要的编辑器)或 ssh 到远程计算机并使用命令行编辑器 ( vim、nano、emacs)。

  • 如果安装了图形客户端,您有更多选择:

    • 使用任何可视查看器(Windows 的 mstsc,vnc 是一个选项)远程在服务器中,然后使用您选择的任何远程安装的编辑器。

    • 远程使用 ssh -X,然后运行远程安装的编辑器。假设您在本地有一个 X-Server(如果您正在运行 linux,那么您已经这样做了),应用程序的 GUI 部分将在 ssh 隧道的客户端运行,并且该进程将在服务器上运行。这可能是最好的选择。

所以:

  • 确保远程服务器具有桌面客户端软件(gtk、kde、gnome、几乎所有 Windows 操作系统等...)
  • 在该服务器上安装您选择的 GUI 编辑器
  • ssh -X 到该服务器
  • 安装 sublime text、geany 或您选择的编辑器
  • 运行sublgeany或其他方式启动应用程序。

【讨论】:

  • 好吧,ssh X11 转发可能会带来比网络文件系统更高的网络流量开销,更不用说在更高的网络负载下有缺陷的用户体验了。如果网络挂载也是可接受的解决方案,我也不建议采用这种方式。
  • 这真的取决于你想要优化什么,如果你想获得具有高性能、存储、互联网的远程服务器的好处,而你在本地没有,X 将是一个不错的选择。如果您在(或桌面上)有一只野兽,并且您只是在寻找备份解决方案,那么rsync 会更好。您可以实施的内容范围很广,这取决于您的目标。
  • 感谢您的回复,沃伦。这对我(希望其他人)以及这里的 cmets 来说是一个很好的基准!目前,我正在使用 SFTP NetDrive(免费)从我的 Win box Sublime 进行 SSH 映射,并使用 HeidiSQL 作为 DB 客户端(当然还有一个 SSH 客户端来处理权限等)。此外,在远程机器上,我已经加载了 Laravel(特别是 Lumen)、Apache2/MySQL、Composer 等......然后只需点击远程机器的 ip 即可进行测试/查看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2010-09-26
  • 2015-06-23
  • 2016-02-11
  • 2015-08-07
相关资源
最近更新 更多