Apache伺服器配置技術文檔
1.基礎知識
1.1rpm包安裝目錄結構
/etc/httpd/ 工作目錄
/etc/httpd/conf/httpd.conf 主配置文件
/etc/httpd/conf.d/ 額外配置文件目錄
/var/www/html/ 默認的網頁存放位置
/var/www/cgi-bin/ 可執行的CGI程序目錄
/var/log/httpd/ 默認的日誌目錄
/usr/sbin/apachect1 檢測工具
/usr/sbin/httpd 進程啟動腳本
/usr/bin/htpasswd 密碼認證工具
1.2 源代碼包安裝目錄結構
通常建議將下載的源代碼包解壓到/usr/local/src/目錄下,而安裝到/usr/local/apacheX路徑下(X 可以理解成該源代碼包的版本號,可隨便定義 但自己一定記得是幹什麼用的)
/usr/local/src中,該目錄常用於保存需要編譯的程序源代碼(目錄).
#tar -zxf httpd-2.0.59.tar.gz -C /usr/local/src 解壓到指定路徑
#cd /usr/local/src/httpd-2.0.59/ 進入到解壓后的路徑下
#.configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite 配置
[--enable-so] 設置Apache伺服器可以使用動態載入模塊功能
[--enable-rewirte]設置Apache伺服器具有rewrite功能
(Apache伺服器的rewrite功能可以實現對動態網頁地址的重寫,從而使網頁訪問這可以通過更加 簡單和容易記憶的網頁地址訪問動態網頁系統中的頁面)
#make 編譯
#make install 安裝到/usr/local/apache2目錄中
------------------------------------------------------------------------------------------
此時工作目錄就是上面步驟中的 /usr/local/apache2
幾乎所有的相關配置文檔,以及相關的目錄都在這個路徑下
該目錄下的目錄和文件的介紹:
bin/ 包括伺服器運行和管理所需的執行程序,httpd使伺服器的執行程序,
apache1使服務程序的啟動腳本.....
lib/ 保存了伺服器運行所需的庫文件
conf 配置目錄 httpd.conf使主配置文件
htdocs 默認網頁存放路徑 ,該目錄作為web伺服器的根目錄
cgi-bin 可執行的CGI程序目錄
manual 目錄中保存了伺服器的幫助手冊文件使網頁格式的
logs 日誌存放目錄 access_log訪問日誌文件 error_log錯誤日誌文件
-------------------------------------------------------------------------------------------
Apache服務的啟動命令為:
#/usr/local/apache2/bin/apachectl start
沒問題的話 啟動是沒有任何的提示信息的
在實際的應用系統中,Apache伺服器所需要設置在linux系統啟動時自動運行,因此需要將apachect1 本的啟動命令寫入到rc.local文件
#vi /etc/rc.local
//在文件末尾添加以下命令
/usr/local/apache2/bin/apachectl start
在httpd.conf配置文件中使用ServerName為Apache伺服器設置的主機域名,應該在域的授權dns服務 器中進行A記錄的設置.
重新啟動httpd服務程序
#/usr/local/apache2/bin/apachectl restart
測試httpd.conf的語法
#bin/apachect1 -t
Syntax OK
------------------------------------------------------------------------------------------
Apache配置文件解析
httpd.conf文件的註釋行的信息太多,獲得完整的有效的配置清單需下列命令
#grep -v "#" conf/httpd.conf | head -5
截取文件httpd.conf文件中非#字元開頭的欄位中的前五行
----------------------
httpd.conf中的全局配置 :這些配置項不包括在任何區域中,決定了Apache伺服器的全局設置
以下是httpd.conf文件中比較常用的全局配置內容:
-----------------------------------------------------------------
ServerRoot "/usr/local/apache2" -------------1
pidFile logs/httpd.pid ------------2
Timeout 300 -------------3
KeepAlive On -------------4
MaxKeepAliveRequests 100 -------------5
KeepAliveTimeout 15 -------------6
Listen 80 -------------7
ServerAdmin you@example.com -------------8
ServerName www.ltest.com:80 --------------9
DocumentRoot "/usr/local/apache2/htdocs" --------------10
ErrorLog logs/error_log ---------------11
Customlog logs/access_log common ---------------12
--------------------------------------------------------------------
1.設置Apache伺服器的跟目錄,該目錄包括了伺服器運行必要的目錄和文件
在httpd.conf中,如果設置的目錄或文件不使用絕對路徑,都將被理解為是在伺服器根目錄下
2.設置保存httpd伺服器程序進程號(PID)的文件 默認logs/httpd.pid 該"logs"目錄位於Apache根目錄下
3.用於設置Web伺服器與瀏覽器之間網路連接的超時秒數,默認設置為300s
4.當設置為Off時伺服器不使用保持連接功能,客戶機的每次請求連接只能從伺服器返回一個文件,傳輸效率比較低;當KeepAlive設置為On時,客戶機與伺服器建立一次連接后可以請求傳輸多個文件,提高了伺服器傳輸文件的效率,建議保持連接.
5.當使用KeepAlive設置保持連接有效時,需要使用MaxKeepAliveRequests設置客戶端每次連接允許請求相應的最大文件數,默認100個.
6.設置保持連接的超時秒數,當客戶機的兩次相鄰請求超過該設置值時需要重新進行連接請求,默認為15s
7.Apache伺服器監聽的網路埠,默認80
8.設置Apache伺服器管理員的E-mail地址,當伺服器出現問題時 同過此地址聯繫管理員
9.ServerName 用於設置Apache伺服器的主機名
10.用於設置Apache伺服器網頁(文檔)根目錄在Linux系統中的實際目錄.Apache伺服器中的伺服器根目錄(ServerRoot)和文檔根目錄(DocumentRoot)比較容易混淆,應格外注意.
11.錯誤日誌的路徑及文件名,默認logs/error_log
12.設置Apache伺服器中訪問日誌文件的路徑和格式類型.
-----------------------------------------------------------------------------------------------------------------------
建立系統用戶的個人主頁
在httpd.conf配置文件中已經默認使用UserDir設置項設置了用戶的個人主頁目錄為public_html,即所有系統用戶的宿主目錄下如果有名為public_html的子目錄,該目錄將作為用戶在Apache伺服器中個人主頁的文檔根目錄.
--------------------------------------------------
#grep UserDir /usr/local/apache2/conf/httpd.conf
--------------------------------------------------
下面以qq建立個人主頁為例說明Apache伺服器中個人主頁的管理與應用
使用su命令將用戶的身份由root轉變為普通用戶qq,當前目錄變為宿主目錄
-------------------
#su - qq
$pwd
/home/qq
-------------------
由於許可權的嚴格訪問 因此需要為其他用戶增加進入宿主目錄的許可權
--------------------------------------
------------------------------------------------
$mkdir public_html
$vi pbulic_html/index.html
//輸入文件的內容
------------------------------------------------
在地址欄中輸入http://server.ip/~qq/
------------------------------------------------
如果能看到index.html文件的內容說明用戶的個人主頁建立成功.
==========================================================================================================================
域名虛擬主機的配置
下面將通過為"www.yahoo.com"和"www.baidu.com"在Apache伺服器中配置虛擬主機為例,
1.找到httpd.conf文件 配置主配置文件,#vi /etc/httpd/conf/httpd.conf
2.在文件中的幾行查到
Name VirtualHost *:80 將其前面的#號去掉 ;
3.再將下面幾行例子複製到這行的下面 把每句的前面的#號都去掉 ;
將其編輯成如下內容
Name VirtualHost *:80
<VirtualHost *:80>
DocumentRoot /www/yahoo.com/html
ServerName www.yahoo.com
Errorlog /www/yahoo.com/logs/error_log
CustomLog /www/yahoo.com/logs/access_log common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/baidu.com/html
ServerName www.baidu.com
Errorlog /www/baidu.com/logs/error_log
CustomLog /www/baidu.com/logs/access_log common
</VirtualHost>
其各個目錄的含義同上面的相同 這裡就不做多餘的累贅了!!!!!!!!
然後創建主配置文件中的相應的目錄
#mkdir -p /www/yahoo.com/html
#mkdir -p /www/yahoo.com/logs
#mkdir -p /www/baidu.com/html
#mkdir -p /www/baidu.com/logs
再向目錄中存放個網頁文件 以用於測試
#echo "www.baidu.com" >/www/baidu.com/html/index.html
#echo "www.yahoo.com" >/www/yahoo.com/html/index.html
修改了主配置文件 因此要重啟apache服務
#/usr/local/apache2/bin/apachectl stop
#
/usr/local/apache2/bin/apachectl start
查看埠 netstat -ant
然後在客戶機上訪問測驗 如果沒有做DNS伺服器 可以找到hosts文件寫入域名和IP的對應關係,以便能正確的訪問到網站, 在地址欄分別輸入 www.yahoo.com www.baidu.com 來測試 是否成功
-----------------------------------------------------------------------------------------
本文出自 「吼吼」 博客,請務必保留此出處http://878045653.blog.51cto.com/2693110/587448
[火星人 ] linux網站技術之Apache搭建已經有847次圍觀