LinuxAid 網站配置實例(一)

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

  floatboat



1.前言

本文將以LinuxAid網站基本配置過程為實例,講解怎麼用 Linux 做為OS,構架一個完整的Web伺服器的過程。照著步驟,仔細實踐,相信您可以在極短的時間內建築起一個比較安全、穩健的Web伺服器。
整個環境就是在實際Internet上做,LinuxAid的基本參數是,IP地址:202.99.11.120,域名是:linuxaid.com.cn,linuxaid.net.cn等。伺服器所使用的OS為:Redhat Linux 6.2
預設安裝時選擇定製安裝,選擇軟體包時除了 Sendmail 之外,不選擇任何的伺服器軟體,同時應該安裝C、C++開發包。我們將要手工編譯安裝的軟體包有:
Apache 1.3.12; #WEB伺服器,提供HTTP服務
Resin 1.2.b1 #JSP解釋器,提供JSP/SERVLET解釋服務
PHP 4.0p #PHP解釋器,提供PHP解釋服務
Mysql 3.22.32 #資料庫伺服器,提供資料庫存儲服務
Proftpd 1.2.0rc2 #匿名FTP伺服器,提供文件傳輸服務
Bind 8.2.2p5 #域名伺服器(DNS),提供域名解析服務
Openssh-2.1.1.p4 #安全外殼,用於代替系統預設的TELNET服務
Postfix-19991231-pl09 #郵件傳遞伺服器(MTA),提供郵件發送服務
我們將把所有的自行編譯的軟體都放置於 /usr/local/servers ,也就是說配置是所使用的參數 --prefix 將指向 /usr/local/servers/packages(其中packages為軟體包的名稱,如Web伺服器將使用 apache)。
本文將以安裝手冊的形式出現,力求簡單明了,可以指導您迅速的將一台只有基本操作系統(Linux)的計算機安裝成為一台可以提供郵件(MAIL)、域名(DNS)、文件傳輸(FTP)、Web、JSP編程環境、PHP編程環境及資料庫支持的Web伺服器。
在進行實際操作前,我們強烈的建議您在看完全部內容。因為伺服器的安裝過程中要注意的問題非常多。如果您只是看了一部分就開始實際操作,有可能會導致問題的出現。同時,Web伺服器是一個比較複雜的系統,雖然我們儘力的將可能遇到的問題列出來並提供解決的方法,但仍然有可能出現一些無法遇見的問題。您可以自行嘗試查出錯誤的原因,如果可能的話,將您得到的結果通過我們的網站(http://www.linuxaid.com.cn)與其他讀者共同分享。如果您遇到無法解決的問題,您可以直接到我們的技術支持網站http://www.linuxaid.com.cn 技術支持論壇討論,我們的在線支持工程師會給您詳細的解釋。

2.基礎網路配置
2.1.網卡的安裝與設置

使用 netconf 按照以下的步驟:
1.使用方向鍵↓選擇Basic host information並按回車
2.填寫 Host name,一般情況下是www,如果您是用來做Web伺服器的話
3.使用方向鍵↓將游標移動至 Adaptor 1 的範圍內
4.選擇 Enabled 選項,使網卡有效
5.使用方向鍵將游標移動至Config Mode內,選擇IP地址方式,對於Web伺服器應該選擇 Manual
6.我們的Web伺服器的主域名是linuxaid.com.cn 所以在 Primary name+domain 這一項裡面應該輸入 linuxaid.com.cn,而別名(Aliases)可以不輸入
7.IP地址(IP address)應該輸入Web伺服器的IP地址,這裡我們輸入202.99.11.120
8.因為我們假設Web伺服器是安裝在一個C類的子網內,所以子網掩碼(Netmask)應該選擇255.255.255.0(將游標放置於Netmask輸入內,按ctrl+x鍵將會彈出一個列表框在其中選擇即可。提示:在所有有v字樣的列表框內都可以按ctrl+x鍵選擇)
9.Linux裡面每一個乙太網設備都必須有一定設備名,將游標放置於Net device輸入框內按鍵盤ctrl+x鍵選擇設備名,在Linux裡面第一個乙太網設備的名稱應該選擇eth0。
10.在設備名選擇完之後,應該為此設備選擇一個驅動程序,使Linux的內核可以驅動它正常的工作。這裡假設我們的網卡的ne2000兼容的10M網卡。使用ctrl+x選擇ne即可。
11.在驅動選擇完成之後,要看網卡的具體情況確定是否需要輸入中斷號和埠號。這裡我們的網卡的NE2000 ISA的網卡,沒有PNP功能我們只有自己手工的將中斷號和埠號輸進去。
12.至了這裡,網卡的參數我們已經設置完成,用TAB鍵將鍵盤移動到Accept處按鍵盤的回車鍵保存設置。並退出netconf,重新啟動Linux之後用以下的命令查看網卡工作是否正常
# ifconfig eth0
正常情況下應該會顯示關於網卡的相關信息,如果沒有的話,檢查您的設置步驟是否正確。

2.2.IP地址的修改
使用netconf按照以下的步驟:
1.Basic host information
2.填寫 Host name,一般情況下是www,如果您是用來做Web伺服器的話
3.使用方向鍵↓將游標移動至 Adaptor 1範圍內的IP address輸入框內,輸入您想要更改的IP地址,輸入完成之後用TAB鍵移動至Accept按鈕處按回車即可。
4.使用手工的方式修改可以用以下的命令:
# ifconfig eth0 202.99.11.120
其中eth0是設備的名稱,202.99.11.120是IP地址。

2.3.預設DNS伺服器地址的設置
直接使用vi修改/etc/resolv.conf,查看其中是否存在nameserver的參數,如果沒有手工添加進去,如果有的話直接修改其後的IP地址即可。其格式為
nameserver 127.0.0.1
其中127.0.0.1為DNS伺服器的地址,由於本站配置了DNS伺服器,所以可以用本地地址,也可寫為202.99.11.120。

3.伺服器安全
做為Web伺服器,我們首先要考慮的一條就是安全。Linux在安裝完成之後,預設的情況下會打開一些埠以提供一些基礎如Telnet、Finger等服務。
對於我們來說是沒有任何用處的,說不定還會導致一些安全問題。為此,在伺服器的建設初始,我們將就考慮將這些對我們日常工作沒有起到作用的服務關閉掉。在這一部分,我們將會介紹如何使用 openssh 和 proftpd 代替 inetd 最常用的兩個服務 telnetd 和 ftpd,從而實現最終將 inetd 從系統同刪除掉。
在進行具體的操作前,強烈的建議您先為自己添加一個獨立的用戶,一般來說我是這樣處理的。添加一個組名為 ftpusers,再添加一個用戶 myuser 其組為 ftpusers。相應的命令為:
#groupadd ftpusers
#useradd myuser ?g ftpusers
此用戶將用於進行常規的維護,與測試,象Telnet、FTP這些工作的測試。

3.1.安裝 openssh
1、下載軟體包:
從 http://www.openssl.org 下載 openssl 0.9.5a
從 http://www.freessh.org 下載 openssh-2.1.1.p4
下載的軟體包放置於 /usr/local/src。
2、將軟體包解壓縮

# cd /usr/local/src
# tar zxvf openssl-0.9.5.tar.gz
# tar zxvf openssh-2.1.1.p4.tar.gz

3、編譯並安裝 openssl和openssh

# cd /usr/local/src
# cd openssl-0.9.5
# ./configure --prefix=/usr/local/servers/openssl #設置安裝路徑
# make
# make install

編譯(make)過程所需的時間比較長,在我的PIII600+128MB SCSI硬碟的機器上編譯的過程需要差不多五分鐘。所以請耐心等候其編譯完成。
在完成 openssl 的編譯與安裝之後,我們就可以開始編譯與安裝 openssh。步驟如下:

# cd /usr/local/src
# cd openssh-2.1.1.p4
# ./configure --prefix=/usr/local/servers/openssh --with-ssl-dir=/usr/local/servers/openssl
# make
# make install
# cd /usr/local/src/openssh-2.1.1.p4/contrib/redhat
# install -m 644 sshd.pam /etc/pam.d/sshd
# sed 『s//sbin///local/servers/openssh/sbin//g』 sshd.init > /etc/rc.d/init.d/sshd
# chmod 755 /etc/rc.d/init.d/sshd
# chkconfig --level 345 sshd on
# chkconfig --level 0126 sshd off

4、測試sshd
啟動 sshd:

# /etc/rc.d/init.d/sshd start

如果出現:

Starting sshd: [ OK ]

則證明 sshd 已經正確的安裝並已經在後台運行,如果出現其它的提示,請檢查您的安裝步驟是否正確。
sshd 正確啟動之後,我們試試用其客戶端看是否可以正確的聯接至伺服器:

# cd /usr/local/servers/openssh/bin
# ./ssh 127.0.0.1 #連接本地的SSH伺服器

使用此命令之後正常情況下會要求您輸入root的密碼,您輸入之後如果可以成功的進入則證明 sshd 已經成功的安裝完成了。

ssh的win32客戶端可以從http://www.sorted.org/~chris/ssh/putty.exe 下載。方便您在Windows裡面遠程控制網站伺服器。

3.2.安裝ProFTPD

1、下載軟體包
從 http://www.proftpd.net 下載proftpd-1.2.0rc2.tar.gz
下載的軟體包放置於 /usr/local/src。
2、將下載的軟體包解壓縮

# cd /usr/local/src
# tar zxvf proftpd-1.2.0rc2.tar.gz

3、編譯並安裝proftpd

# ./configure --prefix=/usr/local/servers/proftpd
# make
# make install

4、修改 /etc/inetd.conf 將其中的 ftp 服務關閉掉
使用 vi /etc/inetd.conf 打開 inetd 配置文件,搜索 ftp,在

ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l ?a

這一行的最前面插入一個 # 號,修改之後的結果如下:

# ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l ?a

在vi環境下使用 :wq 存檔退出以後,使用 killall -HUP inetd 重新啟動 inetd,使所做的修改生效。
5、生成ProFTPD啟動文件

# cd /etc/rc.d/init.d
# sed 『s/sbin/atd/local/servers/proftpd/sbin/proftpd/g』 atd > proftpd
# sed 『s/atd/proftpd/g』 proftpd > /tmp/txt
# sed 『s/at daemon/proftpd daemon/g』 /tmp/txt > proftpd
# rm /tmp/txt
# chmod 755 proftpd
# chkconfig --level 345 proftpd on
# chkconfig --level 0126 proftpd off

說明:chkconfig,是一個在Linux裡面用於修改伺服器(daemon)運行環境的小程序,其命令格式為 chkconfig [?level ] 用於指定某個服務在指定的運行級別內是處於何種狀態。
6、為ProFTPD創建PAM文件

使用 vi 在 /etc/pam.d 創建一個名為 ftp 的文件,其內容為:

auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required /lib/security/pam_pwdb.so shadow nullok
account required /lib/security/pam_pwdb.so
session required /lib/security/pam_pwdb.so

7、修改ftp用戶的shell,並創建其主目錄

# usermod ?s /bin/bash ftp
檢查/home/ftp 是否存在,如果不存在使用以下的命令創建

# mkdir /home/ftp
# chown ftp.ftp /home/ftp
# chmod 700 /home/ftp

如果您不希望匿名登錄有效,本節可以不做
8、修改ProFTPD的啟動參數

# vi /usr/local/servers/proftpd/etc/proftpd.conf
搜索 nogroup,並將其改為 nobody
:%! sed 『s/nogroup/nobody/g』
修改完成後存檔退出
9、啟動ProFTPD
# /etc/rc.d/init.d/proftpd start
如果出現
Starting proftpd daemon: [ OK ]

則證明ProFTPD已經正確的安裝並已經在後台運行,如果出現其它的提示,請檢查您的安裝步驟是否正確。
10、測試ftp的聯接是否正常

ftp localhost

使用我們先前創建的用戶登錄。
如果無法聯接,則檢查您的ProFTPD是否已經在運行(可以用 ps ?ax | grep 「proftpd」 查看是否有ProFTPD進程)。
如果無法登錄,檢查您的用戶名及口令是否正確;如果確認所輸入的用戶及口令正確而又無法登錄,請檢查第9步是否有正確的進行。

3.3.關閉網際網路超級伺服器(inetd)
經過以上的步驟,我們已經實現了使用openssh代替telnetd實現遠程登錄,用proftpd代替in.ftpd提供匿名文件傳輸服務。Inetd提供的基礎功能,我們都已經實現,現在可以將inetd徹底的關閉掉。使用以下的命令:

# /etc/rc.d/init.d/inet stop
# chkconfig 0123456 inet off

經過以上的命令之後就可以將inet關閉掉,並且在下次啟動時系統也不會自動啟動inetd服務。

4.資料庫伺服器的安裝
經過第一部分的工作,我們已經成功的建立了一個比較安全的環境。可以開始做一些實質性的工作。首先做為Web伺服器,必須提供資料庫支持,我們就從資料庫的安裝與基本的維護開始。這裡我們選擇MySQL做為我們的資料庫伺服器。您可以從www.mysql.org下載到最新版本的MySQL。我們選擇穩定版本的3.22.32做為我們說明的版本。
4.1.下載軟體包
從www.mysql.org下載MySQL 3.22.32 並放置於/usr/local/src
4.2.將下載的軟體包解壓縮

# cd /usr/local/src
# tar zxvf mysql-3.22.32.tar.gz

4.3.編譯並安裝MySQL

# cd /usr/local/src/mysql-3.22.32
# ./configure --prefix=/usr/local/servers/mysql
# make
# make install
# cd /usr/local/servers/mysql/bin
# ./mysql_install_db

4.4.啟動MySQL並設置管理員口令

# cd /usr/local/servers/mysql/bin
# ./safe_mysqld& #啟動MySQL伺服器
# ./mysqladmin -u root password 『password』 #使用mysqladmin修改root的口令 #為』password』

4.5.MySQL常用命令簡介
在MySQL資料庫伺服器的軟體包中除了資料庫伺服器核心之外還有許多應用程序,這些應用程序負責管理、維護MySQL的方方面面。這些應用程序包括SQL語法分析器,資料庫管理程序,數據備份程序等等。
MySQL的每一個應用程序都帶上很多的參數,因為篇幅的問題我們這裡也只能做一些簡單的介紹。詳細的內容您可以使用相應的程序帶上 --help 參數查看。
MySQL的啟動
在很多情況下我們需要手工的啟動和關閉MySQL伺服器(如初始化、測試、數據恢復等等)。這時就需要用到以下的命令來控制MySQL伺服器的運行狀態。
啟動MySQL:
/usr/local/servers/mysql/bin/safe_mysqld&
關閉MySQL:
/usr/local/servers/mysql/bin/mysqladmin -u root -pyoupassword shutdown
注意,在預設的情況下只有root才有許可權啟動和關閉MySQL伺服器。同時,關閉MySQL時如果root有口令的話還需要通過提供-p參數告訴mysqladmin需要提供密碼。

MySQL語法分析器mysql的使用簡介
mysql是MySQL自帶的一個資料庫客戶端語法分析器。這個分析器可以直接的與MySQL邊接,執行用戶輸入的SQL指令,對資料庫進行相關的操作。
下面介紹一下mysql常的參數,並對其使用進行一些簡單的介紹:
-h 指定要連接的主機名或IP地址
-u 指定連接時使用的用戶名
-p 指定連接時使用的口令
使用mysql連接MySQL的例子:

# /usr/local/servers/mysql/bin/mysql -h localhost -u root -p
Enter password:********

其中,星口所包括的內容是我們root所對應的密碼,如果root的密碼為空,您可以直接使用:

# /usr/local/servers/mysql/bin/mysql -h localhost -u root

登錄,成功登錄后,mysql命令會提示與下面的信息相類似的提示:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 43 to server version:3.22.23

Type help for help.

mysql>
同時命令行出現"mysql>"提示符,您現在就可以開始輸入SQL語句了,常用的語句如下:
SHOW DATABASES 顯示系統中所有資料庫名
SHOW TABLES 顯示當然資料庫中所有的表名
USE DATABASE_NAME 使用指定資料庫做為當然資料庫
QUIT 退出mysql解釋器
其中,DATABASE_NAME為資料庫,使用SHOW TABLES前必須先使用USE命令指定資料庫。
MySQL管理工具mysqladmin的使用簡介
mysqladmin是MySQL資料庫軟體包中的一個資料庫管理工具。預設的情況下,只有MySQL的資料庫管理員(預設為:root)才可以使用。
mysqladmin 是一個功能強大的命令行工具,它的功能都可以通過一系列的命令行參數進行控制,下面列出一些常用的參數:

--f 在執行操作時不做任何的確認提示
-h 指定要連接的主機名或IP地址
-p 指定連接用戶的密碼
-P 指定主機中MySQL監聽的埠號(預設為:3306)
-u 指定連接時使用的用戶名

除了這些參數之外,mysqladmin還有很多命令,同樣我們將一些常用的命令列出來供您參考:
create database dbname #創建新的資料庫,其中dbname為資料庫名
drop database dbname #刪新資料庫,其中dbname為資料庫名
extended-status #顯示伺服器的當前狀態,如同時連接的客戶端數量
flush-privileges #刷新許可權表,當我們修改用戶信息,如口令時就需要
#使用到此命令刷新MySQL的許可權表
password #修改指定用戶的密碼,前面已經用到了
shutdown #關閉伺服器
接下來我們列一些簡單而常用的例子:
這裡例子在使用前,都必須先將當前路徑設置為/usr/local/servers/mysql/bin,下面是設置路徑的命令:
# cd /usr/local/servers/mysql/bin
(1)創建新的資料庫
# ./mysqladmin -u root -p create database mytestdb #以root的身份創建資料庫
(2)刪除資料庫
# ./mysqladmin -u root -p drop database mytestdb #以root的身份刪除資料庫
(3)修改用戶密碼
# ./mysqladmin -u root -p password password #將root的密碼改為password
(4)刷新許可權表
# ./mysqladmin -u root -p flush-privileges #刷新許可權表
(5)關閉資料庫伺服器
# ./mysqladmin -u root -p shutdown #關閉資料庫
MySQL數據導出工具mysqldump的使用簡介
很多情況下我們都需要將資料庫的數據導出到一個文件內進行備份或者到另外一個資料庫進行導入操作。這時就需要使用到MySQL提供的數據導出工具mysqldump。
其基本的語法為:
# mysqldump [OPTIONS] database [tables]
如果沒有指定任何的選項和表名(tables),mysqldump會 將整個資料庫的內容都導出來。下面是mysqldump一些常用的參數:
--add-drop-table 在每個表格前加上DROP TABLE語句,用於在導入時刪除原有的表格
-h 指定要連接的主機名或IP地址
-t 只備份數據,而不備份表結構
-d 只備份表結構,而不備份數據
--opt 允許同時多個附加的參數
-p 指定連接時的口令
-q 不使用緩衝區直接備份至硬碟,這對於要備份的資料庫比較大時非常有用
-u 指定連接時使用的用戶名
接下來我們以一個簡單的例子來說明mysqldump的使用方法:
(1)將test資料庫中所有表格全部導出至/tmp/test.bak中,因為mysqldump導出數據時是接輸出至控制台的,我們要將它所輸出的數據轉存至文件就需要使用重定向命令">"。注意,如果root用戶已經設置了口令,則需要輸入口令才可以導出。

# /usr/local/servers/mysql/bin/mysqldump -u root -p test > /tmp/test.bak

數據導出之後使用vi /tmp/test.bak或者less /tmp/test.bak就可以查看到導出的數據。
(2)將mysql資料庫中的db表的結構導出至/tmp/mysql.db.str中

# /usr/local/servers/mysql/bin/mysqldump -d -u root -p mysql db > /tmp/mysql.db.str

(3)將mysql資料庫中所有表格的數據(不包括結構)都導出至/tmp/mysql.data中

# /usr/local/servers/mysql/bin/mysqldump -t -u root -p mysql > /tmp/mysql.data

注意,mysql資料庫中存放在關於MySQL資料庫伺服器的許可權信息,在做完試驗之後應該立即將/tmp/test.bak、/tmp/mysql.db.str、/tmp/mysql.data刪除,以免造成安全隱患

4.6.MySQL的許可權控制及用戶管理
MySQL使用了一個獨立的資料庫用於存儲用戶的許可權信息,可以提供細至每個操作的許可權控制。這為精確的控制用戶的許可權提供了便利,同時也給用戶的管理增加了復繁性。由篇幅有限,這裡我們只能簡單的講一些許可權控制的技巧。
MySQL的許可權主要由兩部分構成,這兩部分分別存放於兩個表user和db裡面。
user表主要用來存放用戶名、密碼、用戶可以從那些主機上登錄、許可權是否有創建資料庫的許可權等
db 表主要用來存放用戶對具體的某個資料庫是否有讀取、刪除、添加、更新的許可權等。
了解了這兩個表對許可權控制的作用之後要控制具體用戶的許可權就容易多了。下面我們以一些簡單的例子來說明許可權控制的方法:
說明:因為這些例子都涉及到許可權的更改,所以在做完修改之後都必須使用 flush privileges 命令更新MySQL的許可權表。所做的更改才會有以後,同樣以後如果自行修改了MySQL的許可權表也必須使用flush privileges命令進行更新。同時所有的命令都是以root的身份在mysql命令行工具中執行,啟動mysql命令行工具的方法是進入mysql的安裝路徑/bin內運行./mysql,對於本書來說是 /usr/local/servers/mysql/bin/mysql
1.添加新用戶,只允許在本地登錄,沒有任何許可權
INSERT INTO user (Host,User,Password) VALUES
(localhost,mydbuser,PASSWORD(password));
運行此命令之後,將會產品一個名為mydbuser的新用戶,其口令為password,只允許在本地計算機中登錄,沒有任何的許可權。
2.添加新用戶,允許在任何地方登錄,對資料庫 test 擁有讀取、添加的許可權
INSERT INTO user (Host,User,Password) VALUES
(%,mydbuser1,PASSWORD(password));
INSERT INTO db (Host,Db,User,Select_priv,Insert_priv)
VALUES (%, est,mydbuser1,Y,Y);
運行這兩條命令之後,將會產品一個名為mydbuser1的用戶,擁有對資料庫test內所有表格讀取與添加的許可權。

5.Web伺服器的安裝與Web編程環境的建立
經過4部分的操作,我們的Web站點已經擁有了一個穩定的資料庫。接下來就要安裝Aache開始提供HTTP服務,同時還需要建議Web編程環境,提供JSP/PHP的支持,以進行動態網站的開發。
1、下載軟體包
從http://www.apache.org 下載Apache 1.3.12
從http://www.caucho.com 下載 resin 1.1.4
從http://java.sun.com 下載 jdk1.2.2
從http://www.worldserver.com/mm.mysql 下載mm.mysql-2.0.2-bin.jar
下載的軟體包放置於 /usr/local/src。
2、將下載的軟體包解壓縮

# cd /usr/local/src
# tar zxvf apache_1.3.12.tar.gz
# tar zxvf resin-1.1.3.tar.gz --directory=/usr/local/servers/

5.1.安裝Web伺服器
以模塊化方式編譯並安裝apache

# cd /usr/local/src/apache_1.3.12
# ./configure --prefix=/usr/local/servers/apache --enable-shared=max
# make
# make install

生成 Apache 啟動文件

# cd /etc/rc.d/init.d
# sed s/sbin/atd/local/servers/apache/bin/httpd/g atd > httpd
# sed s/atd/httpd/g httpd > /tmp/txt
# sed s/at daemon/httpd daemon/g /tmp/txt > httpd
# rm /tmp/txt
# chmod 755 httpd
# chkconfig --level 345 httpd on
# chkconfig --level 0126 httpd off

修改Apache配置文件
在預設的情況下Apache不會設置ServerName這個參數,而需要我們手工設置,方法如下:

# cd /usr/local/servers/apache/conf

使用vi打開httpd.conf,搜索ServerName變數,將其修改為 ServerName www.linuxaid.com.cn。其中www.linuxaid.com.cn是我們的WEB伺服器的域名。

啟動並測試Apache伺服器

# /etc/rc.d/init.d/httpd start
如果出現:
Starting httpd daemon: [ OK ]

則證明 httpd 已經正確的安裝並已經在後台運行,如果出現其它的提示,請檢查您的安裝步驟是否正確。
使用 lynx localhost 查看Apache的預設頁面,正常情況下是可以查看到的。如果沒有出現頁面或者提示錯誤信息,請您檢查Apache是否已經在運行,同時httpd.conf中的DocumentRoot參數指向的路徑是否允許任何人讀取與運行(許可權為rx)。
到了這一步,我們已經成功的以DSO方式安裝了Apache ,我們的Web伺服器可以開始提供靜態的頁面了,下一步我們就要開始加入JSP、PHP的支持。以使我們的Web伺服器可以提供動態頁面的服務。

使Apache支持基於域名的虛擬主機
Apache的虛擬主機支持有兩種方式,一是基於用戶訪問Apache主機時所使用的域名,另一種是通過指定IP地址來提供。這裡我們只講解如何通過不同的域名來實現虛擬主機的支持。
要實現基於域名的虛擬主機的前提條件是必須有兩個域名同時指向Apache主機的IP地址,這裡我們假設這兩個域名分別是www.linxuaid.com.cn和www.linuxaid.net.cn這兩個域名的文檔都分別放置於 /home/linuxaid.com.cn 和 /home/linuxaid.net.cn這兩個目錄內,同時這兩個目錄已經設置好許可權,對於目錄讓所有的人都可以讀取、運行,對於文件,讓所有的人都可以讀取。
以下是具體的配置:
NameVirtualHost 202.99.11.120 #告訴Apache,在202.99.11.120這個IP上處理
#基於域名的虛擬主機

ServerAdmin webmaster@linuxaid.com.cn #指定WEB管理員的郵箱
DocumentRoot /home/linxuaid.com.cn #指定本虛擬主機的文檔目錄
ServerName www.linxuaid.com.cn #指定本虛擬主機的域名
ErrorLog logs/linxuaid.com.cn.error.log #指定錯誤記錄應該存放於那裡
CustomLog logs/linxuaid.com.cn.log #指定常規記錄應該存放於那裡



ServerAdmin webmaster@linuxaid.net.cn #指定WEB管理員的郵箱
DocumentRoot /home/linuxaid.net.cn #指定本虛擬主機的文檔目錄
ServerName www.linuxaid.net.cn #指定本虛擬主機的域名
ErrorLog logs/linuxaid.net.cn.error.log #指定錯誤記錄應該存放於那裡
CustomLog logs/linuxaid.net.cn.log #指定常規記錄應該存放於那裡

將以上的指令輸入至httpd.conf之後,重新啟動apache,使用www.linuxaid.com.cn訪問時將可以得到 /home/linuxaid.com.cn中的內容,而使用www.linuxaid.net.cn訪問時則可以得到/home/linuxaid.net.cn中的內容。如果www.linuxaid.net.cn的內容與www.linuxaid.com.cn的內容相同,只要將DocumentRoot后目錄改為相當就可以了。如果也希望linuxaid.com.cn能訪問,還需要再定義一次,這樣寫ServerName linuxaid.net.cn就可以了。





[火星人 via ] LinuxAid 網站配置實例(一)已經有320次圍觀

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