如何在Raspberry Pi上佈署WordPress 網站 (環境佈屬篇)

一個餿主意,我打算在 Raspberry Pi 上建立一個WordPress 網站分身,這樣想亂玩外掛或亂調版面就不會搞掛網站。

自從架了WordPress網站之後,會有那種想亂玩外掛或亂調版面的衝動,然後看看WordPress社團就有人裝了一堆外掛結果發生衝突,每當有鬼主意時我都會賊賊的看向角落的樹梅派,若將WordPress網站同步部署到樹梅派,這樣在樹梅派上的網站形同分身,可以無限惡搞了。

環境部屬完後也會有2個應用:

  一 【建立WordPress網站副本】:原有WordPress網站在虛擬主機,複製一份部署到樹梅派,流程和網站搬家很像
  二 【全新安裝WordPress網站】:建立一個新WordPress網站


我將它拆成另外兩篇,本篇文就專心講WordPress環境的搭建,完成後再從上面擇一做運用。


這篇文章概略分成四個部分:

  一、套件安裝
  二、設定MariaDB
  三、設定Apache
  四、後記

一、套件安裝

玩WordPress前要先搞定運行環境「懶趴伺服器」,這用詞有點低俗但很好記,指的是LAMP Server,「LAMP」代表四個IT名詞。

  • Linux:作業系統
  • Apache:網頁伺服器
  • MySQL(MariaDB):資料庫
    *此篇文採用MariaDB;MySQL已經被甲骨文(Oracle)公司收購成為閉源軟體,分叉出MariaDB以維持開源
  • PHP:程式語言

先刷新清單並更新已安裝套件

sudo apt update && sudo apt upgrade
#更新套件檔案清單和已安装套件

 

▼輸入以下指令,一次安裝LAMP Server套件 + phpMyAdmin管理工具

sudo apt-get install apache2 mariadb-server php libapache2-mod-php php-mysql phpmyadmin
#部屬LAMP Server套件 + phpMyAdmin管理工具

▼圖 一口氣安裝一大堆套件




▼圖 用Tab鍵移動光標到apache2->按下空白鍵選取(呈現[*]標記狀態)>確定




▼圖 phpMyAdmin 自動建立帳號phpmyadmin,選取【是】繼續

 

▼圖 為剛剛建立的phpmyadmin帳號設定密碼,密碼要輸入後會要求再次確認(密碼要打2次),我就不Po圖了



▼圖 一大堆套件安裝完畢,我們要測試網頁伺服器apache2是否能正常運作,用瀏覽器輸入 http://樹梅派的IP地址,看到以下類似的畫面就~恭喜你了!



接下來要查詢網頁伺服器的詳細資訊,用文字編輯軟體(我用 nano示範)新增一個PHP檔案至apache2的預設目錄 /var/www/html

sudo nano /var/www/html/phpinfo.php
#新增一個PHP文件

在文件輸入用PHP語言複製貼上以下內容後,按下Ctrl+o -> Enter 存檔,按Ctrl+x退出nano編輯器

<?php
phpinfo();
?>



▼圖(我用手機截的) 用瀏覽器輸入 http://樹梅派的IP地址/phppinfo.php 它會顯示apache2網頁伺服器的詳細資訊

 

二、設定MariaDB

剛裝完MariaDB預設root密碼為空,使用下面指令為root加上密碼吧!

sudo mysql_secure_installation
#初始設定

▼接下來會問一些問題:

  • Switch to unix_socket authentication [Y/n] n
  • Change the root password? [Y/n] Y
    #輸入Y改密碼
    New password:
    #輸入root 新密碼
    Re-enter new password:
  • Remove anonymous users? [Y/n] Y
    #移除匿名使用用者
  • Disallow root login remotely? [Y/n] Y
    #不允許root遠端登入
  • Remove test database and access to it? [Y/n] Y
  • Reload privilege tables now? [Y/n] Y



無論是搬家或建立新網站,需要先在主機上增加新資料庫後才能給WordPress使用。
▼ 先以root登入MariaDB

sudo mysql -u root -p
#用root登入MariaDB



▼ 新建一個資料庫,我們等等再使用它

CREATE DATABASE my_wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
#建立一個名為my_wordpress的資料庫
建立新資料庫完成,關於資料庫編碼的選擇請參考:MySQL 編碼挑選與差異比較,WordPress 4.2版以後支援utf8mb4,支持emoji表情符號和生僻字,除非有效能上考量,否則一般用unicode比較不易出錯。

 

輸入exit退出MariaDB

三、設定Apache

Apache設定有二大重點。

第一,網頁放置路徑。第二、檢查 Rewrite功能。


確認mod_rewrite 已開啟

sudo a2enmod rewrite
#開啟Apache2的mod_rewrite功能

 *如果沒有開啟Rewrite功能,將在WordPress設定網址除了預設之外(數值式、文章名稱、自訂結構…等)都會出現404錯誤,細節參考 解決 WordPress 固定網址設定 404 錯誤。我就碰到了這個狀況,Rewrite功能有人翻成「複寫」很難讓人理解,研究一下發現就是程式語言的【正規表示式】,但這是什麼呢?

就是用某個規則定義拼湊出網址,比如說原本網址為「http://你的IP/about.html」,但使用者去向「http://你的IP/about」發送請求,因為不存在文件無法回應網頁;所以啟用Rewrite功能可以設定在 點.之後匹配任何內容,導向請求定向到/網站根目錄,網頁仍然可以正確顯示。

如果你想知道細節這篇(英文)How to Rewrite URLs with mod_rewrite for Apache on Ubuntu 20.04值得你參考。


▼修改apache的路徑

sudo nano /etc/apache2/sites-available/000-default.conf

apache預設的網頁放置目錄為/var/www/html,將它改成DocumentRoot /var/www/wordpress,這部分依個人喜好設定。

 

在<VirtualHost *:80>…</VirtualHost>之間加入下面這段:

<Directory "/var/www/wordpress/">
    AllowOverride All
</Directory>

▼圖 修改結果

▼搞完之後重啟服務

sudo service apache2 restart
#重啟apache




到這裡環境部屬篇結束,接續下一篇【建立WordPress網站副本】或【全新安裝WordPress網站】。

四、後記

這裡是心得幫助知識連結,沒有碰到問題可以不必閱讀~

1. 如果你的phpMyAdmin設定有錯誤,或者無法打開該管理頁面,請嘗試以下指令重設

sudo dpkg-reconfigure -plow phpmyadmin
#重新配置phpMyAdmin



2. 經測試,如果你忘記MaraiDB的root密碼,以下指令還可以幫助重設

sudo mysql_secure_installation
#初始設定



3. 既然前面提到apche2的【覆寫】功能,會開啟也要會關閉

sudo a2query -m rewrite
#查詢rewrite模組的狀態
 
sudo a2dismod rewrite
#關閉rewrite模組



參考資料

[1] Step-by-step Guide to Install WordPress on a Raspberry Pi

[2] 【實戰自架網站】手把手從零到有Linux Ubuntu上建置 WordPress 環境,來架設自己的網頁!

[3] 維基百科, MariaDB

[4] MySQL 編碼挑選與差異比較

[5] 建立 WordPress 備援網站或更換新的虛擬主機,手動搬家一點都不難!

[6] 「教學」解決 WordPress 固定網址設定 404 錯誤

[7] Stack Overflow, phpmyadmin “Not Found” after install on Apache, Ubuntu

[8] How to enable or disable Apache2 Modules

[9] How to Rewrite URLs with mod_rewrite for Apache on Ubuntu 20.04

[10] 正規表示式(Regular Expression)

發佈留言

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