阿里云 ECS 安装 Magento 2 (原创)

Magento2 系统要求

官方参考网址:
http://devdocs.magento.com/guides/v2.0/install-gde/system-requirements.html

操作系统

Linux x86-64 (RedHat Enterprise Linux (RHEL), CentOS, Ubuntu, Debian 等)

web 服务器软件

  1. Apache 2.2 或者 2.4 (必须打开 mod_rewrite)
  2. nginx 1.8 (or latest mainline version)

数据库

MySQL 5.6 或者 5.7

PHP

Update: 下面的要求特指 Magneto 2.1.0 后续版本有差异,请参考官方获得最新的消息

  1. 5.6.x
  2. 5.5.x ( x 大于 22)
  3. 7.0.2 至 7.1.0 (除了 7.0.5 和 7.0.4) (7.0.4 官文没有说,但 github 上有 bug 亲测不可用)
  4. 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 的安装包

  1. 官方下载地址:
    https://www.magentocommerce.com/download
  2. Composer
  3. 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

  1. 启用Apache rewrite 模块
    a2enmod rewrite
  2. 配置允许存在于.htaccess中的指令
    vi /etc/apache2/sites-available/000-default.conf
    在文件末尾添加

    <Directory "/var/www/html">
     AllowOverride  all
    </Directory>
    
  3. 重启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 的配置官方是这样说的

  1. Compiling code, 768M
  2. Deploying static asses, 768M
  3. Installing and updating Magento components from Magento Marketplace, 1G
  4. 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

用浏览器打开网站开始安装 … 安装完成。

6 comments

  1. dreamsong

    这根阿里云服务器有关系吗

    1. Pisces Post author

      非常感谢你的评论。Magento 的安装跟阿里云没有太大关系。
      本篇文章记录的是我自己的操作总结。当时我面对的问题是怎么在阿里云 ecs 上装上 Magento 2,所以记录下来的标题就这样写了。

  2. wander

    你这个阿里云的国外访问速度怎么样?

  3. 刘书凯

    我现在是 Magento2 的开发人员,遇到你的这博客,真是大赞!!!
    有机会 请教 哈哈

  4. 刘书凯

    我现在是 Magento2 的开发人员,遇到你的这博客,真是大赞!!!
    有机会 请教 哈哈 。我先去装个自己的 wed for magento2 .

    1. Pisces Post author

      谢谢你的留言鼓励!

发表评论

电子邮件地址不会被公开。 必填项已用*标注