在VM上开发

时间:2018-04-06 03:38:23

标签: php symfony phpstorm virtual-machine virtualbox

我目前正在使用VirtualBox VM进行开发。它是使用以下说明安装Apache和PHP的CENTOS盒子: http://tuline.com/wp-content/uploads/2015/11/A-Centos-Web-Development-Environment.pdf

我将服务器上的Web文件夹设置为Samba共享,并将其挂载到主机操作系统(Windows 7或10,具体取决于我正在处理的计算机)。我遇到的唯一问题是当我开始一个Symphony项目并通过自动完成功能下载PhpStorm时。

PhpStorm立即抱怨在映射网络驱动器上工作。我不确定任何功能是否有效,因为我一直在使用VS Code,直到此时为止。我尝试了几种不同的方式来共享文件夹,但我对它们中的任何一个都不太满意。

我尝试使用VirtualBox共享文件夹功能,然后将其映射到Web文件夹。这修复了PhpStorm的投诉,但令服务器速度极慢。基本页面从~150ms渲染到超过4s。

我还尝试使用映射的Samba共享作为源启动本地项目,并让PhpStorm自动发布更改的文件。这种配置的问题是Webpack创建的文件不会出现在PhpStorm项目中,除非我手动告诉PhpStorm下载它们。

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

  • 选项一是离开Samba分享,让PhpStorm抱怨。我不知道这个选项有多明智,所以我想听听那些做过这件事的人以及是​​否有任何我不知道的问题。

  • 选项二是找到一种在主机操作系统中镜像文件夹的方法。然后我可以镜像Samba共享并在PhpStorm的目标文件夹中工作。

我的问题是,在VM中开发的其他人如何处理共享文件?希望有人会有一些我想不到的聪明的东西。

如果产生任何差异,一切都在SSD上运行。

修改

我接受了Yarimadam的回答。如果我从头开始Docker似乎是要走的路。但是,有一台运行Windows 7的开发机器和Windows 10运行的机器,似乎学习曲线会有点多。

我终于齐声同步以保持目录同步。开始正常工作有点痛苦。这是我用来设置它们的教程/文章。 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。我无法在OPAM中找到yum包,如果你通过yum安装OCaml,它将是版本4.01.0,在观看目录时会崩溃。

1 个答案:

答案 0 :(得分:2)

PhpStorm的高级功能如code completionfind in path在很大程度上依赖于索引,涉及数千个文件。由于PhpStorm的这种性质,它需要在项目目录中观察所有更改事件并立即对其进行索引。此过程需要快速可靠地访问项目目录。但在典型的网络共享映射中,情况并非如此。这就是为什么PhpStorm抱怨你的桑巴映射。

你听说过Docker吗?

这是一个类似容器的平台,它已经安装了内置卷。因此,您可以将本地文件夹映射到来宾容器并享受实时同步。 Docker是为此目的的最佳解决方案。

我个人使用Docker。但在过去,我从不需要在主机和客户机之间进行双向同步。我曾经在guest虚拟机操作系统(供应商,前端任务运行程序)上安装所有内容,然后通过sftp部署服务器下载所有内容,如下所示:

配置部署服务器(sftp)

[工具>部署>配置]

浏览远程主机,右键单击并选择“从此处下载”

[工具>部署>浏览远程主机]

设置自动上传

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