Php Magento 2速度非常慢(开发人员模式)
最近我开始开发magento 2项目 首先我用xampp在Windows上试过,结果很糟糕。。。每次刷新页面都是一场噩梦,大约30-40秒才能加载页面。我了解到,Windows系统文件在使用magento时速度非常慢,因为它具有庞大的结构,而Almmest的文章迫使您使用linux在magento项目上进行开发 问题是我需要另一家公司的Windows应用程序只在Windows上运行,我尝试用Virtualbox安装一个虚拟机,它改进了一点。。。但我在虚拟机上工作的事实让我很生气 我目前正在研究的下一个解决方案是使用vagrant。好吧,我觉得这样发展很好,但一直进展缓慢。。。15-20秒 我在Vagrant上的配置是5120MB(pc有8GB),并且使用我所有的pc 4核 像这样工作我感觉很糟糕。。。当我使用symfony/Laravel/Codeigniter处理以前的项目时,我的感觉是: 写几行代码,标签到浏览器,F5,立即看到变化 在M2上:写几行代码,标签到浏览器,F5,等等。。。等待好了,现在它刷新了页面,但是没有加载,等等。。。等待嗯,差不多。。。可以没有更改,但我清理了缓存。。。哦,我想我也必须删除静态文件。去争取吧再等等 上帝啊。。。M2不可能跑得更快吗?我只是问5秒或者类似的问题。。。只是我觉得自己很傻看着屏幕一直在等着 就我个人而言,我只是要求开发模式,我试着在生产模式下安装另一个magento项目,以便更快地进行测试,然后与开发模式相比,它还可以像地狱一样流动。。。因为。。。天啊。。。只要试着一次又一次地执行订单工作流 好了,就这些。。。我唯一没有尝试的是在计算机上使用Linux环境。。。但这和使用流浪汉是一样的。。。我不明白。。。你是如何开发M2开发者的?在特殊的前端开发人员中。。。我不相信他们的工作方式和我一样。。。等待20秒以加载页面+清理缓存+删除静态文件等 详细信息:我尝试了vagrant的所有功能,但没有改进,我目前使用的是Ubuntu 15.04、Apache 2.4、PHP5.6(我尝试了7个,但仍然相同)mysql 5.6 这是“网络”选项卡:Php Magento 2速度非常慢(开发人员模式),php,magento,vagrant,e-commerce,magento2,Php,Magento,Vagrant,E Commerce,Magento2,最近我开始开发magento 2项目 首先我用xampp在Windows上试过,结果很糟糕。。。每次刷新页面都是一场噩梦,大约30-40秒才能加载页面。我了解到,Windows系统文件在使用magento时速度非常慢,因为它具有庞大的结构,而Almmest的文章迫使您使用linux在magento项目上进行开发 问题是我需要另一家公司的Windows应用程序只在Windows上运行,我尝试用Virtualbox安装一个虚拟机,它改进了一点。。。但我在虚拟机上工作的事实让我很生气 我目前正在研究的
对于生产环境: 您必须将Redis用于句柄缓存、整页缓存和会话 () 必须使用Magento内置的用于HTTP缓存的Varnish () 您需要设置生产Magento模式。 () 您必须对搜索引擎使用ElasticSearch,仅限EE () 您必须使用PHP7 即使Magento 2不支持,您也可以使用MariaDB 您必须使用CSS缩小、JS缩小和JS绑定(仅在生产模式下有效)
查看官方的Magento 2文档以设置此生产配置。尝试禁用与默认vagrant sync文件夹的同步(只需在vagrant File中添加comment config.vm.synced_文件夹并重新加载)-当需要处理大量文件时,速度会变慢 在开发人员模式下,生成静态文件也很有用:
bin/magento设置:静态内容:部署
并确保所有缓存都已启用:bin/magento缓存:状态
如果没有帮助,您可以尝试基于Docker的Magento DevBox工具:我尝试了所有方法,唯一有效的是提供bitnami的虚拟机 说真的,我不知道这个虚拟机有什么功能,但是运行得非常快。我尝试使用新安装的Ubuntu、CentOS等创建我的虚拟机,但效果不如这个虚拟机好。我的食谱:
- 使用*nix作为主操作系统
- 将docker与PHP7和Nginx一起使用
- 使用gulp生成css和js(比grunt更快)
- 使用redis和清漆
- 仅禁用所需的缓存
顺便说一句)不能像纯框架那么快,但我认为在处理vagrant/docker时,答案主要是文件的i/O速度非常慢 我的解决方案就是禁用整个共享文件夹,并用PhpStorm中的远程项目(sftp连接)替换它。所有文件都存储在虚拟机中,不必每次页面需要重新加载时都进行同步 当然,它的主要好处是,在开发人员模式下工作时速度惊人 但在使用此设置时也存在一些小问题:
- 不能直接从终端运行命令。为了运行magento2 cli命令,您必须使用ssh连接到vagrant中
- 运行composer更新后,您可能需要再次下载整个文件夹,因为在PhpStorm中,远程更改不会自动下载
UPDATE core_config_data SET value = '0' WHERE path = 'dev/css/merge_css_files';
UPDATE core_config_data SET value = '0' WHERE path = 'dev/css/minify_files';
UPDATE core_config_data SET value = '0' WHERE path = 'dev/js/merge_files';
UPDATE core_config_data SET value = '0' WHERE path = 'dev/js/minify_files';
UPDATE core_config_data SET value = '0' WHERE path = 'dev/js/enable_js_bundling';
UPDATE core_config_data SET value = '0' WHERE path = 'dev/static/sign';
config.vm.box = "certiprosolutions/ubuntu-lnmp"
config.vm.box_check_update = false
# box modifications, including memory limits and box name.
config.vm.provider "virtualbox" do |vb|
vb.name = "Magento 2.3.3 ubuntu ngnix"
vb.memory = 8240
vb.cpus = 2
#vb.customize [ "modifyvm", :id, "--uartmode1", "disconnected" ]
end
[XDEBUG]
zend_extension=xdebug.so
xdebug.default_enable = 1
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_autostart = true
xdebug.remote_handler = dbgp
xdebug.remote_port = 9001
xdebug.remote_host=127.0.0.1
xdebug.remote_log="/tmp/xdebug72.log"
;xdebug.max_nesting_level = 1000