在虚拟机上开发

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 下载它们。

我目前正在考虑采用以下两种方式之一:

我的问题是,在 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 completionfind in path 严重依赖索引,涉及数千个文件。由于 PhpStorm 的这种性质,它需要观察项目目录中的所有更改事件并立即为它们建立索引。此过程需要快速可靠地访问项目目录。但在典型的网络共享地图中,情况并非如此。这就是 PhpStorm 抱怨您的 samba 映射的原因。

你听说过Docker吗?

这是一个类似虚拟机的容器平台,内置了挂载卷。因此您可以将本地文件夹映射到访客容器并享受实时同步。 Docker 是这个 purpose.

的最佳解决方案

我个人使用Docker。但在过去,我从来不需要 host 和 guest os 之间的双向同步。我曾经在来宾 os(供应商、前端任务运行器)上安装所有内容,然后通过 sftp 部署服务器下载所有内容,如下所示:

配置部署服务器 (sftp)

[工具 > 部署 > 配置]

浏览远程host,右击选择ose "Download from here"

[工具 > 部署 > 浏览远程 host]

设置自动上传

[工具 > 部署 > 自动上传]