用DOCKER在本機建立MAGENTO (安裝MAGENTO篇)

承上篇,當執行過docker-compose up -d 之後,服務便會運作起來, 如果想知道有甚麼服務在執行,可以用在COMMAND PROMPT或TERMINAL執行 docker ps, 便會看見當下在運行的服務,

而當下的文件結構應該是這個樣子

裡面的內容是由magento 官方下載,並加入了早前建立的docker-compose.yaml file

下一步服務已經運行中,就要開始進行安裝magento程序, 開始安裝前這裡需要一些command的小知識,而以下指令將會很有用

CommandDescription
docker ps列出所有現在運行中的CONTAINER及其資料
docker exec -it {container name} bash好像SSH般遠端控制這個CONTAINER NAME,在連結後用指令開始操作,如要離開遠端控制只要在TERMINAL內鍵入 exit 即可
composer update在前面的筆記中,有提到magento 是用 PHP來運行,而composer 是一個軟件會把不同的software下載並整合,這個指令就是用來更新,下載,安裝

首先在magento 根目錄執行composer update, 這樣便會開始下載MAGENTO安裝用到的LIBRARY。

然後請執行 docker ps, 會看見在運行的CONTAINER

因為我們要用到php去安裝,請用docker exec -it magento-php bash 進入這個CONTAINER,當下便會進入/app 這個目錄,然後執行以下COMMAND

bin/magento setup:install \
--base-url=http://localhost/ \
--db-host=db \
--db-name=magento2 \
--db-user=magento2 \
--db-password=magento2 \
--admin-firstname=admin \
--admin-lastname=admin \
[email protected] \
--admin-user=admin \
--admin-password=admin123 \
--language=en_US \
--currency=HKD \
--timezone=Asia/Hong_Kong \
--use-rewrites=1
--search-engine=elasticsearch7
--elasticsearch-host=elasticsearch
--elasticsearch-port=9200

這個COMMAND是用來安裝magento, 而 –xxx=yyy xxx是設定名稱,yyy是設定值例如

設定名稱設定值解釋
–base-urlhttp://localhost每個網站都會有一個網名,一般的放到大眾網絡供他人瀏覽都需要付費,而localhost是一個特殊的名稱,指的是本機名稱,如果想加入其他名稱,在LINUX上到/etc/, 打開hosts 可以看到
127.0.0.1 localhost
指的就是在browser鍵入localhost,電腦便會找一下這個FILE,見到localhost 設定指向 127.0.0.1 ,所以瀏覽器會自動到127.0.0.1 這個本機的PORT 80 去找網頁內容,找到就顯示出來
–db-hostdb這個是早前介紹MAGENTO需要DB存取商品資料用到的DB,用的值是db是因為早前我們把db服務的CONTAINER名設定為db, 而CONTAINER在同一個NETWORK內以CONTAINER NAME來互相連結及通訊。
–db-namemagento2這個是對應到早前在設定DB的CONTAINER時
MYSQL_ROOT_PASSWORD=magento2
MYSQL_DATABASE=magento2
MYSQL_USER=magento2
MYSQL_PASSWORD=magento2
–db-usermagento2如上
–db-passwordmagento2如上
–admin-firstnameadmin自由設定
–admin-lastnameadmin自由設定
–admin-email[email protected]自由設定
–admin-useradmin自由設定
–admin-passwordadmin123自由設定, 一會用作登入後台時用
–languageen_US自由設定, 我設定是繁體中文
–currencyHKD自由設定
–timezoneAsia/Hong_Kong自由設定
–use-rewrite1自由設定, 設定MAGENTO要否用URL REWRITE作連結修改
–search-engineelasticsearch7因為裝的是magento 2.4.6版,預設是OPENSEARCH,而我們裝的是ELASTICSEARCH服務,所以這裡要修改一下
–elasticsearch-hostelasticsearch 跟DB一樣,elasticsearch服務的CONTAINER NAME設定了是elasticsearch, 所以這裡要設定成這個名稱
–elasticsearch-port9200可以參考在docker ps 顯示,elasticsearch正在用的PORT

當運行完後便成功看見以下畫面

在安裝途中會有提示 magento的後台是甚麼,如果錯過了的話,可以打開 app/etc/env.php,

這個就是後台連結

e.g. http://localhost/admin_fb3tez