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