自從架了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的資料庫

輸入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

