Php 适用于Symfony2 Windows/Linux的适当开发环境

Php 适用于Symfony2 Windows/Linux的适当开发环境,php,linux,windows,symfony,nginx,Php,Linux,Windows,Symfony,Nginx,首先,我知道这个标题一定是第400次被问到,所以我会尽我所能让这次与众不同 从现在开始(2年多…),我们的团队一直在为开发环境的建立而奋斗。我们通常的设置是使用Fedora24-25/Php fpm/nginx/mariadb作为服务器。然而,由于我们必须使用一些程序,我们被“要求”使用Windows 当前情景 现在,我们正在使用VirtualBox/VMWare Workstation虚拟化Fedora并在那里运行我们的Symfony2应用程序。我不想在Windows上开发然后在Fedora中

首先,我知道这个标题一定是第400次被问到,所以我会尽我所能让这次与众不同

从现在开始(2年多…),我们的团队一直在为开发环境的建立而奋斗。我们通常的设置是使用Fedora24-25/Php fpm/nginx/mariadb作为服务器。然而,由于我们必须使用一些程序,我们被“要求”使用Windows

当前情景

现在,我们正在使用VirtualBox/VMWare Workstation虚拟化Fedora并在那里运行我们的Symfony2应用程序。我不想在Windows上开发然后在Fedora中使用该应用程序进行生产的原因是,当您使用这两个不同的操作系统时,会出现兼容性问题

其中一名开发人员(me)目前正在通过SMB将文件夹与所有应用程序共享到Windows中安装的驱动器,并在Windows上使用PHPStorm。。还告诉Symfony2将缓存/日志重定向到另一个文件夹,这样PhpStorm就不必为其编制索引,对我来说,这是迄今为止效果最好的

问题

当我们需要进行开发时,问题就来了。。现在我们正在使用PhpStorm开发Fedora,这意味着我们正在从VirtualBox编写代码。。因此,就目前的开发目的而言,Windows(也称为主机)几乎毫无用处。。。因为我们在虚拟机上同时运行IDE和服务器

话虽如此,很明显问题在于性能,我们有相当不错的设置(HP Folio 9470m i7 16GB带SSD)。。但是您仍然可以感觉到在VM上进行开发的开销和缓慢。。。不用说,要在Windows和Linux之间切换,你必须切换这些窗口,这是很痛苦的

问题#2:我们有一个3个监视器的设置,下一节将介绍此澄清的重要性

我尝试过的

  • 在Windows上安装应用程序文件,并通过Fedora上的CIFS/SMB/NFS装载它们
  • 通过这种方法,我得到的最佳结果是使用NFS。通常,在新安装的Symfony2 2.8上,安装了php opcache的探查器的响应时间约为50毫秒。但是,使用CIFS或SMB时,速度会急剧增加到500毫秒左右,而使用NFS时,速度可以达到60毫秒左右。但是,有一个难题。。在Windows 10 pro上,无法本机使用NFS。。我们将不得不升级到企业级,目前还不可能

    另外,为了能够使用这种方法,我不得不将symfony的cache/和logs/文件夹重定向到Fedora中的另一个文件夹。否则,I/O将使用已装入的文件夹终止60毫秒的响应时间

  • 码头工人
  • 使用这种方法,我遇到了完全相同的问题。。这是一个非常常见的错误,围绕着谷歌,Symfony2和docker速度缓慢,因为该卷就像一个共享卷。。相同的I/O性能问题

  • 使用Linux作为主操作系统并虚拟化Windows
  • 我以为这会是真正的交易。。。但事实证明,我经历了几个问题。。我已经使用linux很长时间了,所以我知道如何移动。。对于Linux,我遇到了如下问题:

    a。我用两个耳机,一个用于软电话,一个(耳塞)用于听音乐。。我无法让Fedora始终将一台设备用于软电话,另一台用于其他应用程序…每次我重新启动时,它都会返回。。(不重要,没有它也能生存)

    b。问题#2如上所述,我尝试了:Fedora、LinuxMint和Ubuntu,在每个发行版中,我在尝试设置我的3个显示器时都遇到了CRTC错误

    c。没有HeidiSQL支持(很遗憾,但我也可以没有它)

    就NGINX/PHP/Symfony2而言,一切正常

  • 在Linux中安装所有文件,并在Windows上安装驱动器
  • 相同的性能问题,但这次是PhpStorm。。由于这些文件是通过网络传输的

    问题

    基本上,我明确的问题是,每个人如何使用LINUX作为服务器,Symfony2/PHP作为语言/框架,从windows获得一个平滑的开发环境

    我敢肯定,在这种情况下,并非只有我一个人,我研究得越多,问题就越多


    很抱歉问了这么长的问题

    好吧,这就是我想到的

    • 我通过CIFS在Linux中共享应用程序文件夹,并使用仅限主机的网络适配器将其作为驱动器安装在Windows上,因此我不必担心更改连接
    • 我禁用了图形界面以节省资源
    • 我使用VBoxVMService()作为服务自动启动VM,因此我不必打开VirtualBox
    • 使用油灰作为我的终端
    • 在Symfony上,我覆盖了AppKernel上的getCacheDir()和getLogDir(),并将它们放到另一个不在共享文件夹中的文件夹中
    我花了一整天的时间在4个应用程序上(即打开了4个PhpStorm实例),它工作得很好。唯一慢的时候是当您第一次添加项目时,IDE必须索引所有内容


    我将把这个留在这里,以防它对其他人或其他人有任何其他意见。

    我和你一样也有同样的问题。。。我的主要工作必须使用Windows系统,但我希望在与目标相同的配置上开发基于PHP的项目,因为在过去,我在PHP/Win和PHP/Linux之间经历了许多不同的行为

    过去,我通过SMB或VBOXSF成功地使用VBox挂载我的工作文件夹。但随后出现了第一个Symfony项目,其中包含数千个文件和文件夹,这种设置几乎无法使用。目前,我已将该开发虚拟机迁移到Hyper-V,但这只支持装载ov