歡迎您光臨本站 註冊首頁

linux網站技術之Apache搭建

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

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
-------------------

由於許可權的嚴格訪問 因此需要為其他用戶增加進入宿主目錄的許可權

--------------------------------------


$chmod o x .
--------------------------------------
public_html子目錄默認並不存在,需要用戶使用mkdir命令建立,目錄建立後向裡面建立index.html的文件,該文件為用戶個人主頁的首頁

------------------------------------------------
$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次圍觀

http://coctec.com/docs/linux/show-post-48332.html