阿里雲團隊努力不懈,讓最新技術內容能以更快方式以您最熟悉的語言呈現給您。本文內容由機器自動翻譯簡體中文,過程無人工干預。轉碼所造成任何內容錯誤及相關損失,阿里雲概不負責。敬請見諒。若任何內容問題涉及信息準確性,請以英文版為準。
全部產品
Search
文件中心

在Linux執行個體上搭建Magento電子商務網站

更新時間: Aug 23, 2018

Magento是一款開源電商網站架構,其豐富的模組化架構體系及拓展功能可為大中型網站提供解決方案。它使用PHP開發,支援版本範圍從PHP 5.6到PHP 7.1,並使用MySQL儲存資料。本教程主要說明如何在阿里雲ECS執行個體上搭建Magento電子商務網站,使用的作業系統為Linux CentOS 7.2 64位。

本教程中,我們會安裝以下軟體:

  • MySQL:5.7
  • PHP:7.0
  • Magento:2.2

前提條件

您已經建立了一台VPC網路類型的Linux ECS執行個體,詳細操作,請參見 建立一台ECS執行個體。建立執行個體時注意以下配置:

  • 作業系統:Cent OS 7.2 64位
  • 最小配置:2 vCPU、4 GiB記憶體、40 GiB高效雲端碟作為系統盤
  • VPC網路:如果您未建立VPC網路,請選擇預設VPC
  • ECS執行個體能訪問公網:即在建立時為執行個體分配公網IP地址
  • 允許TCP 80通信埠的HTTP訪問。詳細操作,請參見 添加安全性群組規則

操作步驟

使用Elastic Compute Service搭建Magento網站的操作步驟如下:

步驟1. 安裝配置LAMP平台
步驟2. 建立資料庫
步驟3. 安裝配置Composer
步驟4. 安裝配置Magento
步驟5. 測試並配置Magento網站
步驟6. 添加cron作業

步驟1. 安裝配置LAMP平台

  1. 依次運行以下命令更新包和存放庫,並安裝Apache Web伺服器和MySQL伺服器。

    1. [ECS]$ yum update -y
    2. [ECS]$ yum install httpd y
    3. [ECS]$ rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
    4. [ECS]$ yum -y install mysql-community-server
  2. 啟動HTTP和MySQL服務並設定開機自啟動。

    1. [ECS]$ systemctl start httpd
    2. [ECS]$ systemctl enable httpd
    3. [ECS]$ systemctl start mysqld
    4. [ECS]$ 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. 2018-03-16T02:23:32.142427Z 1 [Note] A temporary password is generated for root@localhost: pj?eyd6nH!:B
  5. 運行下面的命令可以從如下4個方面提高MySQL的安全性:

    • 設定root帳號密碼
    • 禁止root帳號遠程登入
    • 刪除匿名使用者帳號
    • 刪除test庫以及對test庫的存取權限
      詳細說明可參見 官方文檔。以下操作中,所有問題均輸入 Y
      1. [ECS]$ mysql_secure_installation
      2. Securing the MySQL server deployment.
      3. Enter password for user root: # 輸入上一步記錄的root帳號臨時密碼
      4. The existing password for the user account root has expired. Please set a new password.
      5. New password: # 輸入一個新的密碼
      6. Re-enter new password: # 確認密碼
      7. Estimated strength of the password: 100
      8. Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
      9. By default, a MySQL installation has an anonymous user,
      10. allowing anyone to log into MySQL without having to have
      11. a user account created for them. This is intended only for
      12. testing, and to make the installation go a bit smoother.
      13. You should remove them before moving into a production
      14. environment.
      15. Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
      16. Success.
      17. Normally, root should only be allowed to connect from
      18. 'localhost'. This ensures that someone cannot guess at
      19. the root password from the network.
      20. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
      21. Success.
      22. By default, MySQL comes with a database named 'test' that
      23. anyone can access. This is also intended only for testing,
      24. and should be removed before moving into a production
      25. environment.
      26. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
      27. - Dropping test database...
      28. Success.
      29. - Removing privileges on test database...
      30. Success.
      31. Reloading the privilege tables will ensure that all changes
      32. made so far will take effect immediately.
      33. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
      34. Success.
      35. All done!
  6. 依次運行以下命令,安裝PHP 7和一些所需的額外PHP擴充。

    1. [ECS]$ yum install y http://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-14.ius.centos7.noarch.rpm
    2. [ECS]$ yum -y update
    3. [ECS]$ 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. [ECS]$ php v
    2. PHP 7.0.28 (cli) (built: Mar 1 2018 10:03:25) ( NTS )
    3. Copyright (c) 1997-2017 The PHP Group
    4. Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    5. with Zend OPcache v7.0.28, Copyright (c) 1999-2017, by Zend Technologies
  8. 編輯設定檔/etc/php.ini:

    1. 運行命令 vim /etc/php.ini
    2. i 進入編輯模式。
    3. 找到 date.timezone 開始的代碼(預設被注釋掉了),添加正確的時區。如果您的執行個體在中國大陸,填寫 date.timezone = Asia/Shanghai
    4. Esc 鍵退出編輯,並輸入 :wq 保存並退出。
  9. 重啟Web服務進程。

    1. # systemctl restart httpd

步驟2. 建立資料庫

按以下步驟建立資料庫。

  1. 建立資料庫及使用者:為Magento資料建立一個資料庫和一個資料庫使用者,資料庫和使用者名可根據實際情況修改。

    1. [ECS]$ mysql -u root -p
    2. Enter password:
    3. Welcome to the MySQL monitor. Commands end with ; or \g.
    4. Your MySQL connection id is 5
    5. Server version: 5.7.21 MySQL Community Server (GPL)
    6. Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    7. Oracle is a registered trademark of Oracle Corporation and/or its
    8. affiliates. Other names may be trademarks of their respective
    9. owners.
    10. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    11. mysql> CREATE DATABASE magento;#根據執行個體情況替換magento
    12. Query OK, 1 row affected (0.00 sec)
    13. mysql> GRANT ALL ON magento.* TO test@localhost IDENTIFIED BY 'YourRootPass';#根據實際情況替換testYourRootPass
    14. Query OK, 0 rows affected, 1 warning (0.00 sec)
    15. mysql> FLUSH PRIVILEGES;
    16. Query OK, 0 rows affected (0.01 sec)
  2. 運行 exit; 退出MySQL。

  3. 驗證新建的Magento資料庫和使用者是否可用。

    1. [ECS]$ mysql -u test p
    2. Enter password: # 輸入密碼
    3. Welcome to the MySQL monitor. Commands end with ; or \g.
    4. Your MySQL connection id is 6
    5. Server version: 5.7.21 MySQL Community Server (GPL)
    6. Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    7. Oracle is a registered trademark of Oracle Corporation and/or its
    8. affiliates. Other names may be trademarks of their respective
    9. owners.
    10. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    11. mysql>
  4. 運行 exit; 退出MySQL。

步驟3. 安裝配置Composer

Composer是PHP一個包管理和包依賴管理的工具。按以下步驟安裝配置Composer。

  1. 安裝Composer。

    1. [ECS]$ 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. [ECS]$ mv /root/composer.phar /usr/bin/composer
  3. 測試命令是否可用。

    1. [ECS]$ 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. [ECS]$ yum -y install git
    2. [ECS]$ cd /var/www/html/
    3. [ECS]$ git clone https://github.com/magento/magento2.git
  2. 將Magento切換到穩定版本。
    預設情況git下載安裝Magento是一個最新的開發版本。如果您在生產環境中使用,建議切換到穩定版本,否則未來將無法升級安裝。

    1. [ECS]$ 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. [ECS]$ shopt -s dotglob nullglob && mv /var/www/html/magento2/* /var/www/html/ && cd ..
  4. 設定Magento檔案適當的許可權。

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

步驟5. 測試Magento安裝並安裝網店網站

  1. 在瀏覽器中,訪問 http://執行個體公網IP。如果您能看到如下圖所示頁面,說明Magento安裝成功。
    Magento

  2. 單擊 Agree and Setup Magento,按步驟填寫資料庫資訊、網站配置和使用者資訊。

    1. 添加資料庫。
      Magento_Add a database

    2. 配置網站。系統會自動分配一個管理員地址給您,比如本教程中的 admin_1x13y5。您也可以自訂管理員地址。
      Magento_Web Configuration

    3. 自訂網店。在這一步設定網站的時區。
      Magento_Customize your store

    4. 建立管理員帳號。
      Magento_Create an admin account

    5. 安裝網店網站。
      Magento_Install
      如果您能看到以下頁面,說明網店網站安裝成功。
      Magento_Success

  3. 單擊 Launch Magento Admin 進入網店的管理主控台(Dashboard)。
    Magento_Admin Dashboard

如果是網店管理員,您可以通過管理員地址訪問網店的管理主控台,比如本教程中的 http://ECS執行個體公網IP地址/admin_1xl3y5/。您的使用者可以通過 http://ECS執行個體公網IP地址 訪問您的網店。

步驟6. 添加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官方文檔

更多Magento配置資訊,請參見 Magento官方文檔