在虚拟机上开发
Developing on VM
我目前正在使用 VirtualBox VM 进行开发。这是一个 CENTOS 盒子,Apache 和 PHP 按照以下说明安装:
http://tuline.com/wp-content/uploads/2015/11/A-Centos-Web-Development-Environment.pdf
我将服务器上的 Web 文件夹设置为 Samba 共享并将其安装在主机中 OS(Windows 7 或 10,具体取决于我正在使用的机器)。我遇到的唯一问题是当我开始一个 Symphony 项目并下载 PhpStorm 来帮助自动完成时。
PhpStorm 立即抱怨在映射的网络驱动器上工作。我不确定是否有任何功能不起作用,因为到目前为止我一直在使用 VS Code。我尝试了几种不同的共享文件夹的方式,但我对其中任何一种都不满意。
我尝试使用 VirtualBox 共享文件夹功能,然后将其映射到 Web 文件夹。这修复了 PhpStorm 投诉,但使服务器变得非常慢。基本页面从大约 150 毫秒呈现到超过 4 秒。
我还尝试使用映射的 Samba 共享作为源启动本地项目,并让 PhpStorm 自动发布更改的文件。此配置的问题是 Webpack 创建的文件不会显示在 PhpStorm 项目中,除非我手动告诉 PhpStorm 下载它们。
我目前正在考虑采用以下两种方式之一:
选项一是让 Samba 共享保持原样,让 PhpStorm 抱怨。我不知道这个选项有多明智,所以我想听听做过这个的人的意见,如果有任何我不知道的问题。
选项二是找到一种在主机 OS 中镜像文件夹的方法。然后我可以镜像 Samba 共享并在 PhpStorm 中处理目标文件夹。
我的问题是,在 VM 中开发的其他人如何处理共享文件?希望有人能有一些我没想到的聪明办法。
SSD 上的所有内容 运行 如果有任何区别的话。
编辑
我接受了 Yarimadam 的回答。如果我是从头开始,Docker 似乎是可行的方法。然而,一台开发机器 运行 Windows 7 和一台 Windows 10,学习曲线似乎有点长。
我终于一致同意保持目录同步。开始正常工作有点痛苦。这是我用来设置它们的 tutorials/articles。
https://winscp.net/eng/docs/guide_windows_openssh_server
https://mike.eire.ca/2008/10/01/configuring-unison-on-windows/
https://gist.github.com/federivo/a1c56909b3f712e516a3cd2f70c0eaa6
http://rnowling.github.io/software/engineering/2015/04/02/installing-ocaml.html
最后:
wget https://raw.github.com/ocaml/opam/master/shell/opam_installer.sh -O - | sh -s /usr/local/bin
我找不到任何涵盖有关设置 Unison 的所有内容的指南。其中大多数是 linux 到 linux,这不是问题所在。问题来自两件事。首先,版本非常匹配。这没什么大不了的,但不仅版本必须匹配,而且它们必须使用相同版本的 OCaml 进行编译。
二进制下载页面上没有关于最后一个稳定 Windows 版本使用哪个版本的注释。通过反复试验,我终于得到了 2.84.4,可以在服务器上使用 OCaml 4.03.0 正常编译。
wget 的最后一点是安装 OPAM 以安装 OCaml。我在 yum 中找不到 OPAM 的包,如果你通过 yum 安装 OCaml,它将是 4.01.0 版本,在观看目录时会崩溃。
PhpStorm 的高级功能如 code completion
和 find in path
严重依赖索引,涉及数千个文件。由于 PhpStorm 的这种性质,它需要观察项目目录中的所有更改事件并立即为它们建立索引。此过程需要快速可靠地访问项目目录。但在典型的网络共享地图中,情况并非如此。这就是 PhpStorm 抱怨您的 samba 映射的原因。
你听说过Docker吗?
这是一个类似虚拟机的容器平台,内置了挂载卷。因此您可以将本地文件夹映射到访客容器并享受实时同步。 Docker 是这个 purpose.
的最佳解决方案
我个人使用Docker。但在过去,我从来不需要 host 和 guest os 之间的双向同步。我曾经在来宾 os(供应商、前端任务运行器)上安装所有内容,然后通过 sftp 部署服务器下载所有内容,如下所示:
配置部署服务器 (sftp)
[工具 > 部署 > 配置]
浏览远程host,右击选择ose "Download from here"
[工具 > 部署 > 浏览远程 host]
设置自动上传
[工具 > 部署 > 自动上传]
我目前正在使用 VirtualBox VM 进行开发。这是一个 CENTOS 盒子,Apache 和 PHP 按照以下说明安装: http://tuline.com/wp-content/uploads/2015/11/A-Centos-Web-Development-Environment.pdf
我将服务器上的 Web 文件夹设置为 Samba 共享并将其安装在主机中 OS(Windows 7 或 10,具体取决于我正在使用的机器)。我遇到的唯一问题是当我开始一个 Symphony 项目并下载 PhpStorm 来帮助自动完成时。
PhpStorm 立即抱怨在映射的网络驱动器上工作。我不确定是否有任何功能不起作用,因为到目前为止我一直在使用 VS Code。我尝试了几种不同的共享文件夹的方式,但我对其中任何一种都不满意。
我尝试使用 VirtualBox 共享文件夹功能,然后将其映射到 Web 文件夹。这修复了 PhpStorm 投诉,但使服务器变得非常慢。基本页面从大约 150 毫秒呈现到超过 4 秒。
我还尝试使用映射的 Samba 共享作为源启动本地项目,并让 PhpStorm 自动发布更改的文件。此配置的问题是 Webpack 创建的文件不会显示在 PhpStorm 项目中,除非我手动告诉 PhpStorm 下载它们。
我目前正在考虑采用以下两种方式之一:
选项一是让 Samba 共享保持原样,让 PhpStorm 抱怨。我不知道这个选项有多明智,所以我想听听做过这个的人的意见,如果有任何我不知道的问题。
选项二是找到一种在主机 OS 中镜像文件夹的方法。然后我可以镜像 Samba 共享并在 PhpStorm 中处理目标文件夹。
我的问题是,在 VM 中开发的其他人如何处理共享文件?希望有人能有一些我没想到的聪明办法。
SSD 上的所有内容 运行 如果有任何区别的话。
编辑
我接受了 Yarimadam 的回答。如果我是从头开始,Docker 似乎是可行的方法。然而,一台开发机器 运行 Windows 7 和一台 Windows 10,学习曲线似乎有点长。
我终于一致同意保持目录同步。开始正常工作有点痛苦。这是我用来设置它们的 tutorials/articles。 https://winscp.net/eng/docs/guide_windows_openssh_server
https://mike.eire.ca/2008/10/01/configuring-unison-on-windows/
https://gist.github.com/federivo/a1c56909b3f712e516a3cd2f70c0eaa6
http://rnowling.github.io/software/engineering/2015/04/02/installing-ocaml.html
最后:
wget https://raw.github.com/ocaml/opam/master/shell/opam_installer.sh -O - | sh -s /usr/local/bin
我找不到任何涵盖有关设置 Unison 的所有内容的指南。其中大多数是 linux 到 linux,这不是问题所在。问题来自两件事。首先,版本非常匹配。这没什么大不了的,但不仅版本必须匹配,而且它们必须使用相同版本的 OCaml 进行编译。
二进制下载页面上没有关于最后一个稳定 Windows 版本使用哪个版本的注释。通过反复试验,我终于得到了 2.84.4,可以在服务器上使用 OCaml 4.03.0 正常编译。
wget 的最后一点是安装 OPAM 以安装 OCaml。我在 yum 中找不到 OPAM 的包,如果你通过 yum 安装 OCaml,它将是 4.01.0 版本,在观看目录时会崩溃。
PhpStorm 的高级功能如 code completion
和 find in path
严重依赖索引,涉及数千个文件。由于 PhpStorm 的这种性质,它需要观察项目目录中的所有更改事件并立即为它们建立索引。此过程需要快速可靠地访问项目目录。但在典型的网络共享地图中,情况并非如此。这就是 PhpStorm 抱怨您的 samba 映射的原因。
你听说过Docker吗?
这是一个类似虚拟机的容器平台,内置了挂载卷。因此您可以将本地文件夹映射到访客容器并享受实时同步。 Docker 是这个 purpose.
的最佳解决方案我个人使用Docker。但在过去,我从来不需要 host 和 guest os 之间的双向同步。我曾经在来宾 os(供应商、前端任务运行器)上安装所有内容,然后通过 sftp 部署服务器下载所有内容,如下所示:
配置部署服务器 (sftp)
[工具 > 部署 > 配置]
浏览远程host,右击选择ose "Download from here"
[工具 > 部署 > 浏览远程 host]
设置自动上传
[工具 > 部署 > 自动上传]