有時為了安全起見,我們希望將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用的