全部产品
阿里云办公

在Linux实例上搭建Magento电子商务网站(CentOS 7)

文档提供方:杭州玳数科技有限公司    更新时间:2018-04-14 19:19:22

Magento是一款开源电商网站框架,其丰富的模块化架构体系及拓展功能可为大中型站点提供解决方案。它使用PHP开发,支持版本范围从PHP 5.6到PHP 7.1,并使用MySQL存储数据。本文主要说明如何在阿里云ECS实例上搭建Magento电子商务网站,使用的操作系统为Linux CentOS 7.2 64位。

适用对象

适用于熟悉ECS,熟悉Linux系统,刚开始使用阿里云进行建站的用户。

资源

本文描述的操作涉及的Linux ECS实例配置包括:2 vCPU、4 GiB内存、Cent OS 7.2 64位操作系统、VPC网络、分配的公网IP地址。

说明:用于搭建Magento 2的服务器,内存不能小于2 GiB。

根据本文搭建的Magento电子商务网站,使用的软件版本信息如下:

  • MySQL 5.7
  • PHP 7.0
  • Magento 2.1

前提条件

您已经创建了一台VPC网络类型的Linux ECS实例,详细操作,请参见 创建ECS实例。配置包括:2 vCPU、4 GiB内存、Cent OS 7.2 64位操作系统、VPC网络、分配公网IP地址。

ECS实例所在安全组中已经添加了如下表所示的安全组规则。详细操作,请参见 创建ECS实例添加安全组规则

服务 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
HTTP 入方向 允许 自定义TCP 80/80 地址段访问 0.0.0.0/0 1
MySQL 入方向 允许 自定义TCP 3306/3306 地址段访问 0.0.0.0/0 1

操作步骤

使用云服务器ECS搭建Magento网站的操作步骤如下:

步骤1. 安装配置LAMP平台
步骤2. 创建数据库
步骤3. 安装配置Composer
步骤4. 安装配置Magento
步骤5. 添加cron作业

步骤1. 安装配置LAMP平台

本部分内容说明如何手动安装LAMP平台。您也可以在 云市场 购买LAMP镜像直接启动ECS实例,以便快速建站。

  1. 依次运行以下命令更新包和存储库,并安装Apache Web服务器和MySQL服务器。

    1. # yum -y update
    2. # yum -y install httpd
    3. # rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
    4. # yum -y install mysql-community-server
  2. 启动HTTP和MySQL服务并设置开机自启动。

    1. # systemctl start httpd
    2. # systemctl enable httpd
    3. # systemctl start mysqld
    4. # systemctl enable mysqld
  3. 编辑Apache配置文件:

    1. 运行命令vim /etc/httpd/conf/httpd.conf
    2. i 键进入编辑模式。
    3. 做以下修改:
      • Include conf.modules.d/*.conf 之后添加 LoadModule rewrite_module modules/mod_rewrite.so
      • 将以下内容的 AllowOverride None 改为 AllowOverride all
        1. Options Indexes FollowSymLinks
        2. #
        3. # AllowOverride controls what directives may be placed in .htaccess files.
        4. # It can be "All", "None", or any combination of the keywords:
        5. # Options FileInfo AuthConfig Limit
        6. #
        7. AllowOverride None
    4. Esc 键退出编辑,并输入 :wq 保存并退出。
  4. 查看/var/log/mysqld.log文件,获取安装MySQL时自动设置的root用户密码。

    1. # grep 'temporary password' /var/log/mysqld.log
    2. 2016-12-13T14:57:47.535748Z 1 [Note] A temporary password is generated for root@localhost: p0/G28g>lsHD
  5. 运行下面的命令可以从如下4个方面提高MySQL的安全性:

    • 设置root账号密码
    • 禁止root账号远程登录
    • 删除匿名用户账号
    • 删除test库以及对test库的访问权限
      详细说明可参见 官方文档
      1. # mysql_secure_installation
      2. Securing the MySQL server deployment.
      3. Enter password for user root: #输入第4步中获取的root用户密码
      4. The 'validate_password' plugin is installed on the server.
      5. The subsequent steps will run with the existing configuration of the plugin.
      6. Using existing password for root.
      7. Estimated strength of the password: 100
      8. Change the password for root ? ((Press y|Y for Yes, any other key for No) : Y #是否更改root用户密码,输入Y
      9. New password: #输入密码
      10. Re-enter new password: #再次输入密码
      11. Estimated strength of the password: 100
      12. Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
      13. By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.
      14. Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y #是否删除匿名用户,输入Y
      15. Success.
      16. Normally, root should only be allowed to connect from 'localhost'.
      17. This ensures that someone cannot guess at the root password from the network.
      18. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y #禁止root远程登录,输入Y
      19. Success.
      20. By default, MySQL comes with a database named 'test' that anyone can access.
      21. This is also intended only for testing, and should be removed before moving into a production
      22. environment.
      23. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y #是否删除test库和对它的访问权限,输入Y
      24. - Dropping test database...
      25. Success.
      26. - Removing privileges on test database...
      27. Success.
      28. Reloading the privilege tables will ensure that all changes
      29. made so far will take effect immediately.
      30. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y #是否重新加载授权表,输入Y
      31. Success.
      32. All done!
  6. 依次运行以下命令,安装PHP 7和一些所需的额外PHP扩展。

    1. # yum install -y http://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-14.ius.centos7.noarch.rpm
    2. # yum -y update
    3. # yum -y install php70u php70u-pdo php70u-mysqlnd php70u-opcache php70u-xml php70u-gd php70u-mcrypt php70u-devel php70u-intl php70u-mbstring php70u-bcmath php70u-json php70u-iconv
  7. 查看PHP版本,以验证PHP是否已经成功安装。

    1. # php -v
    2. PHP 7.0.13 (cli) (built: Nov 10 2016 08:44:18) ( NTS )
    3. Copyright (c) 1997-2016 The PHP Group
    4. Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    5. with Zend OPcache v7.0.13, Copyright (c) 1999-2016, by Zend Technologies
  8. 编辑配置文件/etc/php.ini:

    1. 运行命令 vim /etc/php.ini
    2. i 进入编辑模式。
    3. 在文件最后添加以下配置:
      1. memory_limit = 128M #根据实际情况增加内存限制
      2. date.timezone = Asia/Shanghai #设置时区为上海。
  9. 重启Web服务进程。

    1. # systemctl restart httpd

步骤2. 创建数据库

按以下步骤创建数据库。

  1. 创建数据库及用户:为Magento数据创建一个数据库和一个数据库用户,数据库和用户名可根据实际情况修改。

    1. # mysql -u root -p
    2. Enter password:
    3. mysql> CREATE DATABASE magento; #根据实例情况替换magento
    4. Query OK, 1 row affected (0.00 sec)
    5. mysql> GRANT ALL ON magento.* TO YourUser@localhost IDENTIFIED BY 'YourPass'; #根据实际情况替换YourUser和YourPass
    6. Query OK, 0 rows affected, 1 warning (0.00 sec)
    7. mysql> FLUSH PRIVILEGES;
    8. Query OK, 0 rows affected (0.00 sec)
  2. 运行 exit 退出MySQL。

  3. (可选)验证新建的Magento数据库和用户是否可用。

    1. # mysql -u YourUser -p
    2. mysql> show databases;
    3. +--------------------+
    4. | Database |
    5. +--------------------+
    6. | information_schema |
    7. | magento |
    8. +--------------------+
    9. 2 rows in set (0.00 sec)
    10. mysql> exit

步骤3. 安装配置Composer

Composer是PHP一个包管理和包依赖管理的工具。按以下步骤安装配置Composer。

  1. 安装Composer。

    1. # curl -sS https://getcomposer.org/installer | php
    2. All settings correct for using Composer
    3. Downloading 1.2.4...
    4. Composer successfully installed to: /root/composer.phar
    5. Use it: php composer.phar
  2. 配置Composer全局使用。

    1. # mv /root/composer.phar /usr/bin/composer
  3. 测试命令是否可用。

    1. # composer -v
    2. ______
    3. / ____/___ ____ ___ ____ ____ ________ _____
    4. / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
    5. / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
    6. \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
    7. /_/
    8. Composer version 1.2.4 2016-12-06 22:00:51

步骤4. 安装配置Magento

您可以使用不同的方法安装Magento,也可以选择是否安装示例数据。如果安装Magento仅用于测试,您可以选择安装示例数据。如果是在生产环境中安装Magento,建议您安装全新的Magento,从头开始配置。

本部分介绍如何使用git下载Magento,然后使用Composer安装Magento。

  1. 依次运行以下命令,通过 git clone 下载Magento。

    1. # yum -y install git
    2. # cd /var/www/html/
    3. # git clone https://github.com/magento/magento2.git
  2. (可选)将Magento切换到稳定版本。
    默认情况git下载安装Magento是一个最新的开发版本。如果您在生产环境中使用,建议切换到稳定版本,否则未来将无法升级安装。

    1. # cd magento2 && git checkout tags/2.1.0 -b 2.1.0
    2. Switched to a new branch '2.1.0'
  3. 将安装文件移到Web服务器根目录下。否则,您只能通过 http://[ECS实例公网IP地址]/magento2 访问您的Magento站点。

    1. # shopt -s dotglob nullglob && mv /var/www/html/magento2/* /var/www/html/ && cd ..
  4. 设置Magento文件适当的权限。

    1. # chown -R :apache /var/www/html
    2. # find /var/www/html -type f -print0 | xargs -r0 chmod 640
    3. # find /var/www/html -type d -print0 | xargs -r0 chmod 750
    4. # chmod -R g+w /var/www/html/{pub,var}
    5. # chmod -R g+w /var/www/html/{app/etc,vendor}
    6. # chmod 750 /var/www/html/bin/magento
  5. 运行 composer install 安装Magento。

  6. 测试:在浏览器中访问 http://[ECS实例公网IP地址],如果出现以下页面,说明Magento安装成功。
    Magento安装成功

  7. 单击 Agree and Setup Magento 开始配置Magento:按实际情况填写连接数据库信息、Web访问设置、定制商店、创建管理员账号。出现如下图所示的界面时,说明Magento配置完成。
    Magento配置完成

步骤5. 添加cron作业

  1. 运行 crontab -u apache -e 设置cron运行调度工作。

  2. 添加以下内容。

    1. */10 * * * * php -c /etc /var/www/html/bin/magento cron:run
    2. */10 * * * * php -c /etc /var/www/html/update/cron.php
    3. */10 * * * * php -c /etc /var/www/html/bin/magento setup:cron:run

关于Magento上使用cron作业,请参见 Magento官方文档

后续操作

访问 http://[ECS实例公网IP] 可以看到如下图所示的默认主页。
Magento_首页

访问 http://[ECS实例公网IP]/admin,使用您在安装过程中设置的用户名和密码,成功登录管理面板后可看到如下界面。
Magento_管理面板

更多Magento配置信息,请参见 Magento官方文档

本文导读目录