天天看點

CentOS 7系統如何搭建Magento電子商務網站?

本文主要說明如何在阿裡雲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執行個體,詳細操作,請參見

使用向導建立執行個體

。配置包括:2 vCPU、4 GiB記憶體、Cent OS 7.2 64位作業系統、VPC網絡、配置設定公網IP位址。

ECS執行個體所在安全組中已經添加了如下表所示的安全組規則。詳細操作,請參見

添加安全組規則

服務 規則方向 授權政策 協定類型 端口範圍 授權類型 授權對象 優先級
HTTP 入方向 允許 自定義TCP 80/80 位址段通路 0.0.0.0/0 1
MySQL 3306/3306

步驟1:安裝配置LAMP平台

本部分内容說明如何手動安裝LAMP平台。您也可以在

雲市場

購買LAMP鏡像直接啟動ECS執行個體,以便快速建站。

  1. 依次運作以下指令更新包和存儲庫,并安裝Apache Web伺服器和MySQL伺服器。
    [ECS]$ yum update -y
    
    [ECS]$ yum install httpd –y
    
    [ECS]$ rpm -Uvh         http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm               
    [ECS]$ yum -y install mysql-community-server
          
  2. 啟動HTTP和MySQL服務并設定開機自啟動。
    [ECS]$ systemctl start httpd[ECS]$ systemctl enable httpd[ECS]$ systemctl start mysqld[ECS]$ systemctl enable mysqld
          
  3. 編輯Apache配置檔案:
  • Include conf.modules.d/*.conf

    之後添加

    LoadModule rewrite_module modules/mod_rewrite.so

  • 将以下内容的

    AllowOverride None

    改為

    AllowOverride all

    Options Indexes FollowSymLinks## 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
          
  1. 運作指令

    vim /etc/httpd/conf/httpd.conf

  2. i

    鍵進入編輯模式。
  3. 做以下修改:
  4. Esc

    鍵退出編輯,并輸入

    :wq

    儲存并退出。

檢視/var/log/mysqld.log檔案,擷取安裝MySQL時自動設定的root使用者密碼。

# grep 'temporary password' /var/log/mysqld.log2016-12-13T14:57:47.535748Z 1 [Note] A temporary password is generated for root@localhost: p0/G28g>lsHD
      

運作下面的指令可以從如下4個方面提高MySQL的安全性:

# mysql_secure_installationSecuring the MySQL server deployment.

Enter password for user root: #輸入第4步中擷取的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使用者密碼,輸入YNew 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) : YBy 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 #是否删除匿名使用者,輸入YSuccess.

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遠端登入,輸入YSuccess.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 #是否重新加載授權表,輸入YSuccess.

All done!

  • 設定root賬号密碼
  • 禁止root賬号遠端登入
  • 删除匿名使用者賬号
  • 删除test庫以及對test庫的通路權限

    詳細說明可參見

    官方文檔

依次運作以下指令,安裝PHP 7和一些所需的額外PHP擴充。

# yum install -y         http://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-14.ius.centos7.noarch.rpm#                yum -y update# 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
      

檢視PHP版本,以驗證PHP是否已經成功安裝。

# php -v

PHP 7.0.13 (cli) (built: Nov 10 2016 08:44:18) ( NTS )

Copyright (c) 1997-2016 The PHP Group

Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

with Zend OPcache v7.0.13, Copyright (c) 1999-2016, by Zend Technologies
      

編輯配置檔案/etc/php.ini:

  1. vim /etc/php.ini

  2. i

    進入編輯模式。
  3. 在檔案最後添加以下配置:
    memory_limit = 128M #根據實際情況增加記憶體限制date.timezone = Asia/Shanghai #設定時區為上海。
          

重新開機Web服務程序。

# systemctl restart httpd
      

步驟2:建立資料庫

按以下步驟建立資料庫。

  1. 建立資料庫及使用者:為Magento資料建立一個資料庫和一個資料庫使用者,資料庫和使用者名可根據實際情況修改。
    # mysql -u root -pEnter password: 
    
    mysql> CREATE DATABASE magento; #根據執行個體情況替換magentoQuery OK, 1 row affected (0.00 sec)
    
    mysql> GRANT ALL ON magento.* TO YourUser@localhost IDENTIFIED BY 'YourPass'; #根據實際情況替換YourUser和YourPassQuery OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)
          
  2. 運作

    exit

    退出MySQL。
  3. (可選)驗證建立的Magento資料庫和使用者是否可用。
    # mysql -u YourUser -pmysql> show databases;
    
    +--------------------+| Database           |
    
    +--------------------+| information_schema |
    
    | magento            |
    
    +--------------------+
    
    2 rows in set (0.00 sec)
    
    mysql> exit
          

步驟3:安裝配置Composer

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

  1. 安裝Composer。
    # curl -sS         https://getcomposer.org/installer                | phpAll settings correct for using Composer
    
    Downloading 1.2.4...
    
    Composer successfully installed to: /root/composer.phar
    
    Use it: php composer.phar
          
  2. 配置Composer全局使用。
    # mv /root/composer.phar /usr/bin/composer
          
  3. 測試指令是否可用。
    # composer -v______/ _/         __  ___/ /   /  /  ` /  /  / ___/  / ___/
    
    / /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
    
    ____/____/_/ /_/ /_/ .___/____/____/___/_/
          
    /_/<br>           
    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。
    # yum -y install git# cd /var/www/html/# git clone         https://github.com/magento/magento2.git          
  2. (可選)将Magento切換到穩定版本。

    預設情況git下載下傳安裝Magento是一個最新的開發版本。如果您在生産環境中使用,建議切換到穩定版本,否則未來将無法更新安裝。

    # cd magento2 &&  git checkout tags/2.1.0 -b 2.1.0Switched to a new branch '2.1.0'
          
  3. 将安裝檔案移到Web伺服器根目錄下。否則,您隻能通過

    http://[ECS

    執行個體公網IP位址]/magento2

    通路您的Magento站點。
    # shopt -s dotglob nullglob && mv /var/www/html/magento2/* /var/www/html/ && cd ..
          
  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。
  6. 測試:在浏覽器中通路

    http://[ECS

    執行個體公網IP位址]

    ,如果出現以下頁面,說明Magento安裝成功。
    CentOS 7系統如何搭建Magento電子商務網站?
  7. 單擊 Agree and Setup Magento 開始配置Magento:按實際情況填寫連接配接資料庫資訊、Web通路設定、定制商店、建立管理者賬号。出現如下圖所示的界面時,說明Magento配置完成。
    CentOS 7系統如何搭建Magento電子商務網站?

步驟5:添加cron作業

  1. crontab -u apache -e

    設定cron運作排程工作。
  2. 添加以下内容。
    /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
          

關于Magento上使用cron作業,請參見

Magento官方文檔

後續操作

通路

http://[ECS

執行個體公網IP]

可以看到如下圖所示的預設首頁。

CentOS 7系統如何搭建Magento電子商務網站?

http://[ECS

執行個體公網IP]/admin

,使用您在安裝過程中設定的使用者名和密碼,成功登入管理面闆後可看到如下界面。

CentOS 7系統如何搭建Magento電子商務網站?

更多Magento配置資訊,請參見