一,预备条件:
php知识----本系列不打算设计根本的php知识,由于Magento框架大量利用了php的设计模式,反射,缓存等知识,学习Magneto开拓,须要读者具备3年旁边的php开拓履历,否则对您理解Magento会有一定的难度.当然,如果您以Magento为切入点,学习php的干系的高等利用,也是个比较好的切入点.电脑环境----Magento以模块化,安全性,可扩展性著称,大量的东西都是可配置的,其副浸染便是代码比较重,运行效率不高.以是,缓存的利用是Magento必不可少的环节,尤其在开拓环境,大量的预编译的文件须要一次一次的天生,这就哀求开拓机有较好的性能和较为完备的环境,目前看来ubuntu环境下利用现成的docker容器是较为方便的办法,ubuntu本身的资源花费就比windows小些,利用docker也更为方便,当然如果您可以选择 windows+docker,或者windows下利用virtrualBox来仿照ubuntu系统,或者直接双系统,windows+ubuntu都是可以的,干系资料网上也有很多,本系列以ubuntu+docker环境来作为开拓环境.网络环境----对付任何一个有志于Magento开拓的技能职员来说,查询一些英文资料是绕不过去的需求,中文的资料很旧也很少,以是,如果你办理不掉这个问题,那么你的学习和研究会碰着很多困难,这里不再详细先容办理办法,网上大家找找,实在有很多成熟的办法.幸运的是,在本系列中用到的网站如github.com,magento.com是可以直接访问的,只是有点\"大众慢\公众.干系技能----除了php外,本系列的教程中会根据Magento开拓的须要涉及到git,docker,redis,elasticsearch,根本的linux操作等等,我会把常用的操作命令总结出来,百分之80的情形下,你只须要记住我给您总结的命令就足够了,但是,本系列不会深入的探究其干系的事理和高等用法,如果各位有兴趣,请下来后自行研究学习.其余,作为一个多年的码农,为了事情方便,我的标点符号一贯都是英文标点,如果看文章的时候,您觉得别扭,请千万体谅,感激!
二,开始干活
安装ubuntu和docker环境----安装ubuntu这里就不再阐述了,大家找找干系资料.按着做就好了,版本也没有特殊哀求,16.xx,18.xx的版本都可以.安装好系统后,大家就须要安装docker,什么是docker? 好多新人不太明白docker到底是什么东西,那大略的讲,docker便是一个隔离环境,可以把你须要安装的软件和现有的系统隔离开,你启动了docker,那docker内关联的干系软件就能用了,你停滞了docker,系统也不会由于你安装的软件有什么变革,从这个意义上讲,docker也被称为容器,把须要的软件都放在一个盆盆罐罐里,端出来就能用,拿走就没有痕迹,docker主要的特性是可以根据配置文件来自动安装加载容器中所须要的软件,一旦装好了,下次就直接启动,不须要重新安装了,以是,你可以直接从网高下载装好软件的docker,也可以拿着别人写好的配置文件,在你本机进行初始化,这一点上比虚拟主机方便了很多.当然docker须要的资源也比虚拟机少很多.怎么装docker?
ubuntu下你只须要实行命令
sudo apt-get install docker
如果有人以为ubuntu自带的docker版本比较旧,也可以直接去docker官网下载安装最新的docker,在本系列中,这已经够了.
安装完docker后,你还须要安装一个东西叫docker-compose.
什么是docker-compose?很多人用docker的时候,喜好把不同功能的软件放在不同的docker里,然后docker和docker之间须要通信,那就须要一些设置.docker-compose可以帮助你很大略的来了设置docker之间的关系,加载干系的软件.启动多个docker等,它是docker的一个赞助工具.怎么安装docker-compose首先你的把它拉下来安装
sudo curl -L \"大众https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)\"大众 -o /usr/local/bin/docker-compose
然后你须要给它个权限,让它可以运行
sudo chmod +x /usr/local/bin/docker-compose
为了翻遍不同的系统环境的差异,你可以给一个软链接到不同目录,这样什么情形下都能找到它
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
然后,就可以用啦,你敲个命令试试能运行不.
$ docker-compose --versiondocker-compose version 1.23.2, build 1110ad01
好了.现在须要的软件已经安装完成了.下一步,为了方便,我们去github上拉取别人为了Magento开拓而做好的docker,拉下来就能用,我们就不用自己配置环境了,方便呀.
打开网址 https://github.com/clean-docker/Magento2 ,你可以看到这是个已经配置好的专门为Magento开拓准备的docker容器,里面先容了一个大略的方法,安装这个容器,便是实行命令行:
curl -s https://raw.githubusercontent.com/clean-docker/Magento2/master/init | bash -s MYMAGENTO2 clone
这里的curl是个功能很强大的网络工具,你不须要安装,ubuntu已经装好了,它可以帮你下载docker,这个命令里的MYMAGENTO2是文件夹的名字,你在什么路径实行这个命令,就会在什么路径下天生这么一个目录,你也可以改改名字.这个命令实行后,会自动拉取这个docker的配置.然后在你的机子上天生一个php的开拓环境,运行完后便是这个样子的.为了讲述方便,我们统一把这个目录放在/var/www下吧,在ubuntu的命令行实行
cd /varmkdir wwwcd www
然后在这里实行
curl -s https://raw.githubusercontent.com/clean-docker/Magento2/master/init | bash -s MYMAGENTO2 clone
实行后的结果是这样的
看到没,现在你访问localhost就可以打开phpinfo的页面了.Magento干系的php环境通过docker已经装好了.进入MYMAGENTO2文件夹,你可以看到有已经编好的shell脚本和docker配置文件,你先运行一下那个init脚本吧,它帮你初始化了docker一些配置.在MYMAGENTO2文件夹里面点右键,选择\"大众在终端打开\"大众,然后运行命令.
./init
2,安装Magento
上面安装好的是Mangnto的环境,下面你须要安装Mangento的代码啦.其实在前面我们安装的docker里供应了命令行安装magento的办法,你看看github上容器页面的解释能创造先容的办法是
cd MYMAGENTO2./shellrm index.phpinstall-magento2
很遗憾的是,我测了很多次,速率都相称慢,以是我们用用笨办法吧,自己去下载一个magento2的源码来安装,MYMAGENTO2文件夹里的src里是php源码放置的位置,现在只有一个index.php.我们现在要去下载magento代码
打开 https://magento.com/tech-resources/download.然后在Full Release (ZIP with no Sample Data)栏眼前选择一个最新的源代码下载,这个是带示例数据的
当你点击下载的时候,会哀求你注册,你就乖乖的注册把,有200多m,这个时候如果你很慢,那除了等待也没有其他办法了.
下载完成后,,将下载的安装包在/var/www/magento2/src下解压,解压前清空目录里,把稳哦,别在src下再加一层目录了,其余,如果你是直接复制粘贴的话,小心,源码目录下有些隐蔽文件,要一起复制过去哦.或者直接就解压到src下也可以,解压后运行 http://localhost/setup,这个时候就弹出magento代码的安装步骤了,乖乖的按照人家哀求一步一步的点击吧.
在配置数据库连接的时候,须要把稳的是,你须要提前在phpmyadmin里建立一个数据库,如下图
然后在安装步骤里配置数据库连接
这里的db是docker容器里的数据库连接,不是localhost哦,默认的root密码也是root,然后一起向下点击吧,在这里配置的是后台连接地址
你怕记不住这个后台链接地址的话,你就直接在这里改成admin就好了
下一步可以选择措辞哦,不过诚笃说magento的汉化确实不好,我这里就直接还是用英语版本就好了
然后设置一个admin账号吧,反正你是为了本机开拓用,不如设置成admin和admin123?
配置完成,然后就可以开始安装了,看着你的硬盘灯哗哗的闪着,我的机子装了1分多种,你呢,有点耐心吧.看到下面的页面就可以长出一口气了
这个时候打开http://localhost,Magento的前台页面就能显示出来了,还不错是吧,也可以点击后台登录看看,但是现在你还只能看看,如果要开拓还要很多设置才可以呢,不才一节将为大家讲解Mangento2的代码构造,docker容器的基本操作和开拓准备的设置事情.