首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

CentOS 安裝 phpMyAdmin 完整教學:從環境準備到遠程訪問配置

     編輯:MySQL 資料庫相關知識

phpMyAdmin 是一款廣受歡迎的基於 Web 的 MySQL/MariaDB 管理工具,透過 PHP 腳本提供直觀的圖形介面,讓資料庫操作變得輕鬆高效。本文將詳細介紹在 CentOS 系統上安裝並配置 phpMyAdmin 的完整流程,涵蓋前置環境準備、安裝步驟、安全配置以及測試驗證。

前置需求:搭建 Web 服務環境

在安裝 phpMyAdmin 之前,必須先完成基礎的 Web 服務棧部署。你可以根據偏好選擇 LAMP (Linux + Apache + MySQL/MariaDB + PHP) 或 LEMP (Linux + Nginx + MySQL/MariaDB + PHP) 架構。確保以下組件已正確安裝並運行:

  • Web 伺服器:Apache (httpd) 或 Nginx
  • 資料庫:MySQL 或 MariaDB
  • PHP 環境:包含必要的擴展模組 (如 php-mysqlnd, php-json, php-mbstring 等)

此外,必須啟用 EPEL (Extra Packages for Enterprise Linux) 軟體倉庫,因為 phpMyAdmin 套件位於其中。若尚未配置,可執行 sudo yum install epel-release 快速啟用。

安裝 phpMyAdmin

啟用 EPEL 後,即可使用 yum 指令輕鬆安裝。根據 CentOS 版本略有不同:

CentOS 7 / 8 / Stream

sudo yum install phpmyadmin

若使用 PHP 7.2+ 版本,php-mcrypt 已不再需要(已由 sodium 或 openssl 取代),舊版教學常見的 php-mcrypt 可省略。

CentOS 6 (已停止維護,僅供參考)

sudo yum install phpmyadmin php-mcrypt

配置遠程訪問權限 (關鍵步驟)

預設安裝後,phpM yAdmin 僅允許本機回環位址 (127.0.0.1) 訪問。為了讓遠程主機能夠通過瀏覽器管理資料庫,必須修改 Apache 的配置檔案 /etc/httpd/conf.d/phpMyAdmin.conf。

CentOS 7 (Apache 2.4) 配置範例

使用編輯器開啟配置檔,找到所有 <Directory /usr/share/phpMyAdmin/> 和 <Directory /usr/share/phpMyAdmin/setup/> 區塊,將 Require ip 127.0.0.1 和 Require ip ::1 註解掉,改為 Require all granted。

<Directory /usr/share/phpMyAdmin/>
    AddDefaultCharset UTF-8
    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            # Require ip 127.0.0.1
            # Require ip ::1
            Require all granted
        </RequireAny>
    </IfModule>
    <IfModule !mod_authz_core.c>
        # Apache 2.2 (舊版相容)
        Order Deny,Allow
        Deny from All
        Allow from 127.0.0.1
        Allow from ::1
    </IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            # Require ip 127.0.0.1
            # Require ip ::1
            Require all granted
        </RequireAny>
    </IfModule>
    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from All
        Allow from 127.0.0.1
        Allow from ::1
    </IfModule>
</Directory>

修改完成後,重啟 Apache 使配置生效:

sudo systemctl restart httpd

CentOS 6 (Apache 2.2) 配置範例

編輯 /etc/httpd/conf.d/phpMyAdmin.conf,將 Deny from all 註解,並將 Allow from 127.0.0.1 改為 Allow from 0.0.0.0 (允許所有 IP)。

<Directory "/usr/share/phpmyadmin">
    Order Deny,Allow
    # Deny from all
    Allow from 0.0.0.0
</Directory>

此外,CentOS 6 需在 /usr/share/phpmyadmin/config.inc.php 中設定 Blowfish 加密金鑰以啟用 Cookie 認證:

$cfg['blowfish_secret'] = 'your_random_32chars_string_here'; /* 32 字元隨機字串 */

重啟服務:sudo service httpd restart

安全性建議:不止於開放權限

重要提醒:直接將 Require all granted 設定為允許所有 IP 訪問雖然方便,但在生產環境中極不安全。強烈建議採取以下防護措施:

  • IP 白名單:將 Require all granted 改為 Require ip 192.168.1.0/24 僅允許內網或特定管理 IP。
  • 基本認證:在 Apache 層面添加 htpasswd 密碼保護,雙重驗證。
  • 修改預設別名:將網址路徑從 /phpmyadmin 改為難以猜測的路徑 (如 /pma_admin_x7k9),編輯 phpMyAdmin.conf 中的 Alias 指令。
  • 強制 HTTPS:配置 SSL/TLS 憑證,確保傳輸加密。

測試驗證

在瀏覽器訪問 https://<你的伺服器公網IP>/phpmyadmin (或自定義別名)。若出現 phpMyAdmin 登入介面,輸入 MySQL 的 root 帳號密碼即可登入管理。

phpMyAdmin 登入介面截圖

常見問題排查

  • 403 Forbidden:檢查配置檔語法、SELinux 上下文 (restorecon -R /usr/share/phpMyAdmin)、防火牆是否開放 80/443 埠。
  • 500 Internal Server Error:查看 /var/log/httpd/error_log,常見於 PHP 模組缺失或配置語法錯誤。
  • 無法登入:確認 MySQL 服務運行中、root 密碼正確、config.inc.php 中的 $cfg['Servers'][$i]['host'] 設定正確 (通常為 localhost 或 127.0.0.1)。

至此,CentOS 上的 phpMyAdmin 安裝與基礎配置已完成。記住:資料庫管理介面直接暴露在公網極具風險,請務必結合上述安全建議進行加固,或僅在 VPN/內網環境下使用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved