【最佳实践】手工搭建Magento电子商务网站(Linux)

举报
云上精选 发表于 2020/04/23 17:32:11 2020/04/23
【摘要】 使用弹性云服务器的Linux实例搭建Magento电子商务系统。Magento是一款开源电子商务系统,设计灵活,具有模块化架构体系和丰富的功能,可为大中型站点提供解决方案

简介

本文主要介绍了如何使用弹性云服务器的Linux实例搭建Magento电子商务系统。Magento是一款开源电子商务系统,设计灵活,具有模块化架构体系和丰富的功能,可为大中型站点提供解决方案。Magento采用PHP开发,数据存储使用MySQL。该指导具体操作以CentOS 7.2操作系统为例。

前提条件

弹性云服务器所在安全组添加了如下表所示的安全组规则,具体步骤参见为安全组添加安全组规则

表1 安全组规则

方向

协议/应用

端口/范围

源地址

入方向

HTTP(80)

80

0.0.0.0/0

入方向

My SQL(3306)

3306

0.0.0.0/0

操作步骤

  1. 安装配置LAMP平台。

    1. 登录弹性云服务器
    2. 使用“root”用户依次执行以下命令更新软件包,并安装Apache和MySQL。

      yum -y update

      yum -y install httpd

      rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

      yum -y install mysql-community-server

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

  2. 依次执行以下命令,启动Apache和MySQL服务并设置开机自启动。

    systemctl start httpd

    systemctl enable httpd

    systemctl start mysqld

    systemctl enable mysqld

    1. 修改Apache配置文件。
      1. 执行以下命令打开配置文件“httpd.conf ”。

        vim /etc/httpd/conf/httpd.conf

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

      2. i键进入编辑模式。
      3. 修改打开的“httpd.conf ”文件。
        • 将下图所示位置的配置参数“AllowOverride None ”改为“ AllowOverride all ”:

        • 在配置文件末新增一行配置参数“LoadModule rewrite_module modules/mod_rewrite.so”,如下图所示:

      4. Esc键退出编辑模式,并输入:wq保存后退出。
    2. 执行以下命令,获取安装MySQL时自动设置的root用户密码。

      grep 'temporary password' /var/log/mysqld.log

      回显如下类似信息。
      2019-05-09T11:29:42.365419Z 1 [Note] A temporary password is generated for root@localhost: (n?K7jP#cirM
    3. 执行以下命令,并按照回显提示信息进行操作,加固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!
    4. 依次执行以下命令,安装PHP 7和用于Magento安装的一些必需的PHP扩展。

      yum install -y http://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-15.ius.centos7.noarch.rpm

      yum -y update

      rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

      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

    5. 执行以下命令,验证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
    6. 修改PHP配置文件。
      1. 执行以下命令打开配置文件“php.ini”。

        vim /etc/php.ini

      2. i键进入编辑模式。
      3. 修改打开的“php.ini”文件。
        • 根据实际情况修改参数“memory_limit”的值,设置内存限制,如下图所示:

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

      4. Esc键退出编辑模式,并输入:wq保存后退出。
    7. 执行以下命令,重启Web服务进程。

      systemctl restart httpd

  3. 创建数据库。

    1. 执行以下命令,并按照提示信息输入MySQL的root用户,登录到MySQL命令行。

      mysql -u root -p

    2. 执行以下命令,创建一个新的数据库。

      CREATE DATABASE magento;

      其中,“magento”为数据库名,可以自行设置。

    3. 执行以下命令,为数据库创建用户并为用户分配数据库的完全访问权限。

      GRANT ALL ON magento.* TO magentouser@localhost IDENTIFIED BY 'BLOck@123' ;

      其中,“magentouser”为数据库用户名,“BLOck@123”为对应的帐户密码,可以自行设置。

    4. 执行以下命令,退出MySQL命令行。

      exit

    5. (可选)依次执行以下命令,验证数据库和用户是否已成功创建,并退出MySQL命令行。

      mysql -u magentouser -p

      SHOW DATABASES;

      exit

      其中,“magentouser”为刚刚创建的数据库用户名。

  4. 安装配置Composer。

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

    1. 执行以下命令,安装Composer。

      curl -sS https://getcomposer.org/installer | php

      回显如下类似信息:

      All settings correct for using Composer
      Downloading...
      
      Composer (version 1.8.5) successfully installed to: /root/composer.phar
      Use it: php composer.phar
    2. 执行以下命令,配置Composer全局使用。

      mv /root/composer.phar /usr/bin/composer

    3. 执行以下命令,验证Composer否成功安装。

      composer -v

      回显如下类似信息:

         ______
        / ____/___  ____ ___  ____  ____  ________  _____
       / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
      / /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
      \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                          /_/
      Composer version 1.8.5 2019-04-09 17:46:47

  5. 安装Magento。

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

    1. 执行以下命令,安装git。

      yum -y install git

    2. 依次执行以下命令,使用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服务器的根目录下。

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

      shopt -s dotglob nullglob && mv /var/www/html/magento2/* /var/www/html/ && cd ..

    5. 依次执行以下命令,设置Magento文件的权限。

      chown -R :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. 依次执行以下命令,安装Magento。

      yum install -y unzip zip

      composer install

    7. 使用浏览器访问 “http://magento服务器IP地址显示如下页面,说明Magento安装成功。

  6. 配置Magento。

    1. 单击“Agree and Setup Magento”,开始配置Magento。
    2. 单击“Start Readiness Check”,进行环境检测。检测通过后单击“Next”。
    3. 填写MySQL数据库的“root”帐户密码,以及创建的MySQL数据库名称,并单击“Next”。

      如下图所示:

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

      如下图所示:

      请牢记设置的后台管理地址。

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

      如下图所示:

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

      如下图所示:

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

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

  7. 设置cron来运行预定的作业。

    1. 执行以下命令,配置cron作业。

      crontab -u apache -e

    2. i键进入编辑模式。
    3. 添加如下内容。

      */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

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

      更多关于Magento使用cron作业的内容,请参见Magento官方文档

  8. 测试。

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

    2. 使用浏览器访问“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配置信息,请参见Magento官方文档

  1. 购买域名。

    为了便于网站的访问和使用,可以给网站设置一个单独的域名,使用域名访问网站。首先,需要在域名注册商处获得授权的域名。

  2. 进行备案。

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

  3. 配置域名解析。

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

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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。