in PHP, phpMyAdmin

在Ubuntu 上安裝PHPMyAdmin 的要點與設定

[前言]

因為在Ubuntu 上面安裝很多次的PHPMyAdmin 了。因此想要統一紀錄安裝的過程。

以及所需要注意的事項與設定。

[安裝過程]

[前置條件]

  • 已經有一台VPS 並上面搭載Ubuntu 14.04/16.04 的版本
  • 已經初始化過Ubuntu 作業系統,請參照此篇文章
  • 已經安裝好LAMP server
  • 該升級的套件都已經升級(可選選項,可做或可不做)參考文章

[安裝步驟]


sudo apt-get update

sudo apt-get install phpmyadmin

在安裝的過程中會詢問是要設定哪一種 HTTP server ,選擇Apache 即可

[安全性設定]

  1. Change Default PhpMyAdmin Login URL 改變預設的登入網址
    預設是:domain.com/phpmyadmin
    要更改的話,只需要去:/etc/phpmyadmin/apache.conf 更改即可。
    更改的地方如下圖所示。改成 Alias /customadminname /usr/share/phpmyadmin
  2. Enable HTTPS on PhpMyAdmin 在PHPMyAdmin 下啟用HTTPS
    通常HTTP/HTTPS 下拜訪 PHPMyAdmin都是允許的。
    為了防止密碼被有心人士監聽看光光,所以啟動HTTPS 是有必要的。
    主要是有兩種方式可以啟用HTTPS。
    使用 Let’sencrypt, 自行簽章, 購買有效的憑證以及使用DNS 代管(Cloudflare 的中介 HTTPS)。
    本章節主要是使用Cloudflare 的 HTTPS。因此只需要改動 /etc/phpmyadmin/config.inc.php 檔。
    更改的方式如下圖,加入 $cfg[‘ForceSSL’] = true;
  3. Password Protect on PhpMyAdmin 使用http-basic auth 保護 PHPMyAdmin
    這裡需要用到:htpasswd 這個指令,需要用到 apache2-utils。
    需要額外安裝,使用 sudo apt-get install apache2-utils 來安裝。
    在/etc/apache2/sites-available/000-default.conf 加入使用HTTP-Basic-Auth 的設定

    <Directory /usr/share/phpmyadmin>
    AuthType Basic
    AuthName "Restricted Content"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
    </Directory>
    

    接著設定帳號, 密碼以及相關檔案的權限

    sudo htpasswd -c /etc/apache2/.htpasswd yourusername
    # specify user/group permissions
    sudo chmod 640 /etc/apache2/.htpasswd
    sudo chgrp www-data /etc/apache2/.htpasswd</pre>
    <pre>

    設定完成後,再去拜訪網站就會要輸入帳號與密碼了。(如下示意圖)

  4. Disable root Login to PhpMyAdmin 停用使用者 root 方式登入 PHPMyAdmin
    修改 /etc/phpmyadmin/config.inc.php 檔案在如下圖的位置中加入:
    $cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;
    $cfg[‘Servers’][$i][‘AllowRoot’] = false;
    這兩行。

設定完之後,都需要記得將Apache 服務重啟:sudo service apache2 restart

安全性設定——Apache VirtualHost 的搭配使用

這是我參考的資料中所沒有提到的,算是自己額外加上去的。

使用VirtualHost 目的是可以使用子網域方式存取。

除了比較好記住之外,也多一層防護。

 

[參考資料]