九游平台/ 弹性云服务器 ecs/ / / / 手工搭建magento电子商务网站(linux)
更新时间:2025-03-07 gmt 08:00

手工搭建magento电子商务网站(linux)-九游平台

简介

本文主要介绍了如何使用弹性云服务器的linux实例手工搭建magento电子商务系统。magento是一款开源电子商务系统,设计灵活,具有模块化架构体系和丰富的功能,可为大中型站点提供九游平台的解决方案。magento采用php开发,数据存储使用mysql。

您还可以选择solution as code一键式部署方式自动部署magento电子商务网站,详细内容请参见。

前提条件

  • 已购买一台弹性云服务器,且已为其绑定弹性公网ip。
  • 弹性云服务器所在安全组添加了如下表所示的安全组规则,具体步骤参见为安全组添加安全组规则
    表1 安全组规则

    方向

    优先级

    策略

    类型

    协议端口

    源地址

    入方向

    1

    允许

    ipv4

    tcp: 22

    允许ssh远程连接linux弹性云服务器的客户端ip地址。如允许所有ip访问,请设置为0.0.0.0/0,出于安全考虑,不建议您设置为允许所有ip访问。

    入方向

    1

    允许

    ipv4

    tcp: 80

    允许访问magento网站的客户端ip地址。如允许所有ip访问,请设置为0.0.0.0/0。

    入方向

    1

    允许

    ipv4

    tcp : 3306

    允许远程访问mysql数据库的客户端ip地址。如允许所有ip访问,请设置为0.0.0.0/0,出于安全考虑,不建议您设置为允许所有ip访问。

资源规划

本次实践所用的资源配置及软件版本如表2中所示。当您使用不同的硬件规格或软件版本时,本指导中的命令及参数可能会发生改变,需要您根据实际情况进行调整。

表2 资源规划

资源

类别

规格/版本

ecs配置

实例规格

c6s.large.2

vcpus

2vcpus

内存

4gib

操作系统

centos 7.2

软件资源

apache

2.4.6

mysql

5.7

获取方式:

php

7.0.33

获取方式:

composer

1.10.19

获取方式:

magento

2.1.0

获取方式:

为保证所搭建网站正常运行,所选的ecs实例规格建议为2gib及以上。

步骤一:安装配置apache

  1. 远程登录弹性云服务器,操作方法请参考登录linux弹性云服务器
  2. 为了更好的获取和更新系统和软件,建议您更新镜像源为华为云镜像源,详细操作,请参见。
  3. 使用root用户执行以下命令更新软件包,并安装apache。
    yum -y update
    yum -y install httpd

    如果执行命令过程中报错,提示无法解析域名时,可以在“/etc/resolv.conf”配置文件中增加一个dns服务器。

  4. 打开apache配置文件。
    vim /etc/httpd/conf/httpd.conf

    如果没有安装vim,可使用yum install -y vim*命令进行安装。

  5. i键进入编辑模式,修改如下两处内容:
    • 将下图所示位置的配置参数“allowoverride none ”改为“ allowoverride all ”:

    • 在配置文件末新增一行配置参数:
      loadmodule rewrite_module modules/mod_rewrite.so

      如下图所示:

  6. esc键退出编辑模式,并输入:wq保存后退出。
  7. 依次执行以下命令,启动apache服务并设置开机自启动。
    systemctl start httpd
    systemctl enable httpd

步骤二:安装配置mysql

  1. 使用root用户执行以下命令添加yum源。
    rpm -uvh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
  2. 安装mysql。
    yum -y install mysql-community-server --nogpgcheck
  3. 依次执行以下命令,启动mysql服务并设置开机自启动。
    systemctl start mysqld
    systemctl enable mysqld
  4. 执行以下命令,获取安装mysql时自动设置的root用户密码。
    grep 'temporary password' /var/log/mysqld.log
    回显如下类似信息,其中“(n?k7jp#cirm”即为临时密码。
    2019-05-09t11:29:42.365419z 1 [note] a temporary password is generated for root@localhost: (n?k7jp#cirm
  5. 执行以下命令加固mysql。
    mysql_secure_installation

    按照回显提示信息进行操作,具体操作如粗体所示:

    securing the mysql server deployment.
    enter password for user root:    #输入上一步骤中获取的安装mysql时自动设置的root用户密码
    the existing password for the user account root has expired. please set a new password.
    new password:                    #设置root用户密码
    re-enter new password:           #再次输入密码
    the 'validate_password' plugin is installed on the server.
    the subsequent steps will run with the existing configuration of the plugin.
    using existing password for root.
    estimated strength of the password: 100
    change the password for root ? ((press y|y for yes, any other key for no) : y   #是否更改root用户密码,输入y
    new password:    #输入密码,长度为8至30个字符,须同时包含大小写英文字母、数字和特殊符号。特殊符号可以是()` ~!@#$%^&*- =|{}[]:;‘<>,.?/
    re-enter new password:    #再次输入密码
    estimated strength of the password: 100
    do you wish to continue with the password provided?(press y|y for yes, any other key for no) : y    #输入y
    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.
    remove anonymous users? (press y|y for yes, any other key for no) : y   #是否删除匿名用户,输入y
    success.
    normally, root should only be allowed to connect from 'localhost'. this ensures that someone cannot guess at the root password from the network.
    disallow root login remotely? (press y|y for yes, any other key for no) : y   #禁止root远程登录,输入y
    success.
    by default, mysql comes with a database named 'test' that anyone can access. this is also intended only for testing, and should be removed before moving into a production environment.
    remove test database and access to it? (press y|y for yes, any other key for no) : y   #是否删除test库和对它的访问权限,输入y
     - dropping test database...
    success.
     - removing privileges on test database...
    success.
    reloading the privilege tables will ensure that all changes
    made so far will take effect immediately.
    reload privilege tables now? (press y|y for yes, any other key for no) : y   #是否重新加载授权表,输入y
    success.
    all done!
  6. 以root用户登录mysql数据库。
    mysql -u root -p
  7. 创建一个新的数据库,其中“magento”为自定义的数据库名称。
    create database magento;
  8. 执行以下命令,为数据库创建用户并为用户分配数据库的完全访问权限。
    grant all on magento.* to magentouser@localhost identified by 'xxxxx';

    其中,“magento”为上一步骤中创建的数据库名,“magentouser”为新建的数据库用户名,“xxxxx”为对应的账户密码,可以自行设置。

  9. 执行以下命令,退出mysql命令行。
    exit
  10. (可选)依次执行以下步骤,验证数据库和用户是否已成功创建,并退出mysql命令行。
    1. 以新建的数据库用户“magentouser”登录mysql命令行。
      mysql -u magentouser -p
    2. 查看数据库。
      show databases;

      回显如下,“magento”即为新建的数据库,说明数据库已成功创建。

       -------------------- 
      | database           |
       -------------------- 
      | information_schema |
      | magento            |
       -------------------- 
      2 rows in set (0.00 sec)
    3. 执行以下命令,退出mysql命令行。
      exit

步骤三:安装配置php

  1. 添加ius源和epel源。
    yum install \
    https://repo.ius.io/ius-release-el7.rpm \
    https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
  2. 添加webtatic源。
    rpm -uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
  3. 安装php7和用于magento安装的一些必需的php扩展。
    yum -y install php70w php70w-pdo php70w-mysqlnd php70w-opcache php70w-xml php70w-gd php70w-mcrypt php70w-devel php70w-intl php70w-mbstring php70w-bcmath php70w-json php70w-iconv
  4. 执行以下命令,验证php的安装版本。
    php -v

    回显如下类似信息:

    php 7.0.33 (cli) (built: dec  6 2018 22:30:44) ( nts )
    九游平台 copyright (c) 1997-2017 the php group
    zend engine v3.0.0, 九游平台 copyright (c) 1998-2017 zend technologies
        with zend opcache v7.0.33, 九游平台 copyright (c) 1999-2017, by zend technologies
  5. 打开php配置文件“php.ini”
    vim /etc/php.ini
  6. i键进入编辑模式,修改如下两处内容:
    • 根据实际情况修改参数“memory_limit”的值,设置内存限制,如下图所示:

    • 取消注释并设置参数“date.timezone”的值,指定php的时区,如下图所示:

  7. esc键退出编辑模式,并输入:wq保存后退出。
  8. 执行以下命令,重启web服务进程。
    systemctl restart httpd

步骤四:安装composer工具

composer是php编程语言的包管理器,提供管理php软件依赖和所需库的标准格式。

  1. 由于magento2的依赖为composer1.x版本,所以需确保安装的composer版本的1.x版本。
    执行以下命令安装指定版本的composer,并将安装路径指定为“/usr/bin/”以供全局使用。
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php composer-setup.php --install-dir=/usr/bin/ --filename=composer --version=1.10.19

    回显如下:

    all settings correct for using composer
    downloading... 
    composer (version 1.10.19) successfully installed to: /usr/bin/composer
    use it: php /usr/bin/composer
  2. 执行以下命令,验证composer否成功安装。
    composer -v

    回显如下:

       ______
      / ____/___  ____ ___  ____  ____  ________  _____
     / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
    / /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
    \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                        /_/
    composer version 1.10.19 2020-12-04 09:14:16
    ...

步骤五:安装magento组件

安装magento时可以选择是否安装示例数据。如果安装magento仅用于测试,可以选择安装示例数据。如果是在生产环境中安装magento,建议安装全新的magento,并从初始进行配置。

  1. 执行以下命令,安装git。
    yum -y install git
  2. 依次执行以下命令,进入web服务器的默认根目录“/var/www/html/”并使用git下载magento。
    cd /var/www/html/
    git clone https://github.com/magento/magento2.git
  3. 执行以下命令,将magento切换到稳定版本。

    默认情况下前一步骤的命令会安装最新开发版本的magento。在生产环境中使用时,建议切换到稳定版本,否则将来将无法进行升级。

    cd magento2 && git checkout tags/2.1.0 -b 2.1.0

    回显如下类似信息:

    switched to a new branch '2.1.0'
  4. 执行以下命令,将安装文件移到web服务器的根目录“/var/www/html/”下,其中“/var/www/html/magento2/”为magento的当前安装目录。
    shopt -s dotglob nullglob && mv /var/www/html/magento2/* /var/www/html/ && cd ..

    迁移后可以通过“http://magento服务器的ip地址”访问magento站点。否则,只能通过“http://magento服务器的ip地址/magento2”访问magento站点。

  5. 依次执行以下命令,设置magento文件的权限。
    chown -r apache:apache /var/www/html
    find /var/www/html -type f -print0 | xargs -r0 chmod 640
    find /var/www/html -type d -print0 | xargs -r0 chmod 750
    chmod -r g w /var/www/html/{pub,var}
    chmod -r g w /var/www/html/{app/etc,vendor}
    chmod 750 /var/www/html/bin/magento
  6. 安装unzip和zip。
    yum install -y unzip zip
  7. 进入web服务器的默认根目录“/var/www/html/”,然后使用composer工具安装magento。
    cd /var/www/html/
    composer install
  8. 安装完成后,可通过浏览器访问“http://magento服务器ip地址”,显示如下页面,说明magento安装成功。

步骤六:配置magento

  1. 通过浏览器访问“http://magento服务器ip地址”,单击“agree and setup magento”,开始配置magento。
  2. 单击“start readiness check”,进行环境检测。检测通过后单击“next”

  3. 填写步骤二:安装配置mysql中创建的mysql数据库账户“magentouser”和密码,以及对应的数据库“magento”,并单击“next”

    如下图所示:

  4. 设置网站的访问地址和后台管理地址,并单击“next”

    如下图所示:

    后台管理地址可自定义,请牢记设置的后台管理地址。

  5. 设置语言和时区信息,并单击“next”

    如下图所示:

  6. 设置管理账号和密码,并单击“next”

    如下图所示:

  7. 单击“install now”,等待系统安装完成。

    显示如下界面时,表示系统安装成功。

  8. 登录magento服务器,设置cron来运行预定的作业。
    crontab -u apache -e
  9. i键进入编辑模式,添加如下内容。
    */10 * * * * php -c /etc /var/www/html/bin/magento cron:run
    */10 * * * * php -c /etc /var/www/html/update/cron.php
    */10 * * * * php -c /etc /var/www/html/bin/magento setup:cron:run

    esc键退出编辑模式,并输入:wq保存后退出。

    更多关于magento使用cron作业的内容,请参见。

  10. 打开客户端的计算机,使用浏览器访问“http://magento服务器ip地址”,显示如下图所示的默认界面。

  11. 使用浏览器访问“http://magento后台管理地址”,并使用配置magento过程中设置的管理账号和密码登录,登录成功后显示如下图所示的界面。

    如果登录后界面提示“one or more indexers are invalid. make sure your magento cron job is running.”的错误信息,可在magento根目录“/var/www/html”执行php bin/magento indexer:reindex命令。

    更多关于magento配置信息,请参见。

步骤七:其余操作

  1. 购买域名。

    为了便于网站的访问和使用,可以给网站设置一个单独的域名,使用域名访问网站。您可以在中购买域名,具体步骤请参考域名注册流程

  2. 进行备案。

    如果网站未进行备案,且需要使用华为云进行托管,则需要通过华为云备案系统进行备案。具体操作请参见备案流程

  3. 配置域名解析。

    配置域名解析后才能使用注册的域名访问网站。具体操作请参见配置域名解析

    例如,配置的域名为“www.example.com”,配置成功后,可在浏览器地址栏中输入“http://www.example.com”访问部署的网站。

相关文档

网站地图