Magento2 系统要求
官方参考网址:
http://devdocs.magento.com/guides/v2.0/install-gde/system-requirements.html
操作系统
Linux x86-64 (RedHat Enterprise Linux (RHEL), CentOS, Ubuntu, Debian 等)
web 服务器软件
- Apache 2.2 或者 2.4 (必须打开 mod_rewrite)
- nginx 1.8 (or latest mainline version)
数据库
MySQL 5.6 或者 5.7
PHP
Update: 下面的要求特指 Magneto 2.1.0 后续版本有差异,请参考官方获得最新的消息
- 5.6.x
- 5.5.x ( x 大于 22)
- 7.0.2 至 7.1.0 (除了 7.0.5 和 7.0.4) (7.0.4 官文没有说,但 github 上有 bug 亲测不可用)
- php 扩展
bc-math (ee版本才需要)
curl
gd 或者 ImageMagick 6.3.7及以上版本 也可以两个都装
intl
mbstring
mcrypt
mhash
openssl
PDO/MySQL
SimpleXML
soap
xml
xsl
zip
PHP 7 only:
json
iconv
其他
暂时不考虑
目标
阿里云 ECS 操作系统 Ubuntu 14.04 64位
Apache 2.4
MySQL 5.7
PHP 7 (据说速度比 PHP 5 提高25%)
Magento 2.1.0
准备
下面的软件可以去这里下:http://pan.baidu.com/s/1skJVqiD
Magento 2 的安装包
- 官方下载地址:
https://www.magentocommerce.com/download - Composer
- GitHub
他们的目录略有不同,个人觉得第一种比较容易哈,下面我们下载 Magento 2.1.0 版本,带 Sample Data的
FTP 工具
一会儿需要用FTP上传到服务器上
个人用的是FileZilla Client
远程登陆工具
用它来远程连接服务器
个人用的是Putty
Apache
用远程登陆工具登上服务器
安装 Apache
apt-get -y update
apt-get -y install apache2
apache2 -v
Enable rewrites and .htaccess
- 启用Apache rewrite 模块
a2enmod rewrite
- 配置允许存在于.htaccess中的指令
vi /etc/apache2/sites-available/000-default.conf
在文件末尾添加<Directory "/var/www/html"> AllowOverride all </Directory>
- 重启Apache
service apache2 restart
MySQL
安装MySQL
(Ubuntu 自带的源目前没有MySQL 5.7)
apt-get -y update
apt-get -y upgrade
apt-get install software-properties-common
add-apt-repository -y ppa:ondrej/mysql-5.7
apt-get update
apt-get install mysql-server-5.7
mysql-client 也会自动装好的
mysql -V
mysql -u root -p
新建一个数据库 demomagento 并授权给用户 demomagento 密码是 Magento
(仅作演示用)
create database demomagento;
GRANT ALL ON demomagento.* TO demomagento@localhost IDENTIFIED BY 'Magento';
PHP
安装 PHP 和扩展
apt-get -y update
add-apt-repository ppa:ondrej/php
apt-get -y update
apt-get install -y php7.0 libapache2-mod-php7.0 php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-mcrypt php7.0-curl php7.0-intl php7.0-xsl php7.0-mbstring php7.0-zip php7.0-bcmath php7.0-iconv
查看版本
php -v
修改 PHP 设置
vi /etc/php/7.0/apache2/php.ini
该文件是apache使用的配置文件,可通过phpinfo() 找到他。还有一个php.ini配置文件用于命令行,可以通过php -i | grep php.ini
找到,就像/etc/php/7.0/cli/php.ini
对两个php.ini
做如下修改
date.timezone = "Asia/Shanghai"
memory_limit = 1024M
memory_limit 的配置官方是这样说的
- Compiling code, 768M
- Deploying static asses, 768M
- Installing and updating Magento components from Magento Marketplace, 1G
- Testing, 2G
可以 ping 通但访问超时
很可能是防火墙的问题
ufw allow 80/tcp
访问测试
这时候我们应该可以访问默认的页面了
添加用户
useradd -r -m -s /bin/bash ThankIT
配置用户的密码
passwd ThankIT
寻找 apache 的 user (www-data)
ps aux | grep apache
www-data 的 group 也是www-data
groups www-data
把 ThankIT 用户创建的任何文件都分配给 www-data 组
usermod -g www-data ThankIT
验证下 ThankIT 在 www-data 组
groups ThankIT
配置虚拟主机
切换成 ThankIT 用户
su ThankIT
在/home/ThankIT
下建立文件夹 www
mkdir www
/home/ThankIT/www
将作为虚拟主机的根目录,对应原来的 /var/www/html
vi /etc/apache2/apache2.conf
<Directory />
Require all denied
</Directory>
改为 Require all granted
vi /etc/apache2/sites-available/000-default.conf
修改DocumentRoot 为 /home/ThankIT/www/M210
添加
<Directory /home/ThankIT/www/M210>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
Allow from all
</Directory>
service apache2 restart
搭建 ftp 并上传
安装 vsftpd
apt-get install vsftpd
ufw allow 21/tcp
vi /etc/vsftpd.conf
将 write_enable=YES
前的 # 删除
将 local_umask=002
前的 # 删除
service vsftpd restart
上传准备好的 Magento 2.1.0 ZIP 文件
安装 Magento 2.1.0
安装解压缩软件
apt-get install unzip
解压缩并修改权限
unzip -d M210 Magentoce2.1.0.zip
切换 ThankIT 用户并修改文件权限
su ThankIT
cd /home/ThankIT/www/M210 && find var vendor pub/static pub/media app/etc -type f -exec chmod g+w {} \; && find var vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} \; && chown -R :www-data . && chmod u+x bin/magento
dreamsong
这根阿里云服务器有关系吗
Pisces Post author
非常感谢你的评论。Magento 的安装跟阿里云没有太大关系。
本篇文章记录的是我自己的操作总结。当时我面对的问题是怎么在阿里云 ecs 上装上 Magento 2,所以记录下来的标题就这样写了。
wander
你这个阿里云的国外访问速度怎么样?
刘书凯
我现在是 Magento2 的开发人员,遇到你的这博客,真是大赞!!!
有机会 请教 哈哈
刘书凯
我现在是 Magento2 的开发人员,遇到你的这博客,真是大赞!!!
有机会 请教 哈哈 。我先去装个自己的 wed for magento2 .
Pisces Post author
谢谢你的留言鼓励!
yan
请教一下为什么使用Apache而不是Nginx,新手不太懂
Pisces Post author
Apache 配起来容易一点,好上手,如果对你来说 Nginx 更方便,那就用 Nginx 吧~