490 likes | 717 Views
網路伺服器 Apache 架設與管理. 鄧姚文. 教材. 陳源謙( 2014 ), Ubuntu Linux 管理與架站實務, 博碩文化股份有限公司, ISBN 978-986-201-389-2 (書號 OS30004 ) 湯秉翰( 2013 ), CentOS Linux 系統建置與實務 ( 第二版 ) , 博碩文化股份有限公司, ISBN 978-986-201-764-7 (書號 OS31312 )
E N D
網路伺服器Apache架設與管理 鄧姚文
教材 • 陳源謙(2014), Ubuntu Linux 管理與架站實務, 博碩文化股份有限公司, ISBN 978-986-201-389-2 (書號 OS30004) • 湯秉翰(2013), CentOS Linux系統建置與實務(第二版), 博碩文化股份有限公司, ISBN 978-986-201-764-7 (書號 OS31312) • 鳥哥(2011), 鳥哥的Linux私房菜--伺服器架設篇(第三版), 碁峰資訊股份有限公司, ISBN 9789862579329 (書號 ACA016100)
大綱 • 安裝伺服器套件 • 架設個人部落格 • 配置使用者個人網頁 • 加密存取網站頁面資料夾 • 建立網站流量分析
安裝伺服器套件 • 地球上最多人採用的架站工具組合 LAMP • Linux • Apache • MySQL • PHP • 優點 • 穩定 • 高效能 • 低成本 • 開發容易 • 資源豐富
安裝伺服器套件 apache2 輸入指令【sudo aptitude install apache2】
安裝伺服器套件 MySQL • 安裝時輸入 MySQL 的 root 帳號之密碼兩次 輸入指令【sudoapt-get install mysql-server mysql-client】
測試 MySQL Database Server • 以下列指令登入資料庫伺服器mysql -u root -p • 登入後列出資料庫內容 輸入指令【show databases; 】 可以列出當前所有的資料庫。
安裝伺服器套件 PHP 輸入指令【sudo aptitude install php5-cli】
安裝伺服器套件 phpMyAdmin • 什麼是 phpMyAdmin? • 以 PHP 開發的 MySQL 管理工具 • 順道安裝 PHP 存取 MySQL 所需的相關套件 輸入指令【sudoapt-get install phpmyadmin 】
測試網站伺服器是否正常運作 • 在 /var/www 目錄之中建立一個檔案,名稱為 index.php • 內容為<?phpphpinfo();?> • 開啟網頁http://127.0.0.1/index.php
使用 PHP 架站套件 • 部落格 BLOG • # apt-get install wordpress • 內容管理網站 CMS • # apt-get install drupal7 • 電子商務網站 • 購物網站osCommerce 2.3.3 架站教學- YouTube • [ 開放源碼電子商務osCommerce ] 網路苷碼店KMD&OSC
配置使用者個人網頁 • 每一位使用者自己一個個人網站 • 目錄名稱 public_html • 網址 ~帳號 • 個人網頁(使用者目錄)功能預設未啟動 • 啟用功能sudo a2enmod userdir • 重新啟動 Apachesudo service apache2 restart
加密存取網站頁面資料夾 • 建立Apache存取驗證專用的密碼檔案 • 透過Apache 網站伺服器附加提供的htpasswd 指令程式,可以建立存取驗證所需要的密碼檔案, 指令【htpasswd -c /opt/httpd-passwd mediauser】在「/opt」目錄建立檔案名稱為「httpd-passwd」的密碼檔案,同時,新增名稱為「mediauser」的使用者帳號。 輸入指令【htpasswd -c /opt/httpd-passwdmediauser】在「/opt/」 資料夾建立檔案名稱為「httpd-passwd」的密碼檔案,並且,新增 名稱為「mediauser」的使用者帳號。
加密存取網站頁面資料夾 • 設定Apache網站伺服器啟用登入驗證功能 • 建立密碼檔案後,必須根據需求調整Apache網站根目錄的設定參數,使特定網站目錄支援登入驗證的功能。輸入指令【cd /etc/apache2/ ; ls -lh 】切換目錄至Apache 網站伺服器組態檔案的目錄「/etc/apache2」裡,並且,列出該目錄裡的所有檔案。
加密存取網站頁面資料夾 • 設定Apache網站伺服器啟用登入驗證功能 • Apache網站伺服器之個別網站組態設定預設儲存在「sites-available」目錄裡,預設的網站組態參數檔案為「default」,若欲限制預設網站目錄下的特定目錄或所有目錄必須經過登入驗證,才能夠存取資料夾的內容,則直接修改「default」設定檔的檔案內容。
加密存取網站頁面資料夾 • 設定Apache網站伺服器啟用登入驗證功能 • Apache 網站伺服器之個別網站組態設定預設儲存在「sites-available」目錄裡,預設的網站組態參數檔案為「default」,若欲限制預設網站目錄下的特定目錄或所有目錄必須經過登入驗證,才能夠存取資料夾的內容,則直接修改「default」設定檔的檔案內容。
加密存取網站頁面資料夾 • 設定Apache網站伺服器啟用登入驗證功能 • 假設,欲讓預設網站根目錄的所有檔案都必須經過登入驗證後,才能夠存取檔案內容,則請修改「<Directory /var/www/>」目錄下的參數,增加以下內容:
apache 的基本設定 • 別名(虛擬目錄)Aliases • 網頁位址上的目錄不一定要在Apache 所設定的網頁根目錄/var/www/html/下 • 別名Alias 指令能夠建立網頁位址上的別名,並對應到系統目錄
存取控制 Access Control • 可以為特定範圍訂定存取控制的選項 • 如限定IP 位址可存取 • 列出目錄內的檔案清單等 • 以「< 標籤>」方式指 • 定功能的對象或範圍,如特定目錄、網址或檔案名稱 • 可使用<Directory>、<Location>、<Files> 等標籤
存取控制Access Control • 目錄標籤規格 • 在httpd.conf 主設定檔內新增一個以<Directory>為開始到</Directory> 結束的區段
存取控制Access Control • apache 提供一個細部的調整功能,能讓某特定目錄或檔案成為有存取控制的功能 • 讓某個IP 無法讀取、允許連結作用或以帳號密碼驗證後才能存取目錄內容 • IP 存取功能處理順序- Order 指令
存取控制 Access Control • 限定IP 位址存取選項功能 • apache 提供一個細部的調整功能,能讓某特定目錄或檔案成為有存取控制的功能 • 讓某個IP 無法讀取、允許連結作用或以帳號密碼驗證後才能存取目錄內容 • IP 存取功能處理順序- Order 指令
存取控制Access Control • IP 存取功能處理順序 • Allow 指令 • 指定允許存取的IP 或IP 範圍,可用「all」代表所有的IP,例如: • Allow from all:允許所有IP 存取此目錄。 • Allow from 192.168.1.:允許開頭為 192.168.1. 的 IP 存取 • Allow from 172.17.1.35:允許該 IP 存取目錄內容 • Deny 指令 • 指定拒絕存取的IP 或IP 範圍,可用「all」代表所有的IP,例如: • Deny from all:拒絕所有 IP 存取此目錄。 • Deny from 192.168.1.15:拒絕該 IP 存取目錄內容。
存取控制Access Control • 實務範例一 • 網頁目錄想要公開 • 給所有的外部IP 存取,但有一個 • IP:172.17.1.35,我們想拒絕它存取網頁資料
存取控制Access Control • 實務範例二 • 公司內部專用的網頁伺服器, 希望能夠只將專案文件目錄/var/www/html/project/ 開放給192.168.2.x 的IP 存取,其餘IP 皆拒絕存取
存取控制Access Control • 存取選項- Options 指令 • 特定目錄的有預設的「自動檔案清單」與「允許符號連結」等選項功能 • None • 代表不使用所有選項。 • Indexes • 啟用自動檔案清單,客戶端要求某個目錄內容,而該目錄內又沒有如index.html 等預設文件時,Indexes 選項會列出該目錄的檔案清單
存取控制Access Control • 存取選項- Options 指令 • 特定目錄的有預設的「自動檔案清單」與「允許符號連結」等選項功能 • FollowSymLinks • 當目錄內有符號連結時,允許網頁端連結至該符號連結的目的地目錄,這個選項有安全性的問題,在實務上儘可能不使用它
存取控制Access Control • 允許推翻選項設定- AllowOverride • AllowOverride 選項只適用在Directory 目錄標籤 • 設定該目錄下的子目錄是否可以推翻其上層已訂定的選項設定值 • 自訂權限設定檔是在目錄中 • 新增一個文字檔並設定該目錄的自訂選項值
存取控制Access Control • 允許推翻選項設定- AllowOverride • AllowOverride 的設定值: • AllowOverride All • 允許子目錄可自訂所有選項。 • None • 不允許子目錄自訂任何選項(子目錄無法使用自訂選項功能)。 • AllowOverride 選項清單 • 只允許子目錄自訂列出清單的選項,如:AllowOverride Indexes FollowSymLinks
存取控制Access Control • 驗證帳號與密碼 • 定義目錄帳號驗證規則可讓特定目錄在網頁觀看者讀取時,要求輸入帳號與密碼 • 驗證設定檔,預設的檔案名稱是「.htaccess」 • 設定/var/www/html/files/ 可使用自訂權限
存取控制 Access Control • 驗證帳號與密碼 • 為使用者設定密碼 • 使用htpasswd 指令建立帳號與密碼 • 產生「.htpasswd」密碼檔
存取控制Access Control • 驗證帳號與密碼 • 編輯目錄驗證設定檔 • 新增自訂目錄權限設定檔「.htaccess」
存取控制 Access Control • 驗證設定檔參數說明 • AuthType • AuthType 為Basic 代表使用由htpasswd 指令產生的密碼檔為驗證依據。 • AuthName • 本項驗證的名稱,顯示在對話框上的文字。 • AuthUserFile • 驗證使用的密碼檔,必需包括所在目錄 • Require • 可通過驗證的帳號,valid-user 代表所有的帳號
存取控制Access Control • 驗證設定檔參數說明 • 使用IE 或firefox 瀏覽器測試網址http://127.0.0.1/files/
練習:個人網站 • 修改 Apache 的設定,啟動個人網站功能 • 在 student 的家目錄之中建立 public_html目錄,並在其中放置一個 index.php範例網頁 • 以 http://127.0.0.1/~student/ 檢視之
練習:虛擬目錄與安全防護-1 • 公司想在新年度更換新的首頁,請網站設計師先進行設計,等確認後再正式上線 • MIS 為協助新網站的開發,將開發中的新網站放在http://www.[我的學號].com.tw/2014/並加上一組帳號密碼加以控管,這一組帳號密碼只有公司主管與網站設計師知道 • 等到新網站確認之後,令新網站正式上線
練習:虛擬目錄與安全防護-2 • 建立帳號 web2014 • # adduser web2014 • # passwd web2014 • 建立目錄 /home/web2014/html • $ su - web2014 • $ mkdir html
練習:虛擬目錄與安全防護-3 • 修改Apache設定檔 /etc/httpd/conf/httpd.conf,找到Aliases 這個段落,在其中加入Alias /2014/ "/home/web2014/html/"並設定相對應的 <directory>設定。 • <directory>設定之中的AllowOverride None 須改為:AllowOverride All
練習:虛擬目錄與安全防護-4 • 建立 .htaccess與 .htpasswd • 在/home/web2014/html/目錄內建立.htaccess檔案,內如如次頁 • 以下列指令建立.htpasswd檔案以及驗證用的帳號密碼: • $ htpasswd -c .htpasswd web2014
.htaccess 檔案內容 AuthName "Auth Required" AuthType Basic AuthUserFile "/home/web2014/html/.htpasswd" require user web2014 order deny,allow allow from all satisfy all
練習:虛擬目錄與安全防護-4 • 網站正式上線: • 編輯Apache的設定檔,將# NameVirtualHost *:80改成 NameVirtualHost *:80 • 建立 <VirtualHost>設定,內容如次頁 • 以 ifconfig 查出本機的IP位址,修改 /etc/hosts 在檔案尾端加入一行:[我的IP位址] www.[我的學號].com.tw • 檢視網站http://www.[我的學號].com.tw
Virtual Host <VirtualHost *:80> ServerAdmin joseph.deng@gmail.com DocumentRoot /home/web2014/html ServerName www.[我的學號].com.tw </VirtualHost>
建立網站流量分析 • 安裝網站流量分析套件 • 透過aptitude 指令,能夠快速完成網站流量分析軟體的安裝,若要進行安裝請輸入指令【sudo aptitude install webalizer】即可。
建立網站流量分析 • 分析記錄檔案及產生圖表 • 在完成安裝之後,只要透過輸入指令「webalizer」並指定要分析的網頁存取記錄檔案路徑,便會在網站根目錄之「webalizer」目錄裡,產生圖表及分析記錄讓使用者透過瀏覽器直接檢視流量分析記錄及圖表。
本章結束 Q&A討論時間