本文主要說明如何在阿裡雲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執行個體,以便快速建站。
- 依次運作以下指令更新包和存儲庫,并安裝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
- 啟動HTTP和MySQL服務并設定開機自啟動。
[ECS]$ systemctl start httpd[ECS]$ systemctl enable httpd[ECS]$ systemctl start mysqld[ECS]$ systemctl enable mysqld
- 編輯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
- 運作指令
vim /etc/httpd/conf/httpd.conf
- 按
鍵進入編輯模式。i
- 做以下修改:
-
鍵退出編輯,并輸入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:
-
vim /etc/php.ini
-
進入編輯模式。i
- 在檔案最後添加以下配置:
memory_limit = 128M #根據實際情況增加記憶體限制date.timezone = Asia/Shanghai #設定時區為上海。
重新開機Web服務程序。
# systemctl restart httpd
步驟2:建立資料庫
按以下步驟建立資料庫。
- 建立資料庫及使用者:為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)
- 運作
退出MySQL。exit
- (可選)驗證建立的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。
- 安裝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
- 配置Composer全局使用。
# mv /root/composer.phar /usr/bin/composer
- 測試指令是否可用。
# composer -v______/ _/ __ ___/ / / / ` / / / ___/ / ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / ____/____/_/ /_/ /_/ .___/____/____/___/_/
Composer version 1.2.4 2016-12-06 22:00:51/_/<br>
步驟4:安裝配置Magento
您可以使用不同的方法安裝Magento,也可以選擇是否安裝示例資料。如果安裝Magento僅用于測試,您可以選擇安裝示例資料。如果是在生産環境中安裝Magento,建議您安裝全新的Magento,從頭開始配置。
本部分介紹如何使用git下載下傳Magento,然後使用Composer安裝Magento。
- 依次運作以下指令,通過
下載下傳Magento。git clone
# yum -y install git# cd /var/www/html/# git clone https://github.com/magento/magento2.git
-
(可選)将Magento切換到穩定版本。
預設情況git下載下傳安裝Magento是一個最新的開發版本。如果您在生産環境中使用,建議切換到穩定版本,否則未來将無法更新安裝。
# cd magento2 && git checkout tags/2.1.0 -b 2.1.0Switched to a new branch '2.1.0'
- 将安裝檔案移到Web伺服器根目錄下。否則,您隻能通過
通路您的Magento站點。http://[ECS
執行個體公網IP位址]/magento2
# shopt -s dotglob nullglob && mv /var/www/html/magento2/* /var/www/html/ && cd ..
- 設定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
-
安裝Magento。composer install
- 測試:在浏覽器中通路
,如果出現以下頁面,說明Magento安裝成功。http://[ECS
執行個體公網IP位址]
- 單擊 Agree and Setup Magento 開始配置Magento:按實際情況填寫連接配接資料庫資訊、Web通路設定、定制商店、建立管理者賬号。出現如下圖所示的界面時,說明Magento配置完成。
步驟5:添加cron作業
-
設定cron運作排程工作。crontab -u apache -e
- 添加以下内容。
/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]
可以看到如下圖所示的預設首頁。
http://[ECS
執行個體公網IP]/admin
,使用您在安裝過程中設定的使用者名和密碼,成功登入管理面闆後可看到如下界面。
更多Magento配置資訊,請參見