全部產品
Search
文件中心

Elastic Compute Service:手動搭建Magento電子商務網站

更新時間:Feb 28, 2024

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

前提條件

  • 登入阿里雲帳號。如還未註冊,請先完成帳號註冊

  • 已在ECS執行個體安全性群組的入方向已添加規則並允許存取連接埠80和3306。具體操作,請參見添加安全性群組規則
    說明 大多數用戶端位於區域網路中,IP地址是經過轉換的,因此ipconfigifconfig命令返回的IP不一定是用戶端的真實公網IP地址。若後續用戶端無法訪問Magento網站,請重新確認其公網IP地址。
    規則方向授權策略協議類型連接埠範圍授與類型授權對象
    入方向允許HTTP(80)80/80IPv4位址區段訪問所有要訪問Magento網站的用戶端公網IP地址,多個地址之間用逗號隔開。

    允許所有用戶端訪問時,授權對象為0.0.0.0/0。

    入方向允許MySQL(3306)3306/3306IPv4位址區段訪問所有要訪問MySQL資料庫服務的用戶端公網IP地址,多個地址之間用逗號隔開。

    允許所有用戶端訪問時,授權對象為0.0.0.0/0。

背景資訊

本教程使用的ECS執行個體硬體設定如下:
  • 執行個體規格:ecs.c6.large
  • 作業系統:公用鏡像CentOS 7.2 64位
  • CPU:2 vCPU
  • 記憶體:4 GiB
    說明 搭建Magento伺服器,所選執行個體規格記憶體不能小於2GiB。
  • 網路類型:VPC
  • IP地址:公網IP

樣本步驟使用以下軟體版本:

  • Apache:2.4.6
  • MySQL:5.7
  • PHP:7.0
  • Composer:1.8.5
  • Magento:2.1

當您使用不同軟體版本時,可能需要根據實際情況調整命令和參數配置。

操作流程

在阿里雲ECS執行個體上搭建Magento電子商務網站的操作流程如下:

步驟一:安裝並配置Apache

  1. 安裝Apache。
    1. 運行以下命令安裝Apache。
      yum install httpd -y
    2. 運行以下命令查看Apache是否安裝成功。
      httpd -v
      返回結果如下圖所示,表示安裝成功。magento_1
  2. 配置Apache。
    1. 運行以下命令開啟Apache設定檔。
      vim /etc/httpd/conf/httpd.conf
    2. Include conf.modules.d/*.conf的下一行,添加LoadModule rewrite_module modules/mod_rewrite.so。具體步驟如下:
      1. 移動游標到Include conf.modules.d/*.conf下一行的行首。
      2. 按下i鍵進入編輯模式。
      3. 輸入LoadModule rewrite_module modules/mod_rewrite.so
      添加後的內容,如下圖所示。local_module
    3. 將下列內容中的AllowOverride None更改為AllowOverride All
      # AllowOverride controls what directives may be placed in .htaccess files.
      # It can be "All", "None", or any combination of the keywords:
      # Options FileInfo AuthConfig Limit
      #
      #在行首添加#注釋掉本行內容
      #AllowOverride None
      
      #添加下列內容
      AllowOverride All
      修改後的內容,如下圖所示。allowoverride_all
    4. 按下Esc鍵後,輸入:wq並斷行符號以儲存並關閉設定檔。
  3. 運行以下命令啟動Apache服務。
    systemctl start httpd
  4. 運行以下命令添加Apache服務開機自啟動。
    systemctl enable httpd

步驟二:安裝並配置MySQL

  1. 安裝MySQL。
    1. 運行以下命令添加MySQL YUM源。
      rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
    2. 運行以下命令安裝MySQL。
      yum -y install mysql-community-server --nogpgcheck
  2. 運行以下命令啟動MySQL服務。
    systemctl start mysqld
  3. 運行以下命令設定MySQL服務開機自啟動。
    systemctl enable mysqld
  4. 配置MySQL。
    1. 運行以下命令查看/var/log/mysqld.log檔案,擷取並記錄root使用者的初始密碼。
      grep 'temporary password' /var/log/mysqld.log

      命令的返回結果如下:

      2016-12-13T14:57:47.535748Z 1 [Note] A temporary password is generated for root@localhost: p0/G28g>lsHD
      說明 下一步重設root使用者密碼時,會使用該初始密碼。
    2. 運行下列命令配置MySQL的安全性。
      mysql_secure_installation
      安全性的配置包含以下五個方面:
      1. 設定root帳號密碼。
        Enter password for user root: #輸入上一步中擷取的root使用者密碼
        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
      2. 輸入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.
      3. 輸入Y禁止root帳號遠程登入。
        Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y #禁止root遠程登入,輸入Y
        Success.
      4. 輸入Y刪除test庫以及對test庫的存取權限。
        Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y #是否刪除test庫和對它的存取權限,輸入Y
        - Dropping test database...
        Success.
      5. 輸入Y重新載入授權表。
        Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y #是否重新載入授權表,輸入Y
        Success.
        All done!

      更多詳情,請參見MySQL文檔

步驟三:安裝並配置PHP

  1. 安裝PHP。
    1. 運行以下命令添加ius源。
      yum install \
      https://repo.ius.io/ius-release-el7.rpm \
      https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    2. 運行以下命令添加Webtatic源。
      rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
    3. 運行以下命令安裝PHP7及所需擴充。
      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安裝成功。
      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                        
  2. 配置PHP。
    1. 運行以下命令開啟PHP設定檔。
      vim /etc/php.ini
    2. 移動游標至最後一行的行尾。具體操作步驟如下:
      1. 輸入:$並斷行符號,游標將移動至檔案最後一行。
      2. 按下$移動游標至行尾。
    3. 按下i鍵進入編輯模式。
    4. 在檔案最後添加關於記憶體限制和時區的配置。
      ; 允許為PHP指令碼分配的最大記憶體值。您可根據實際情況增加或減少記憶體限制
      memory_limit = 1024M
      ; 設定時區為上海
      date.timezone = Asia/Shanghai
      添加後如下圖所示。magento_2
    5. 按下Esc鍵後,輸入:wq並斷行符號以儲存並關閉檔案。
    6. 重啟Apache服務。
      systemctl restart httpd

步驟四:建立Magento資料庫

  1. 運行以下命令使用root使用者和密碼登入MySQL。
    mysql -u root -p
  2. 運行以下命令建立magento資料庫。
    mysql> CREATE DATABASE magento; #根據實際情況將magento替換為您需要建立的資料庫名稱
  3. 依次運行以下命令為magento資料庫建立使用者。
    mysql> GRANT ALL ON magento.* TO <YourUser>@localhost IDENTIFIED BY '<YourPass>'; #替換<YourUser>和<YourPass>為您需要建立的帳號和密碼
    mysql> FLUSH PRIVILEGES;
    例如,建立帳號為magentoUser、密碼為magentoUser1@3的使用者,啟動並執行命令為:
    mysql> GRANT ALL ON magento.* TO magentoUser@localhost IDENTIFIED BY 'magentoUser1@3';
    mysql> FLUSH PRIVILEGES;
  4. 輸入exit並斷行符號以退出MySQL。
  5. 可選:驗證建立的Magento資料庫和使用者是否可用。具體步驟如下:
    1. 運行以下命令使用建立帳號和密碼登入MySQL。
      mysql -u <YourUser> -p   #替換<YourUser>為您建立的帳號
    2. 運行以下命令查看建立的magento資料庫。
      mysql> show databases;
      +--------------------+
      | Database           |
      +--------------------+
      | information_schema |
      | magento            |
      +--------------------+
      2 rows in set (0.00 sec)
    3. 運行以下命令並斷行符號以退出MySQL。
      mysql> exit

步驟五:安裝並配置Composer

Composer是PHP的一個依賴管理工具。Composer允許您申明專案所依賴的程式碼程式庫,並幫您在專案中安裝依賴的程式碼程式庫。

  1. 運行以下命令安裝Composer。
    curl -sS https://getcomposer.org/installer | php
  2. 運行以下命令配置Composer全域使用。
    mv /root/composer.phar /usr/bin/composer
  3. 運行命令composer -v查看Composer版本。
    返回結果如下,表示Composer安裝成功。
      / ____/___  ____ ___  ____  ____  ________  _____
     / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
    / /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
    \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                        /_/
    Composer version 1.8.5 2019-04-09 17:46:47
                            
    說明 因最新版Composer與Magento暫不相容,所以您需要安裝與Magento相容的Composer版本。你可以使用以下命令來讓最新版Composer轉換至相容版本。如Composer 1.8.5版本。
    composer self-update 1.8.5

步驟六:安裝配置Magento

您可以使用不同的方法安裝Magento,可以選擇是否安裝樣本資料。
  • 如果安裝Magento僅用於測試,您可以選擇安裝樣本資料。
  • 如果安裝Magento用於生產環境,建議您安裝全新的Magento,從頭開始配置。

本教程介紹使用Git下載Magento,並使用Composer安裝Magento的操作步驟。

  1. 下載Magento。
    1. 運行以下命令安裝Git。
      yum -y install git
    2. 進入Web伺服器的預設根目錄。
      cd /var/www/html/
    3. 下載Magento。
      git clone https://github.com/magento/magento2.git
  2. 可選:運行以下命令將Magento切換到穩定版本。
    cd magento2 &&  git checkout tags/2.1.0 -b 2.1.0

    命令執行後的結果如下:

    Switched to a new branch '2.1.0'
    說明 預設情況下,Git下載安裝的Magento是最新的開發版本。如果您在生產環境中使用,建議切換到穩定版本,否則未來將無法升級安裝。
  3. 運行以下命令將安裝檔案移到Web伺服器根目錄下。
    shopt -s dotglob nullglob && mv /var/www/html/magento2/* /var/www/html/ && cd ..
    說明 運行此命令後,您可以通過https://<ECS執行個體公網IP地址>訪問您的Magento網站。否則,您只能通過https://<ECS執行個體公網IP地址>/magento2訪問。
  4. 依次運行下列命令為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
  5. 運行命令composer install安裝Magento。

步驟七:配置Magento用戶端

  1. 開啟瀏覽器。
  2. 在瀏覽器地址欄中,輸入http://<ECS執行個體公網IP地址>
    出現如下圖所示頁面,表示Magento安裝成功。magento_3
  3. 單擊Agree and Setup Magento開始配置Magento。具體步驟如下:
    1. 準備性檢查。
      1. 單擊Start Readiness Check
      2. 檢查完成後,單擊Next
      magento-check
    2. 添加資料庫。
      1. 輸入之前建立的資料庫使用者的帳號和密碼。本教程中建立的樣本使用者帳號為magentoUser、密碼為magentoUser1@3
      2. 輸入之前建立的資料庫的名字。本教程中建立的樣本資料庫名字為magento
      3. 單擊Next
      config-db
    3. 填寫Web訪問設定,並單擊Next
      config-web
    4. 填寫定製商店,並單擊Next
    5. 填寫管理員帳號資訊,並單擊Next
    6. 單擊Install Now進行安裝。
出現如下圖所示介面,表示Magento配置完成。magento_4

步驟八:添加cron作業

完成以下操作,添加cron作業:

  1. 運行crontab -u apache -e設定cron運行調度工作。
  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官方文檔

常見問題

輸入http://<ECS執行個體公網IP地址>/admin登入Magento後台,如果介面提示“One or more indexers are invalid. Make sure your Magento cron job is running.”的錯誤資訊,請參考以下步驟解決問題。123
  1. 遠端連線Magento伺服器。具體操作,請參見串連方式概述
  2. 運行以下命令,將PHP的安裝路徑建立軟串連至/usr/sbin/php目錄下。
    ln -s /usr/local/php/bin/php /usr/sbin/php
  3. 運行以下命令,重新整理索引。
    cd /var/www/html
    php bin/magento indexer:reindex
    回顯資訊類似如下所示,表示索引已重新整理成功。
    [root@iZbp1h2mquu8nb0jz99**** wwwroot]# php bin/magento indexer:reindex
    Design Config Grid index has been rebuilt successfully in 00:00:00
    Customer Grid index has been rebuilt successfully in 00:00:00
    Category Products index has been rebuilt successfully in 00:00:00
    Product Categories index has been rebuilt successfully in 00:00:00
    Product Price index has been rebuilt successfully in 00:00:00
    Product EAV index has been rebuilt successfully in 00:00:00
    Stock index has been rebuilt successfully in 00:00:00
    Catalog Rule Product index has been rebuilt successfully in 00:00:00
    Catalog Product Rule index has been rebuilt successfully in 00:00:00
    Catalog Search index has been rebuilt successfully in 00:00:00
  4. 重新整理頁面後,單擊Cache Managementdaad
  5. 選中狀態為INVALIDATEDCache Types,並單擊Submit456當出現類似如下返回資訊時,表示問題已經解決。455

後續步驟

  • 訪問http://<ECS執行個體公網IP地址>可以看到如下圖所示的預設首頁。luma
  • 訪問http://<ECS執行個體公網IP地址>/admin,輸入您在安裝過程中設定的使用者名稱和密碼,成功登入管理面板後可看到如下介面。dashboard