Synology NAS 上架設 WordPress 教學 4 – 安裝 PHP 與 phpMyAdmin

PHP home page

本文為系列第四篇,主要介紹如何在 Synology NAS 上安裝運行 WordPress 時所需要的 PHP 套件,以及方便我們操作 MariaDB 資料庫的 phpMyAdmin 圖形化介面工具。 在執行本篇文章的操作前,請先確認已經完成本系列第二篇 Web Station 和 Apache HTTP Server,以及第三篇 MariaDB 的安裝。

「Synology NAS 上架設 WordPress 教學」系列是我在摸索 WordPress 架站過程中的操作記錄與心得分享,一步步地介紹如何在你的 Synology NAS 中安裝世界知名的網站建置平台 WordPress。

Synology NAS 提供了一個便利而強大的方式來搭建自己的個人或小型網站,而 WordPress 則是一個廣泛使用的開源內容管理系統,它使得建立和管理網站變得非常簡單。不論是公司或個人,想要架設形象網站、部落格,甚或是電商平台營利賺錢,都能適用。本系列會帶你從前置工作、安裝相關套件、安裝 WordPress 程式、設定虛擬主機與 HTTPS 憑證等逐步完成。

    1. Synology NAS 上架設 WordPress 教學 1 – 前置工作
    2. Synology NAS 上架設 WordPress 教學 2 – 安裝 Web Station 與 Apache
    3. Synology NAS 上架設 WordPress 教學 3 – 安裝 MariaDB
    4. Synology NAS 上架設 WordPress 教學 4 – 安裝 PHP 與 phpMyAdmin(本篇)
    5. Synology NAS 上架設 WordPress 教學 5 – 安裝 WordPress
    6. Synology NAS 上架設 WordPress 教學 6 – Web Station 設定虛擬主機
    7. Synology NAS 上架設 WordPress 教學 7 – 設定外部存取 WordPress 網站

前言

一般我們所謂的靜態網頁資源,指的是像 HTML、圖片、音樂這些在建立或修改後其內容就已經完成,不會因為不同的請求而動態變更的資源內容。在 WWW 誕生初期,所有的網站內容都是靜態頁面資源。當時動態網頁的技術還沒有出現,所有頁面都是一頁頁固定內容的檔案,由網站作者逐一添加內容到各自相應的 HTML 檔案中並呈現給使用者。

當越來越多人使用 WWW,網路活動越來越熱絡後,便開始有了動態網頁的需求。例如提供搜尋功能,能夠即時地針對不同的搜尋字詞去提供動態產生的搜尋結果;或是提供會員功能,讓不同會員可以看到客製化的動態推薦內容。因應這些需求,在 1993 年時 CGI 出現了。

它定義了網站伺服器(例如 ApacheNginx)與外部程式之間的通訊介面。網站伺服器在收到請求後,可以通過 CGI 去執行其他外部程式,並在執行完成後動態生成 HTML 並由網站伺服器返回給使用者。外部程式可以用各式語言來撰寫,包括 Perl、Python、C / C++,甚至是 Shell script 等等。

之後動態網頁的技術便開始百花齊放,像是 1996 年微軟推出的 ASP、1999 年昇陽推出的 JSP、以及 WordPress 所使用,早於 1995 年就已開源的 PHP 語言。

PHP 是什麼?

PHP 是一種廣泛使用的開源腳本語言,特別適合用於網頁開發。它可以嵌入到 HTML 中,並在伺服器端執行,以動態生成網頁內容。PHP 是一個強大的工具,能夠處理表單、資料庫、圖片處理等多種任務,並生成動態和互動式的網頁。它的語法易於理解和學習,使得網頁開發變得簡單而高效。

它具有豐富的工具庫,可以與各種資料庫進行連接,包括 MySQLMariaDB)、SQLite、PostgreSQL 等。這使得它成為在網站中存取和操作資料的理想選擇。

另一項重要功能是 PHP 的模組化架構,它能夠通過外掛(或稱為擴充模組)來擴展其能力。這意味著你可以根據需要添加特定的功能,如郵件發送、網路通訊、使用者驗證等。它的開源性質也意味著有一個龐大的社群支持,你可以輕鬆地尋找到解決方案和程式碼示例。它的功能和易用性使得動態網頁的創建變得更加簡單和靈活。

phpMyAdmin 是什麼?

phpMyAdmin 是基於網頁的 MySQL(MariaDB)資料庫管理工具。它提供了直觀的用戶界面,讓你能夠通過瀏覽器來管理資料庫,而無需使用命令行或其他桌面程式。phpMyAdmin 提供了各種操作,包括創建、修改和刪除資料庫、資料表,執行 SQL 查詢,以及導入和導出資料。

它的功能範圍非常廣泛,能夠讓你輕鬆地進行數據管理和維護。你可以使用它來執行 SQL 查詢,將資料導入和導出,進行資料表的結構和內容修改,以及設定使用者權限和安全性。

此外,phpMyAdmin 還具有優秀的可視化能力,能夠生成資料表的結構圖,讓你更容易地理解和分析資料庫結構。它還支援如排序、搜尋、過濾等,使得數據操作變得更加便捷。phpMyAdmin 是功能豐富且易於使用的資料庫管理工具,它將為我們在 Synology NAS 上建立的 MariaDB 資料庫提供一個方便且直觀的管理界面,有助於我們有效地管理和操作資料。

本篇目標

本系列面向想要在 Synology NAS 上面搭建小型網站的使用者。本篇文章為系列中的第四篇,首先會先介紹 PHP 和 phpMyAdmin 的安裝方式。安裝完成後,我們將學習如何設置 WordPress 在安裝過程時所需要的資料庫資源。最後我們會建立安全性存取防護機制,以避免 phpMyAdmin 資料庫管理介面曝露在風險之中。

WordPress 的安裝需求

目前 WordPress 的最新版為 8/8 剛推出的 6.3 版。它推薦的 Web Server 是 Apache 2.4 或 nginx 1.24 以上,對於 PHP 的要求則依照不同的 WordPress 版本而有著不同的差別。一般而言,安裝軟體時我們會儘可能選擇「最新版本」或者是「次新版本」。也就是說,以 WordPress 來說,我們會建議安裝前兩項:

  • WordPress 6.3:最新版,擁有最新的功能,但缺點是可能會有尚未發現的臭蟲和安全性漏洞。喜歡嘗鮮的人可以考慮安裝
  • WordPress 6.2:次新版,擁有較穩定的版本與錯誤修正,但缺點是沒有最新的功能。喜歡安全穩健的人建議使用此版
  • WordPress 6.1:版本較舊所以不考慮
Synology NAS 安裝 PHP 8.0 0 WordPress 支援版本

WordPress 版本推薦使用的 PHP 版本比較表如下:

WordPress 6.3WordPress 6.2.x附註
PHP 7.4相容但不推薦相容官方停止支援,不再維護
PHP 8.0有條件相容測試相容中官方提供安全問題修復
PHP 8.1有條件相容測試相容中官方提供安全問題修復
PHP 8.2測試相容中測試相容中最新穩定版,提供安全與一般問題修復

根據上表,我不推薦安裝 PHP 7.4,原因是官方已停止支援,若發現有安全性問題的話也不會有修補程式。建議 PHP 版本至少要 8.0 以上。雖然目前 WordPress 6.2.2 還在與 PHP 8.0 測試相容性,可能會有未知的臭蟲存在,但至少安全性上發現漏洞時會有更新版本釋出。

安裝 PHP

當我們打開 Synology NAS 的套件中心後,可以看到有幾種不同版本的 PHP 可以安裝,包括有 7.3、7.4 和 8.0 版。此處我們先選擇 8.0 版安裝,它的目前版號是 8.0.23-0103(截至 2023-08-09)。直接點選「安裝套件」的按鈕後就可啟動安裝程序。

:Synology 已經在 2023-06-15 釋出 PHP 8.1 與 PHP 8.2 套件,但是不一定所有 Synology NAS 的套件中心裡都已收到並且顯示出來。如果你的套件中心裡有看到 PHP 8.2 的話可以直接安裝最新版。如果沒有的話也沒關係,請先安裝 PHP 8.0,我之後會寫一篇文章介紹如何在 Synology NAS 中手動安裝 PHP 8.0 套件(自己挖了一個坑)。

Synology NAS 安裝 PHP 8.0 1 套件頁面

安裝的程序會花一點時間進行。

Synology NAS 安裝 PHP 8.0 2 安裝中

安裝完成後可以考慮開啟 PHP 的「自動更新」功能,隨時保持在最新版。

安裝 phpMyAdmin

在「套件中心」裡找到 phpMyAdmin 套件,並點選「安裝套件」的按鈕後,就會進入安裝步驟。

Synology NAS 安裝 phpMyAdmin 5.2 1 套件頁面

目前 Synology NAS 所提供的版本為 5.2.1-1078(截至 2023-08-08 為止)。

安裝完成後打開 File Station 程式,就可以看到我們之前在系列第二篇中所提到的目錄架構 /web_packages 下已經多出 phpmyadmin 的目錄了。

Synology NAS 安裝 phpMyAdmin 5.2 3 目錄結構

使用 phpMyAdmin 設定資料庫

安裝完 phpMyAdmin 之後,Synology NAS 已經完成好相關設定了,包括 Web Station 和 MariaDB 連線設定。因此我們可以進入「套件中心」裡的 phpMyAdmin 套件頁面,並點選「開啟」按鈕來開啟網頁管理介面。

Synology NAS 設定 phpMyAdmin 5.2 0 安裝完成頁面

資料庫管理介面

首先看到的是歡迎頁面,分成上下兩個區塊。在上方的區塊中可以選擇在介面中欲顯示的語言,此處我先點選「中文 – Chinese traditional」繁體中文做為教學示範使用。下方的區塊裡為登入資訊,這邊的使用者名稱請輸入 root,密碼則輸入在前一篇設定 root 密碼時你所設定的密碼後點選「登入」按鈕。如果你已經忘記 root 密碼的話,可以回到 MariaDB 的設定頁面去重設密碼。

Synology NAS 設定 phpMyAdmin 5.2 1 程式登入頁

成功登入後可以看到 phpMyAdmin 的設定頁面,你可以查看資料庫的狀態、管理使用者、匯出 / 匯入資料,或是使用 SQL 查詢和管理資料庫內容。

Synology NAS 設定 phpMyAdmin 5.2 2 程式首頁

建立 WordPress 使用者與資料庫

在安裝與設定 WordPress 前,我們需要先準備好 WordPress 未來要使用的使用者與資料庫。有些人為了省事,會直接使用資料庫的 root 管理者讓 WordPress 操作資料庫,但這是非常具有高風險的事。如果哪天發生了安全性漏洞,駭客成功駭入 WordPress 的話,他就擁有最高權限對資料庫為所欲為了!

因此為了安全性的考量,我們會新建一個權限受到限制的使用者讓 WordPress 使用。這樣做的好處是,即使 WordPress 被駭,也只會有該資料庫受到影響,而不會牽連到其他資料庫。如果你預計架設多個網站的話,建議針對每一個網站建立各自的資料庫使用者,並設定權限只能存取該網站的資料庫。

點選上方導覽列中的「使用者帳號」後,進入使用者帳號頁面,並再點選下方的「新增使用者帳號」。

Synology NAS 設定 phpMyAdmin 5.2 3 使用者帳號頁面

在新增使用者帳號頁面中,輸入名稱與密碼。本處為了做教學範例,所以使用者的名稱設定為「wordpress」。實務上為了安全性的原因,建議改用其他的名稱。尤其是架設多網站需要多組使用者與資料庫時,你可能會需要一組好記的命名方式,例如 my_company_blog_user、my_company_shop_user 之類的原則。

密碼的部分請依循最嚴格的密碼原則去設定。你也可以使用「產生密碼:產生」的按鈕來幫助你動態產生一組隨機的高強度密碼,不過你就必須要有安全保障的地方去存放該密碼。

另外在這邊我選擇將「建立與使用者同名的資料庫,並授予所有權限。」選項打勾,主要是為了節省教學步驟。之後我們會要修改資料庫名稱,以因應安全性的需求。

在設定好登入資訊和「建立同名資料庫」選項打勾之後,其他的都不用改,直接點選到最下方的「執行」按鈕以建立使用者和資料庫。

Synology NAS 設定 phpMyAdmin 5.2 4 新增使用者和資料庫

執行完成後就可以看到成功新增的訊息。

Synology NAS 設定 phpMyAdmin 5.2 5 完成新增

修改資料庫名稱

上一步在新增使用者時我們一併新增了同名的資料庫,現在我們來要修改資料庫名稱。首先點選畫面左側導覽列中與使用者同名的資料庫名稱,例如「wordpress」或是「my_company_blog_user」。

接著點選上方導覽列中的「操作」後,找到下方的「將資料庫改名為」區塊,並輸入新的資料庫名稱,例如 my_company_blog。並且將「調整權限」取消打勾後,點選右下方的「執行」,就可以完成資料庫改名了。

Synology NAS 設定 phpMyAdmin 5.2 6 修改資料庫名稱

設定存取控制保護

phpMyAdmin 提供了讓我們方便管理資料庫的網頁介面,。為了不讓其他人可以任意存取到網頁後暴力嘗試密碼破解,所以我們要設定它的存取控制保護。一來可以限制只有特定的網段才可以使用,二來也可以避免無關的人員可以隨意接觸到與資料庫有關的介面。

點選 Synology NAS 中的「控制台」/「登入入口」/「進階」/「存取控制設定檔」後,可以打開「存取控制設定檔」的視窗。我們點選下方的「新增」按鈕來增加網段的控制權限。

Synology NAS 設定存取控制保護 phpMyAdmin 1 設定頁面

你可以設定任務的「設定檔名稱」,此處我先取名為「phpMyAdmin保護」。下方的來源 IP 或 CIDR 你可以依照你的網路架構情況來填入,並在右方決定要允許還是拒絕。以下圖的例子來說,設定是希望所有來自 192.168.1.x 網段都可以存取到 phpMyAdmin,所以指定 192.168.1.0/24 允許存取。

如果你的內部網段有設定 DMZ 或隔離區的話,也可以將其設定為拒絕存取。或是你只允許某個 IP 能夠存取,那麼就直接設定該 IP 允許。以下提供幾個範例:

  • 192.168.1.100:允許
  • 192.168.2.0/24:允許
  • 192.168.100.0/24:拒絕
  • 「留空白代表全部」:拒絕

設定完成後點選「儲存」按鈕。

Synology NAS 設定存取控制保護 phpMyAdmin 2 新增規則

接下來打開 Web Station 管理介面,並點選左側導覽列中的「網頁服務入口」。可以看到在右方「預設入口」區塊中已經多出 phpMyAdmin 的設定了。點選 phpMyAdmin 後再點選上方的「編輯」按鈕,就會跳出「編輯別名入口」的視窗。接著我們在「存取控制設定檔」的下拉式選單中,選取剛剛建立好的「phpMyAdmin保護」設定檔,並點選「儲存」按鈕,一切就完成了!這樣我們就限制了 phpMyAdmin 只能透過特定 IP 或 CIDR 才能存取,阻絕了可能的外來攻擊。

Synology NAS 設定存取控制保護 phpMyAdmin 3 在Web Station 中套用

結語

本篇文章介紹 PHP 的安裝、phpMyAdmin 的安裝、設定資料庫,以及存取權限控管。完成這些之後,我們已經可以使用 phpMyAdmin 去操作 MariaDB 資料庫,進行最基本的資料與使用者管理。

接下來就會是本系列的重點,也就是手動安裝 WordPress 套件,以及相關設定。如果有任何問題,歡迎大家留言討論。

發佈留言

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

15 + 16 =

返回頂端