更改phpMyAdmin在Apache託管的預設port

有時為了安全起見,我們希望將phpMyAdmin這種存取資料庫的窗口不要使用網頁伺服器常用的port 80

這樣有個好處,就是能在server前面的防火牆建立filter rule讓該port只有特定ip能存取

 

為了達成目的,我們修改ports.conf讓Apache除了監聽port 80,也監聽準備拿來放phpMyAdmin的port 81

用自己熟悉的編輯器打開/etc/apache2/ports.conf,在Listen 80下面再加一行

Listen 81

 

存檔,切換目錄到/etc/apache2/sites-available/下新增phpmyadmin.conf

把連到port 81時要對應到哪個資料夾的規則寫在裡面

<VirtualHost *:81>
    DocumentRoot /usr/share/phpmyadmin/
</VirtualHost>

 
/etc/apache2/路徑下有兩個名稱類似的資料夾,一個叫sites-available/,一個叫sites-enabled/

/etc/apache2/sites-available/是真正存放配置檔的資料夾

sites-enabled/裡面是放從sites-available/建立來的symbolic link捷徑

為什麼要有兩個一樣檔案的資料夾呢

假如今天Apache託管了多個網頁服務

這樣當要maintain某個網頁服務只要把它的symbolic link從sites-enabled/刪除

就可以很輕易的讓網站離線了

當要再重新運作時只要從sites-available/建立新的symbolic link就可以了

就很像開關的概念,不用再重寫一次配置檔
 

現在我們要在sites-enabled/建立剛剛配置檔的symbolic link

除了用ln指令手動建立外,Apache也有提供很方便的a2ensite可以用

sudo a2ensite phpmyadmin.conf

這樣就在sites-enabled/建立好phpmyadmin.conf的symbolic link了

把apache服務重新啟動,讓新的配置被套用

sudo service apache2 restart

是不是透過http(s)://localhost:81就可以連到了呢

 

P.S.

  • a2ensite是把配置檔從sites-available/建立symbolic link到sites-enabled/的指令

  • a2dissite是把symbolic link從sites-enabled/移除,也就是要maintenance用的


發佈留言