【问题标题】:Vagrant on Windows w/ Precise64 runs php very slowly带有 Precise64 的 Windows 上的 Vagrant 运行 php 非常缓慢
【发布时间】:2013-05-23 22:26:16
【问题描述】:

所以我在我的开发机器上设置了虚拟主机,但是当我尝试一个非常简单的“hello world”回显时,它会在处理文件之前挂起大约 10 秒。 HTML 文件呈现速度非常快。我什至从哪里开始解决这个问题?

在做了一些研究之后,其他人抱怨 php 和 virtualbox/vagrant 的性能缓慢。许多人声称主机/访客之间使用共享文件夹是造成这种情况的原因。

  • 我已尝试更改共享文件夹位置,使其不指向 /var/www/
  • 我还尝试通过删除“config.vm.synced_folder”语句来完全删除共享文件夹配置

在每种情况下,我都重新配置了盒子,但仍然遇到相同的性能问题,在网络浏览器中点击一个简单的 php 脚本时至少会挂起 10 秒。

我尝试过的其他事情:

  • 从命令行运行相同的 php 脚本。这工作得很好。立即响应。
  • 从 Web 浏览器点击 html 页面。我也得到了快速的回应。

这让我相信问题出在堆栈的 apache+php 部分。

不知道还能做什么。

【问题讨论】:

    标签: php ubuntu virtualbox vagrant


    【解决方案1】:

    我也遇到过这个问题。

    从 ivanicus 开始,它与 xdebug 配置有关。当 xdebug 尝试连接到远程调试客户端时,请求似乎挂起。我已经能够通过设置来解决问题...

    xdebug.remote_connect_back=0
    xdebug.remote_autostart=0
    

    然后我已经将 xdebug.remote_host 值设置为主机的 IP,您需要确保您的客户机可以连接到您设置的 IP 上的主机。这让我仍然可以在 PhpStorm 中进行调试。

    看起来您目前无法在 https://www.puphpet.com/ 的 ini 设置中设置 xdebug.remote_connect_back 选项,因此我必须在 php.ini 中手动更改它

    【讨论】:

    • 命令行:php --ini 显示 cli 的 xdebug ini 文件的位置 - Apache 通常不同。
    【解决方案2】:

    在遇到同样的情况后,删除 XDebug 使用是我能找到的唯一“解决方案”。

    考虑到来自https://puphpet.com/ 的基本默认 Vagrant 配置作为原始海报:

    • 从“manifests/default.pp”中删除了 xdebug 行
    • 删除文件夹“modules/xdebug/”
    • 流浪破坏
    • 流浪

    注意事项:

    • 我想在提到的网站上不包括“xdebug”是最好的解决方案,但我已经对我的 vagrant 配置进行了修改。
    • 虽然不是“理想”的解决方案,但它解决了提到的缓慢问题,并将这个问题转变为“如何在 Windows 主机上启用和正确运行 xdebug”

    希望这会有所帮助!

    【讨论】:

    • 我只能评论我自己的答案,所以我开始了:) 看起来在最近的 puphpet 版本中这已经解决了。至少我得到了一个新版本,将 xdebug 模块和配置插入到我当前的项目中,现在它可以正常工作了。另外,@mike.darke 对问题的解决比我的“解决方案”要好得多,所以如果你真的需要在你的 vagrant 中使用 xdebug,你知道该怎么做。
    【解决方案3】:

    许多人声称主机/访客之间使用共享文件夹是造成这种情况的原因

    我发现这绝对是我的问题。

    https://docs.vagrantup.com/v2/synced-folders/nfs.html

    由于我使用的是 Windows,所以我也无法使用 NFS 选项。

    为了测试是否是这种情况,我使用 SFTP 将我正在访问的所有 SQLite 文件移到了机器上,性能又回到了我期望的水平。

    【讨论】:

    • 要让 NFS 在 Windows 上使用同步文件夹,需要安装一个 vagrant 插件:vagrant plugin install vagrant-winnfsd。我将页面加载时间从 7-10 秒恢复到 400-500 毫秒
    【解决方案4】:

    您可以从主机分配更多资源

    config.vm.provider :virtualbox do |vb|
    
      vb.customize ["modifyvm", :id, "--memory", "3072", "--cpus", "2"]
    end
    

    我不知道这是否会有所帮助,但很高兴知道。

    【讨论】:

      【解决方案5】:

      我一直在使用 https://puphpet.com/ 生成我的 Vagrant 设置,现在使用更快的 https://github.com/bryannielsen/Laravel4-Vagrant

      【讨论】:

        猜你喜欢
        • 2015-04-02
        • 1970-01-01
        • 1970-01-01
        • 2018-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-29
        相关资源
        最近更新 更多