MAC 安装 Magento2 community edition 详细步骤

花了好几天时间,终于在Mac OS X EI Capitan上成功安装magento2.1.1. 此处详细记录每个步骤,以备未来使用。

参考magento官方指南:(Easy) Install the Magento archive on your server




1. 确保系统满足prerequisite:

建议不要使用XAMPP(我用XAMPP无论如何PHP的intl extension都显示没有enable),就自己一步一步配置php+mysql+apache。

具体要求如下:system requirement

这一步非常非常重要,我在第一次安装的时候,偷懒没有确保prerequisite,遇到各种问题,一个接一个,不间断的。所以这一步一定要先认真仔细配置好!

以下是我遇到各种问题的截图以及解决方案。简直是血和泪的教训:


1.1 MySQL error:


1.1.1 原因:mysql版本太老:

命令行中运行mysql --version可以查看version。(此截图是进入mysql命令行工具后的截图):


1.1.2 解决方案: 安装mysql5.7:

推荐mysql官网这个链接(download mysql)下载最后一个.dmg文件,双击安装即可。


安装完成后,mysql后给一个自动生成的密码,需要修改。修改command比较简单,google就可以了。

更新完成后,mysql变成了5.7.15版本:




1.2 php extension error:



1.2.1 原因:PHP版本太老.

查看当前PHP版本,在命令行中运行 php -v:


1.2.2 解决方案:更新到PHP7.0.11:

这一步遇到了比较大的困难,具体步骤参考我另一篇博客:MAC 更新 PHP 指南 以及 PHP常用命令示例

更新完成后,PHP变成了7.0.11版本:




1.3 Admin page not found error:


1.3.1 原因

没有enable apache mod_rewrite module

1.3.2 解决方案 

具体解决步骤在本文后面部分讲解




2. 开始安装

2.1 获取初始文件

两种方式:1.下载打包好的文件 2.使用git clone magento repository

推荐使用第2种方式。因为在clone repo到本地后,可以随意选择想要安装的版本。

Magento2的github repo地址是:https://github.com/magento/magento2

在terminal中进入想要安装magento的文件夹,输入:

git clone https://github.com/magento/magento2.git

成功clone repo之后,要注意的是default branch是develop。这时需要自己选择想要安装的magento版本。例如在我clone时,develop是magento2.2.0-dev版本。但是我想要最新的稳定版本。可以查看releases: magento releases:


如上图所示,最新的release版本是Magento 2.1.1, tag是2.1.1.于是在terminal中输入:

git checkout tags/2.1.1

命令运行之后,本地的Magento就是2.1.1版本了。



2.2 修改文件夹权限

如果之前没配置好权限,在浏览器中,输入自己的localhost加上magento文件夹具体地址,会得到以下error:


需要修改文件夹权限,magento user需要对文件夹以及子文件夹和文件有read&write权限。

具体步骤参看我的另一篇博客:MAC 修改文件夹以及子文件夹和子文件权限 以及 修改文件夹owner



2.3 Lauch magento setup guide

2.3.1 Readiness Check

此时再在浏览器中输入magento的文件夹路径, setup就启动了。第一部步eadiness check, 我得到以下error:



2.3.1.1 原因

上一步设置好的权限,并没有对[your_magento_main_folder}/var/.DS_Store文件生效。

2.3.1.2 解决方案

按照上一步的方法,单独修改.DS_Store文件的权限。

2.3.1.3 验证成功

权限问题解决后,第一步readiness check成功:




2.3.2 Add a Database

输入数据库信息后,得到以下error:


2.3.2.1 原因

还没创建magento211数据库

2.3.2.2 解决方案

登录mysql创建magento211数据库。进入mysql command line后,输入:

create database magento211




2.3.3 其他步骤

接下来的步骤,都没出什么问题,就截图记录一下:








3.安装成功,开始使用

就在我以为终于安装成功,可以松口气,开心地点击了上图的“Lauch Magento Admin”按钮后。。。


3.1 Admin page not found error


3.1.1 原因

apache需要enable rewrite module

3.1.2 解决方案

  • 打开/etc/apache2/httpd.conf 文件。
  • 确保以下行没有被注释掉:LoadModule rewrite_module libexec/apache2/mod_rewrite.so
  • 确保在<Directory "[your server root directory]"></DIrectory>里面, AllowOverride All


3.2 页面没有style和图片


3.2.1 原因
没有deploy static content
3.2.2 解决方案
warning: bin/magento命令会修改文件夹权限。所以在每次运行完命令后,进入下一步可能会报错。遇到permission error,只需要把文件夹权限设置回read&write就可以了。
打开terminal,输入:
php bin/magento setup:static-content depoly




3.2.3 验证解决成功
刷新页面,style和图片就应该都有了:


如果还是没有static content,可以尝试在terminal中运行以下两行命令:

php bin/magento cache:flush
php bin/magentoindexer:reindex







4 小提示
4.1 develop环境下,开启exception printing
以方便查看error信息。推荐按照这篇博文配置:Magento exception printing is disabled by default for security reasons – How to fix?

4.2 Disable Xdebug
4.2.1 遇到问题:Allowed memory size exhausted error

我是先安装了没有sample data的magento。然后再根据官方指南Install sample data by cloning repositories 安装sample data。

安装成功后,需要compile代码。于是我在terminal中输入以下命令行:

bin/magento setup:di:compile

然后出现PHP Fatal error: Allowed memory size exhausted:


4.2.2 原因

enable xdebug会消耗更多的memory

4.2.3 解决方案

disable xdebug。 参考我的另一篇博文:MAC PHP7 如何disable xdebug 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570485.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

22_IO_第22天(File、递归)_讲义

今日内容介绍 1、File 2、递归 xmind&#xff1a;下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Eaj9yP5i0x4PiJsZA4StQg 密码&#xff1a;845a 01IO技术概述 * A:IO技术概述* a: Output* 把内存中的数据存储到持久化设备上这个动作称为输出&#xff08;写&a…

MAC PHP7 如何disable xdebug

1. 查看xdebug当前状态是否是enable 打开terminal&#xff0c;输入&#xff1a; php -m | grep xdebugterminal返回xdebug&#xff0c;说明现在xdebug是enable状态。 2.找到php配置文件夹 在terminal中输入&#xff1a; which php 进入php.d文件夹&#xff0c;可以看到exten…

django之上传图片

上传图片 当Django在处理文件上传的时候&#xff0c;文件数据被保存在request.FILESFILES中的每个键为<input type"file" name"" />中的name注意&#xff1a;FILES只有在请求的方法为POST 且提交的<form>带有enctype"multipart/form-data…

『 Luogu P3205 』 HNOI2010 合唱队

解题思路 设置两个二维数组 $f$ 和 $g$&#xff0c;含义如下。 $f[l][r]$ 表示在期望得到的队形中 $l\rightarrow r$ 这段区间初始队形排列的方案数&#xff0c;并且最后一个加入进去的是第 $l$ 个人。 $g[l][r]$ 表示在期望得到的队形中 $l\rightarrow r$ 这段区间初始队形排列…

福大软工1816 · 第一次作业 - 准备

福大软工1816 第一次作业 - 准备 期待→迷茫→恐惧→振作or放弃&#xff1f; 前言&#xff1a;个人情况概述 虽然长辈都说我是个聪明的孩子&#xff0c;但我觉得也许那只是客套话——还记得从小学时我的成绩仅处于中游偏下&#xff0c;初中稍有提升&#xff0c;但到高中又回到…

cf242 E

题意&#xff1a; $n$ 个数 $a_i$, 两种询问 $1, l, r$ 查询 $[l, r]$ 的和 $2, l, r, x$ 将区间 $[l, r]$ 所有数异或 $x$ 建立 $30$ 课线段树 第 $i$ 颗线段树维护所有 $a$ 二进制的第 $i$ 为上的数字 $0, 1$ 异或操作分别以 $x$ 的二进制相应位异或相应线段树 可见只有当 $…

记忆力

1、越集中注意力&#xff0c;越难回想起我们的记忆&#xff0c;就像我们看一个字看久了&#xff0c;会慢慢不认识。 2、转载于:https://www.cnblogs.com/LXP-Never/p/9579978.html

物联网初步之电阻性电路分析 第三部分 电路分析方法和电路原理

目录 电阻性电路分析第三章 电路分析方法3-1 支路电流法3-2 网孔电流法3-3 节点电位法3-4本章总结第四章 电路定理4-1 叠加定理戴维南定理和诺顿定理电阻性电路分析 声明&#xff1a;本学习笔记中的部分图片来自于王丽华老师的PPT&#xff0c;感想王老师~~ 第三章 电路分析方法…

《前端JavaScript重点》学习笔记 1-5

JS三座大山&#xff1a;原型和原型连、作用域和闭包、异步和单线程第一篇-----变量类型和计算 参考&#xff1a;https://www.jianshu.com/p/8cb184b26ed1题目&#xff1a;1.JS中使用typeof能得到哪些类型2.何时使用&#xff0c;何时使用3.JS有哪些内置函数4.JS变量按照存储方式…

将页面数据转json存入数据库

SSMlayui前台页面将数据转json存入数据库 最近做了一个添加的功能&#xff0c;页面中的字段并不是和数据库变字段一 一对应的&#xff0c;页面中好几个字段的值要把它们转为json&#xff0c;然后存入数据库表中的一个字段。 1&#xff0c;首先是添加了一个实体类来放这些数据…

简述openstack

大家好&#xff0c;我顾某人又回来了&#xff0c;开学第一更。。。。以下内容均为个人理解和整理&#xff0c;有不对的地方还望dalao指正。。。。。 本文所用图片均已标明来源。 openstack是什么&#xff1f; OpenStack是一个开源的云计算管理平台项目&#xff0c;由几个主要的…

vue+layui获取CheckBox的值

vuelayui获取CheckBox的值 定义一样的name和v-filter 然后对其进行监听。

rocket-console控制台安装

1.下载 github地址&#xff1a;https://github.com/apache/rocketmq-externals 2.选择稳定版本&#xff1a; 3.下载到本地&#xff1a; 环境需求 maven jdk git clone https://github.com/apache/rocketmq-externals.git 4.修改配置&#xff1a; find -name application…

只允许对最后一条记录进行修改

今天做了个小功能想和大家分享一下在我任务描述里有个这样的描述&#xff1a;只能对最后一条记录进行修改。我刚开始我这样想的&#xff0c;每条记录前面都有给他一个radio&#xff0c;然后对你选择的数据去判断他是不是最后添加的那一条&#xff0c;后台发现这样有点难度&…

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

为了加强安全性&#xff0c;MySQL5.7为root用户随机生成了一个密码&#xff0c;在error log中&#xff0c;关于error log的位置&#xff0c;如果安装的是RPM包&#xff0c;则默认是/var/log/mysqld.log。 一般可通过log_error设置 mysql> select log_error; ---------------…

vue复选框CheckBox清空选中的值

最近遇到了这样的一个问题&#xff0c;做了一个添加功能&#xff0c;发现添加了一次记录以后&#xff0c;添加第二次的时候&#xff0c;页面上复选框有我上次选中的值&#xff0c;后来试了很多方法&#xff0c;只有下面这个方法解决了这个问题。上面标出来的是对普通的input进行…

keepalived+lvs搭建高可用负载均衡集群

keepalived与DR模式 主keepalived&#xff08;调度器&#xff09;&#xff1a;192.168.188.128 真实服务器rs1&#xff1a;192.168.188.129 真实服务器rs1&#xff1a;192.168.188.127 VIP &#xff1a;192..168.188.110 yum -y install keepalived (不需要安装ipvsadm&…

添加时,时间格式明明和数据库格式一样,却一直在报错,存不进去

数据库用的date&#xff0c;然后我前台也用的date格式&#xff0c;却存不进去&#xff0c;我还以为是缓存问题&#xff0c;然后一直在清缓存&#xff0c;结果没啥用&#xff0c; 后来在实体类加了DateTimeFormat这个注解&#xff0c;成功解决。

freemarker页面读取时间date类型报错

以前写过一篇添加时间添加失败的问题&#xff0c;现在我又发现了另外一个问题 刚开始我是这样放进页面&#xff0c;然后就报错&#xff0c;说freemarker的类型错误。我就去控制器打印输出这个时间&#xff0c;发现是有值得&#xff0c;但不是yyyy-mm-dd格式的&#xff0c;我数…

关于idea的git账号与电脑的git账号不一致的问题。已解决!

最近发现了一个问题&#xff0c;我进公司&#xff0c;公司给我发的电脑是别的同事用过的&#xff0c;然后上面呢保留了他的git账号&#xff0c;我要继续用这台电脑开发&#xff0c;用他的账号肯定是不行的&#xff0c;然后我就上网搜教程&#xff0c;搜到的教程全部都是让我删除…