Magento 2 是以PHP編寫的電子商務平台,也是網路最流行的開源電子商務軟體之一。而本篇是我在 CentOS 8 安裝 Magent 2 的紀錄過程,系統環境使用的軟體有Apache、PHP、以及MySQL搭建網頁系統。

系統建置

網路上有很多 CentOS 8 建置 LAMP 系統,我們這邊就快速帶過吧!

Step 1 – 前置系統設定

先更新系統

sudo yum -y update

將 SELinux 調整為 permissive

sudo sed -i 's/enforcing/permissive/g' /etc/sysconfig/selinux    # 下次開機設定
sudo setenforce 0    # 立刻設定 permissive
sudo getenforce    # 查看目前 selinux

防火牆開啟 80 port,如果有 https 就開起 443 port

sudo yum -y install firewalld    # 如果預設沒有安裝
sudo systemctl enable --now firewalld    # 啟動firewalld服務
sudo firewall-cmd --add-service=http --permanent    # 新增 http port,並儲存至下次開機啟動
sudo firewall-cmd --reload    # 重新載入防火牆
sudo firewall-cmd --list-all    # 檢查是否新增 http port

Step 2 – 安裝 Apache

sudo yum -y install httpd mod_ssl    # 安裝 apache
sudo systemctl enable --now httpd    # 啟動 httpd 服務

Step 3 – 安裝 PHP

sudo yum -y php-mysqlnd php-bcmath php-xml php-json php-intl php-mbstring php-soap php-pecl-zip

Step 4 – 安裝 MariaDB 以及建立資料庫

# 先安裝資料庫
sudo yum -y install mariadb-server

# 初始化資料庫與建立root密碼 
sudo mysql_secure_installation

登入 root 資料庫使用者,設定資料庫

mysql -u root -p

建立資料庫與使用者

# 建立資料庫
CREATE DATABASE magento;

# 建立使用者
CREATE USER 'magento'@'localhost' IDENTIFIED BY 'password';

# 給予使用者資料庫權限
GRANT ALL ON magento.* TO magento@localhost IDENTIFIED BY 'password';

安裝 Magento 2 與 Apache 設定檔

Magento 2 檔案有兩種方式可以下載,第一種是Composer,Composer 是 PHP Framework中,設計來管理套件相依性的工具,第二種是從 Github 下載,本篇將使用第一種安裝方式,其他的安裝方式可以到官方網站查看喔。

Step 5 – 先將 Composer 安裝起來

sudo curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Step 6 – 註冊 Magento 帳號與建立金鑰

待會使用 Composer 下載時會需要用到 Access Key ,因此需要先建立金鑰,註冊完成後在 Magento Marketplace 中點擊 Access Keys

再點擊 Create A New Access Keys 建立金鑰,等待之後使用

Step 7 – 使用 Composer 建立專案

再 /var/www 底下,建立 magento 目錄放置網頁資料,下載專案並輸入上面取得的 Access Keys ,username 填寫 Public Key, password 填寫 Private Key

cd /var/www
sudo composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition
# 輸出以下畫面
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Creating a "magento/project-community-edition" project at "./magento"
Warning from repo.magento.com: You haven't provided your Magento authentication keys. For instructions, visit https://devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html
    Authentication required (repo.magento.com):
      Username:    # Public key
      Password:    # Private key

建立專案完成後修改一下目錄權限

cd /var/www/magento
find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
chown -R apache:apache . 
chmod u+x bin/magento

Step 8 – 建立 Apache VirtualHost 設定檔

sudo vim /etc/httpd/conf.d/magento.conf

寫入以下設定,並且確認 ServerName 是可用的 domain name,否則網頁無法載入

<VirtualHost *:80>
        ServerName example.com
        DocumentRoot /var/www/magento
        ErrorLog /var/log/httpd/magento_error.log
        CustomLog /var/log/httpd/magento_access.log combined
        <Directory /var/www/magento >
                Options FollowSymLinks
                AllowOverride All
        </Directory>
</VirtualHost>

重新啟動 Apache

sudo systemctl restart httpd

Step 9 – 網站設定

完成以上動作後,便可以打開網頁,逐步設定網站資料

第一步,檢查網站環境是否正常

第二步,輸入資料庫與SSL路徑

第三步,網站設定

第四步,商店設定

第五步,管理員帳號

第六步,開始安裝

Step 10 – 設定Cron Jobs

Magento 是使用 Cron 來安排電子郵件、訂單確認和交易,在第一次都入後台時便會跳出 Con 作業的錯誤。Magento 再官方網站有說明如何使用 Crontab 做基礎的配置

因為需要使用 Magento 檔案系統使用者執行 Crontab,因此要先建立新的使用者

sudo useradd -g apache magento

之後登入 magento 身分,到網頁目錄使用 magento 提供的指令設定 crontab

cd /var/www/magento
bin/magento cron:install
crontab -l    # 檢查是否設定

完成以上步驟,就完成 CentOS 8 安裝 Magento 2 電子商務平台了。

參考文件:

rHuei

一個喜歡亂玩亂弄的工程師。

Leave a comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *