Symfony2 Windows / Linux

时间:2017-02-08 21:37:09

标签: php linux windows symfony nginx

首先,我知道,通过标题,这必须是第400次被问到这一点,所以我会尽我所能让这个时间不同。

从现在开始(超过2年......),我们的团队在建立发展环境方面一直在努力。我们通常的设置是使用Fedora24-25 / Php-fpm / nginx / mariadb作为服务器。但是,我们需要"由于我们必须使用某些程序而使用Windows。

当前情况

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

其中一位开发人员(我)目前通过SMB将所有应用程序的文件夹共享到Windows中的已安装驱动器,并在Windows上使用PHPStorm ..也告诉Symfony2将缓存/日志重定向到另一个文件夹,以便PhpStorm不会# 39; t必须对此进行索引,对我来说到目前为止,迄今为止效果最好。

问题

当我们需要进行开发时出现问题..现在我们正在使用PhpStorm处理Fedora,这意味着我们正在编写我们的VirtualBox ..所以此时用于开发目的Windows(又称主机)几乎没用......因为我们在VM上运行了IDE和服务器..

话虽如此,很明显问题来自性能,我们有相当不错的设置(HP Folio 9470m i7 16GB带SSD)..但你仍然可以感受到开发的开销和缓慢一个虚拟机......不用说,要在Windows和Linux之间切换,你必须切换这些窗口,这很痛苦。

问题#2:我们设置了3个监视器,这个澄清的重要性将在下一节中介绍。

我尝试了什么

  1. 在Windows上安装应用程序文件,并通过Fedora上的CIFS / SMB / NFS安装它们。
  2. 通过这种方法,我获得的最佳结果是使用NFS。通常,在全新安装Symfony2 2.8时,在安装了php-opcache的探查器上获得大约50ms的响应时间。但是,使用CIFS或SMB大幅增加到大约500ms,使用NFS我已经能够达到60ms左右。但是,有一个问题...在Windows 10专业版上,没有办法本机使用NFS。我们必须升级到企业,而目前这不是一个可能性。

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

    1. 泊坞
    2. 通过这种方法,我遇到了完全相同的问题。这是一个非常常见的错误,因为卷就像共享卷一样,围绕着谷歌与Symfony2和码头工作缓慢。相同的I / O性能问题..

      1. 使用Linux作为主操作系统并虚拟化Windows
      2. 我认为这将是真正的交易...但事实证明我遇到了几个问题..我已经使用Linux很长一段时间所以我知道如何移动...使用Linux我有问题像:

        一个。我使用2个耳机......一个用于软电话,一个用于听音乐...我无法让Fedora总是使用一个设备用于软电话而另一个用于其他应用...每次我重新启动它回去..(不重要,可以没有这个生活)

        湾上面指出的问题#2,我尝试过:Fedora,Linux Mint和Ubuntu,在每个发行版中,我在尝试设置3个显示器时都遇到了CRTC错误..

        ℃。没有HeidiSQL支持(羞耻,但我也可以没有这个)

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

        1. 在Linux中拥有所有文件,并在Windows上安装驱动器
        2. 相同的性能问题,但这次使用PhpStorm ..由于文件是通过网络bla bla bla ...

          问题

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

          我很确定在这种情况下我并不孤单,我研究得越多,问题就越多......

          很抱歉这个问题很长!

2 个答案:

答案 0 :(得分:1)

好的,这就是我想出来的......

  • 我通过CIFS在Linux中共享应用程序文件夹,并使用仅限主机的网络适配器将其作为驱动器安装在Windows上,因此我不必担心更改连接。
  • 我禁用了图形界面以节省资源
  • 我正在使用VBoxVMService(http://vboxvmservice.sourceforge.net/)作为服务自动启动VM,因此我不必打开VirtualBox
  • 使用Putty作为我的终端
  • 在Symfony上,我覆盖了AppKernel上的getCacheDir()和getLogDir(),并把它们扔到另一个不在共享文件夹中的文件夹中。

我花了一整天的时间研究了4个应用程序(已经打开了4个PhpStorm实例)并且它一直运行得很好。唯一一次它很慢的时候是你第一次添加IDE必须索引所有内容的项目。

我将此处留在此处,以防其他人或任何其他人有任何其他意见。

答案 1 :(得分:0)

我和你一样有同样的问题...我必须使用Windows系统来完成我的主要工作,但是想要在与目标相同的配置上开发基于PHP的项目 - 因为过去我经历过很多PHP / Win& amp; PHP / Linux操作系统。

过去我成功使用VBox通过SMB或VBOXSF安装我的工作文件夹。但随后出现了第一个包含数千个文件和文件夹的Symfony项目,这种设置几乎无法使用。目前我将dev-VM迁移到Hyper-V,但这仅支持通过网络进行安装。 也许VMware更快!但是有一个问题:我不能使用vmware,因为我想使用docker for windows ....而且他们互相排斥。

不幸的是,这还消除了容易流浪dev的设置。

Docker for Windows(Hyper-V)和Docker Machine(VBox)并不是更好:-(这非常让人伤心,因为我非常喜欢简单的可重复设置,并且在某些(小型)prod系统上也使用Docker。

然后我看到了名为“bash for windows”的WSL Linux子系统,并且......它必须是解决方案......但是没有。在IO中比在网络上安装CIFS文件夹更糟糕 - 请参阅 https://www.phoronix.com/scan.php?page=article&item=intel-7900x-wsl&num=2 即使只是安装机器,我也经历过IO的速度有多慢,甚至没有完成设置。

目前我仍然坚持使用双启动设置,这真的让我感到困惑。我浪费时间重新启动。我必须使用笔记本电脑和几个驱动程序无法正常工作,外部显示器... USB端口等,这是我不能完全切换到Linux并使用Win作为VM的主要原因。 我想我会给WAMP另一次尝试......或者我必须使用第二台开发者机器。