我已经开始将我们的很多开发环境迁移到 Vagrant。到目前为止,这对几乎所有事情都很好,但是我们的第一个 Drupal 迁移无法使用。它慢得令人难以置信。我们的 Wordpress、CakePHP 和 Node.js 站点的性能都非常好或更好,但 Drupal 则不然。这种想法简直太可怕了。
盒子是 Veewee 创建的 Ubuntu 12.04 64 位机器。它与我们用于所有基于 Web 的项目的基本盒子相同,因此没有什么独特之处。在我的站点目录中,我有一个sites/my-site/
包含所有站点资源的规范目录sites/dev.mysite.com -> /vagrant/www/sites/my-site
(
这是一个混合的 Windows/OSX 开发团队,在两个平台上都很慢。我唯一的半非常规片段Vagrantfile
是这样的:
config.vm.forward_port 80, 8080
config.vm.share_folder( "v-root", "/vagrant", ".", :extra => 'dmode=777,fmode=777' )
# Allows symlinks to the host directory.
config.vm.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
Vagrant::Config.run do |config|
config.vm.provision :shell, :path => "provision.vm.sh"
end
我的 shell 配置器只做几件事:
- 安装 drush
- 创建上述到规范站点目录的符号链接
- 写出一个 Nginx 服务器块
- 如有必要,创建一个
settings.php
文件。
我能做些什么来提高性能吗?喜欢,很多?
更新
我已将其范围缩小到看起来问题出在远程数据库的程度。为了比较苹果和没有项目包袱的苹果,我下载了 Drupal 7.21 的新副本,并从 Vagrant Web 服务器对 3 个不同的数据库执行了标准安装:
- 在与网络服务器 (localhost) 相同的 Vagrant VM 上创建的新数据库
- 在原始问题 (dev) 中使用的共享开发服务器上创建的新数据库
- 在 EC2 实例上创建的新数据库 (tmp)
完成后,我登录到新的 Drupal 安装并加载主页 (localhost:8080) 5 次。然后我连接到每个数据库并以相同的方式加载相同的页面。我发现当 Drupal 连接到远程数据库时,页面加载速度慢了 4-6 倍。
请记住,这是一个全新的(标准)安装。没有项目包袱。