在我本機配置時間不長,不過花了好長的時間寫了份配置文檔,和大家分享一下,希望對大家有用
LINUX發行版本:Fedora 14 , Apache .2.2
安裝就不說了!依然采用rpm包安裝方式 ,下面進入正題:
httpd.conf配置文件介紹
1、與Apache網絡和系統相關的選項
#使用ServerRoot參數設置Apache安裝目錄
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
# you will save yourself a lot of trouble.
# Do NOT add a slash at the end of the directory path.
#
ServerRoot "/etc/httpd"
#使用Listen參數設置Apache監聽端口,Apache默認是80
Listen 80
#使用User參數設置Apache進程的執行者
User apache
#使用Group參數設置Apache進程執行者所屬的用戶組
Group apache
#使用ServerAdmin參數設置網站管理員的郵箱地址
2、與Apache文件和目錄權限相關選項
#使用DocumentRoot參數設置網站根目錄
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/var/www/html"
#使用Directory段設置根目錄權限
Options FollowSymLinks
AllowOverride None
#使用Directory段設置/var/www/html目錄權限
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
?
#設置首頁為index.html
DirectoryIndex index.html index.html.var
#.ht后綴文件的訪問權限控制與上目錄的AllowOverride一起作用
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
Order allow,deny
Deny from all
Satisfy All
?
3、與Apache日志相關的選項如下
#使用ErrorLog參數設置錯誤日志的位置
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a
# container, that host's errors will be logged there and not here.
#
ErrorLog logs/error_log
#使用LogLevel參數設置錯誤日志的級別
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn
#使用LogFormat參數設置訪問日志的格式模板
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
#使用CustomLog參數設置訪問日志的格式模板
# For a single logfile with access, agent, and referer information
# (Combined Logfile Format), use the following directive:
#
CustomLog logs/access_log combined
4、相關參數的解釋
1)ServerRoot參數 該參數用于指定Apache軟件安裝的目錄
2)Listen參數 用于指定Apache所監聽的端口,默認情況下Apache的監聽端口為80.在服務器有多個IP地址的情況下,Listen參數還可以用于設置監聽的Ip地址
3)User和Group參數 用于指定Apache進程的執行者和執行者所屬的用戶組,如果要用UIG或者GID,必須在ID前面加上#號
4)ServerAdmin參數 該參數用于指定Web管理員的郵箱地址,這個地址會出現在系統連接出錯的時候,以便訪問者能夠及時通知WEB管理員。
5)DocumentRoot參數 該參數用于指定Web服務器上的文檔存放的位置,在未配置任何虛擬主機或虛擬目錄的情況下,用戶通過http訪問WEB服務器,所有的輸出資料文件均存放在這里。
6)ErrorLog 用于指定記錄,Apache運行過程中所產生的錯誤信息的日志文件位置,方便系統管理員發現和觖決故障
5、符號鏈接和虛擬目錄
1)虛擬目錄是一種將根目錄以外的內容加入到站點中的辦法。設置方法如下
#使用Alias參數設置虛擬目錄和實際目錄的對應關系
Alias /lopn /var/www/lopn
#使用Directory段設置/var/www//lopn目錄的訪問權限
……………………………………
?
此時,重啟服務器,使用 域名或IP/lopn即可訪問
2)符號鏈接:其時符號鏈接所實現的功能和虛擬目錄是完全一樣的,只不過是實現機制不同而已!
還如上例:使用符號鏈接不需要修改配置文件,只需要在 根目錄下創建一個連接 使用如下指令
#ln -s /var/www/lopn lopn
此時即可通過 域名或IP/lopn即可訪問訪問到/var/www/lopn 下的內容
6、個人空間
擁有帳號的本地帳號可以利用Apache發布自己的東西,假設有一用戶lopn,則其發布地址為http://主機/~lopn
下面我們開始配置
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
UserDir disabled root /禁止root用戶發布
#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
#UserDir public_html /去掉注釋符開啟功能,表示個人用戶目錄下的public_html 內容發布
?
接下來要對目錄的權限進行設置,如下,apache提供默認設置,去掉#號即可,如下所示
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Order allow,deny
Allow from all
?
Order deny,allow
Deny from all
?
?
#
這樣就配置好了個人空間。不過設置的時候注意權限的設置
7、Apache安全配置
Apache 提供了多種的安全控制手段,包括WEB訪問控制,用戶登錄密布認證以及.htaccess文件等。
1)訪問控制
在配置文件中,Direcotry段用于設置與目錄相關的參數和指令,包括訪問控制和認證
目錄相關的配置參數和指令
?
相關指令:1.Allow指令用于設置哪些客戶端可以方問Apache,格式如下
Allow from [All/全域名/部分域名/IP地址/網絡地址/CIDR地址]
2.Deny指令用于設置拒絕哪些客戶端訪問Apache,格式跟Allow一樣
3.Order指令用于指定執行訪問規則的先后順序
Order Allow,Deny :先執行充許訪問規則,再執行拒絕訪問規則
Order Deny,Allow
2)用戶認證
Apache的用戶認證包括基本(Basic)認證和摘要(Digest)認證兩種。這里我們只探討一下基本認證
基本認證:當Web瀏覽器請求經此認證模式保護的URL時,將會出現一個對話框,要求用記輸入用戶名和口令。如果正確,則返回頁面,否則返回401錯誤
要使用用戶認證,首先要創建保存了用戶名和口令的認證口令文件。可以用如下命令:
#htpasswd -c /etc/httpd/conf/users lopn *在/etc/httpd/conf目錄下創建一個名為users 的認證口令文件,并加入一個名為lopn的用戶
#htpasswd /etc/httpd/conf/users xrp *表示加入一個xrp用戶
有了認證口令文件,接下來我們需要更改配置文件
#
# Options Indexes FollowSymlinks
# AllowOverride None
#
# AuthType Basic *使用authtype參數設置認證類型
# AuthName 領域名稱 *用天設置受保護領域的名稱,此處沒有限制,用戶可根喜好設置
# AuthUserFile /etc/httpd/conf/users *使用AuthUserFile參數設置認證口令文件的位置
# Require user lopn *設置lopn用戶可以訪問
# Require valid-user *授權給認證口令文件中的所有用戶 ,與上一個選一種即可
#
# Order ……
# ……
#
?
3)分布式配置文件.htaccess
.htaccess,該文件可以覆蓋httpd.conf文件中的配置,但是它只能設置對目錄的訪問控制和用戶認證。.htaccess文件可以有多個,每個.htaccess文件的作用范圍僅限于該文件所存放的目錄以及該目錄下的所有子目錄。.htaccess所能實現的功能在配置文件中都能實現,但是因為在.htaccess修改配置后并不需要重啟服務就能生效,所以有時候是非常有用的1,操作如下
打開配置文件在,設置
#
# *允許.htaccess文件覆蓋httpd.conf文件中對該目錄的配置
# AllowOverride All
#
?
然后到指定的目錄,創建一個.htaccess文件,寫入配置,不用重啟就可以生效
8、虛擬主機(基于主機名)下面為配置文件中的說詳細說明,挺簡單,這里就不重復了
#NameVirtualHost *:80
#所有接口都接受該請求
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#
評論
查看更多