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

gydtep發表於2019-02-12

本文主要說明如何在阿里雲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 入方向 允許 自定義TCP 3306/3306 地址段訪問 0.0.0.0/0 1

步驟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______/ ____/___  ____ ___  ____  ____  ________  _____/ /   / __ / __ `__ / __ / __ / ___/ _ / ___/
    / /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
    \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
    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安裝成功。
    154113584612145_zh-CN.png

  7. 單擊 Agree and Setup Magento 開始配置Magento:按實際情況填寫連線資料庫資訊、Web訪問設定、定製商店、建立管理員賬號。出現如下圖所示的介面時,說明Magento配置完成。
    154113584612146_zh-CN.png

步驟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] 可以看到如下圖所示的預設主頁。


154113584612147_zh-CN.png 

訪問 http://[ECS例項公網IP]/admin,使用您在安裝過程中設定的使用者名稱和密碼,成功登入管理皮膚後可看到如下介面。


154113584712148_zh-CN.png 

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


相關文章