Apache網站服務基礎
一.安裝httpd服務器
1. 爲了避免端口衝突,程序衝突,建議先卸載使用RPM方式安裝的httpd
rpm -q | grep httpd
rpm -e httpd --nodeps
2. 源碼編譯及安裝
a) 解包
tar zxfhttpd-2.2.17.tar -C /root
cd ~
b) 配置
根據服務器實際的應用需求,可以靈活設置不同的定製選項
各選項的含義:
--prefix:指定將httpd服務程序安裝到哪個目錄下
--enable-so:啓用動態加載模塊支持,使httpd具備進一步擴展的能力
--enable-rewrite:啓用網頁地址重寫功能,用於網站優化及目錄遷移維護
--enable-charset-list:啓動字符集支持,以便支持用各種字符集編碼的網頁
--enable-cgi:啓用CGI腳本程序支持,便於擴展網站的應用訪問能力
c)編譯及安裝
make && make install
3. 確認安裝結果
主要目錄的用途:
/usr/local/httpd/bin:存放httpd服務的各種執行程序文件,包括主程序httpd,服務控制工具apachectl等
/usr/local/httpd/conf:存放httpd服務的各種配置文件,包括主配置文件httpd.conf,增強配置子目錄extra等
/usr/local/httpd/htdocs:存放網頁文檔,包括默認首頁文件index. html等
/usr/local/httpd/logs:存放httpd服務的日誌文件
/usr/local/httpd/modules:存放httpd服務的各種模塊文件
/usr/local/httpd/cgi-bin:存放各種CGI 程序文件
4. 優化執行路徑
通過源碼編譯安裝的httpd服務,程序路徑並不再默認的搜索路徑中,爲了使該服務在使用時更方便,可以爲相關程序添加符號鏈接。
ln -s /usr/local/httpd/bin/* /usr/local/bin/
5. 添加httpd系統服務
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vim/etc/init.d/httpd(在前三行填寫如下圖內容)chkconfig –add httpd //將httpd添加爲系統服務
chkcofnig –list http //查看httpd服務的自啓動狀態
二. httpd的部署過程
1.配置並啓動服務
vim/usr/local/httpd/conf/httpd.conf
ServerName www.akhack.com //設置網站名稱
修改httpd.conf文件的配置內容後,建議使用帶“-t”選項的apachectl命令對配置文件內容進行語法檢查,如沒有語法錯誤,則顯示“Syntax OK”的信息
/usr/local/httpd/bin/apachectl -t
2.啓動服務
service httpd start
查看服務是否啓動
netstat -anpt | grep httpd
3.查看web站點訪問情況
通過查看日誌文件access_log,可以瞭解web站點的訪問情況
通過查看日誌文件error_log,可以爲排查服務器運行故障提供參考
三.httpd.conf配置文件
1.全局配置項
ServerRoot:設置httpd服務器的根目錄,該目錄下包括了運行web站點必須的子目錄和文件。
Listen:設置httpd服務器監聽的網絡端口號,默認端口80.
User:設置運行httpd進程時的用戶身份,默認爲daemon。
Group:設置運行httpd進程的的組身份,默認爲daemon。
ServerAdmin:設置httpd服務器的管理員E-mail地址。
ServerName:設置web站點的完整主機名(域名)
DocumentRoot:設置網站根目錄,即網頁文檔在系統中的存放路徑
Directorylndex:設置網站的默認首頁,可以設置多個首頁文件,用空格隔開
ErrorLog:設置錯誤日誌文件的路徑,默認路徑爲logs/error_log
LogLevel:設置記錄日誌的級別,默認級別爲warn(警告)
CustomLog:設置訪問日誌文件的路徑,默認爲logs/access_log
PidFile:設置用於保存httpd進程號(PID)的文件
CharsetDefault:設置站點中的網頁默認使用的字符集編碼,如UTF-8
lnclude:包含另一個配置文件的內容
2.區域配置項
除了全局配置項以外,httpd.conf文件中的大多數配置是包括在區域中的。區域配置使用一對組合標記,限定了配置項的作用範圍。
常見的目錄區域配置的形式如下所示:
<Directory /> //定義“/”目錄區域的開始
Options FollowSymLinks //控制選項,允許使用符號鏈接
AllowOverride None //不允許隱含控制文件中的覆蓋配置
Order deny,allow //訪問控制策略的應用順序
Deny from all //禁止任何人訪問此區域
</Directory> //定義“/”目錄區域的結束
四.基於域名的虛擬主機
1.爲虛擬主機準備網頁文檔
mkdir /var/www/html/bjcom mkdir /var/www/html/shcom echo “<h1>www.beijing.com<h1>” /var/www/html/bjcom/index.html echo “<h1>www.shanghai.com<h1>” /var/www/html/shcom/index.html
2.添加虛擬主機配置
在httpd服務器的主配置文件中,修改一下內容
a)監聽地址:使用NameVirtualHost配置項指定提供虛擬主機服務的ip地址
b)虛擬主機區域:使用<VirtualHost監聽地址>。。。。。。</VirtualHost>區域配置,爲每一個虛擬主機建立獨立的配置內容。
c)目錄權限:使用<Directory 目錄位置>。。。。。。。。</Directory>區域配置,爲每一個虛擬主機的網站目錄設置訪問權限,
(1)vi/usr/local/httpd/conf/extra/httpd-vhosts.conf
(2)修改主配置文件
Include conf/extra/httpd-vhosts.conf //加載獨立的配置文件,去掉#號
五.基於ip地址的虛擬主機
(1)vi/usr/local/httpd/conf/extra/httpd-vhosts.conf
(2)修改主配置文件
Include conf/extra/httpd-vhosts.conf //加載獨立的配置文件,去掉#號
六.基於端口的虛擬主機
(1)vi/usr/local/httpd/conf/extra/httpd-vhosts.conf
(2)修改主配置文件
Include conf/extra/httpd-vhosts.conf //加載獨立的配置文件,去掉#號
Listen 192.168.1.20:80 //監聽80端口
Listen 192.168.1.20:8080 //監聽8080端口