Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento 2速度非常慢(开发人员模式)_Php_Magento_Vagrant_E Commerce_Magento2 - Fatal编程技术网

Php Magento 2速度非常慢(开发人员模式)

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安装一个虚拟机,它改进了一点。。。但我在虚拟机上工作的事实让我很生气 我目前正在研究的

最近我开始开发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

这是“网络”选项卡:
对于生产环境:

您必须将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和清漆

  • 仅禁用所需的缓存

最有价值的建议是,如果您仍在尝试使用HDD进行开发,您确实需要SSD来使用magento2

p/s Magento 2比Symfony/Laravel/CI更复杂(M2由Symfony组成
顺便说一句)不能像纯框架那么快,但我认为在处理vagrant/docker时,答案主要是文件的i/O速度非常慢

我的解决方案就是禁用整个共享文件夹,并用PhpStorm中的远程项目(sftp连接)替换它。所有文件都存储在虚拟机中,不必每次页面需要重新加载时都进行同步

当然,它的主要好处是,在开发人员模式下工作时速度惊人

但在使用此设置时也存在一些小问题:

  • 不能直接从终端运行命令。为了运行magento2 cli命令,您必须使用ssh连接到vagrant中

  • 运行composer更新后,您可能需要再次下载整个文件夹,因为在PhpStorm中,远程更改不会自动下载


2018年更新,Magento 2.2.4

Vagrant+Windows+Magento2=灾难。流浪汉+苹果+Magento2=灾难

Ubuntu+Magento2=用煤气做饭

简单的模块,例如小部件,比预期的2-3小时要多花很多天,如果打开一个页面需要一分钟,就不可能记住你在做什么,尤其是当你必须清除缓存、编译、升级或其他任何不需要花时间的事情时

这是我在一个选择Mac或Windows的办公室工作的第一手经验。在花了一整天的时间试图修改模板指令,但在8小时内一次配置修改都没有成功之后,我想在linux机器上试一试,看看我是不是疯了,或者这个无赖的发明是否和那个醉汉一样有用
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