1. 程式人生 > >apache2.4編譯安裝,搭建虛擬主機日誌分析及訪問控制

apache2.4編譯安裝,搭建虛擬主機日誌分析及訪問控制

com one httpd-2.4 combine led 定義 開啟 認證用戶 創建

這幾天在看LAMP,都編譯好了,今天打算做幾個虛擬主機,順便記錄下問題,php7是以php-fpm的方式與apache 連接的,php7有好多新特性 這裏就不一一說了。。。 這裏只是簡單的搭建了個phpMyadmin 本來是在主機上的,後來挪到了虛擬機上 首先在apache的配置文件上開啟虛擬主機功能,然後如下圖即可

技術分享圖片

這就是一個完整的配置。。。
耗費時間最多的是 <Directory>這個選項,來定義目錄權限的。。。試了幾次都不行
網上說的都的是這樣的

<Directory /var/www/html>
Options -Indexes FollowSymLinks
AllowOverride None

Require all granted
</Directory>
而我的只能使用allow from all定義

 下面是編譯apache時候的選項....
 ./configure --prefix=/usr/local/apache2.4 --enable-ssl --enable-modules=most --enable-mods-shared=all --with-
 zlib --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-cgi --enable-rewrite --enable-mpms-
 shared=all --with-mpm=event --enable-so --with-included-apr

make出錯的話 直接make clean以後直接刪掉解壓包 徹底些

編譯安裝的時候如果不加上 --with-incuded-apr的話會一直報錯 很奇怪的錯誤 加上後面一句的時候就會報如下的錯誤
configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and
apr-util packages to ./srclib/.
按照網上的方法解決
cp -rf apr-1.5.2 /usr/local/src/httpd-2.4.18/srclib/apr   //將版本號去掉,下同
cp -rf apr-util-1.5.4 /usr/local/src/httpd-2.4.18/srclib/apr-util

技術分享圖片

apache的日誌功能
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
%h:客戶端的ip地址
%l  %u  這兩個不太重要
%t: 時間  是按照英文外國顯示的時間
%r:First line of request 請求報文的信息
%>:響應狀態碼
%b:響應報文的大小,單位是字節,不包括響應報文首部
$(Referer);請求報文中referer首部的值,也就是訪問當前資源的入口,是從哪個頁面跳轉過來的  - 表示自己的網站首部過來的..
$(User-Agent)發出請求用到的應用程序 請求報文當中User-Agent的值

(2)、網站別名:把一個URL映射到別的路徑之下

在配置文件中有一個DocumenRoot  這個是指定網站根目錄的
還可以自己指定一個Alias /URL/ "/PATH/TO/SOMEDIR"
例如:Alias /bbs/     "forum/htdocs"
定義以後就和上面的DocumentRoot 沒啥關系了
在Alias配置段中隨便定義就行,定義以後就會指定到新的路徑中了
(3)、設置默認字符集
AddDefaultCharser  UTF-8  國際的
(4)、基於用戶的訪問控制

用戶認證
(1)、定義安全域
<Directory "">
optiones none
allowoverride none
authtpe basic
authname "sui bian ding yi"
authuserfile "存放用戶密碼的路徑"
require valid-user 那些用戶可以訪問 可以是user1 user2 或認證用戶 valid-user

</Directiory>
技術分享圖片

基於ip地址的認證
技術分享圖片
最好是先刪除默認welcome的歡迎頁面 要不測試可能會用問題
然後使用htpasswd來創建用戶和密碼

虛擬主機

可以實時查看apache的狀態頁面
只需要把
技術分享圖片

其中下面的需要主機設定
訪問 http://localhost/server-status
http://localhost/server-status?refresh=N  代表N秒鐘刷新一次
    在此一定要設置用戶權限,不能讓所有人訪問,但是也不能基於IP的訪問權限,可以設置用戶名和密碼的權限,這樣在外網也可以查看
<Location /server-status>
SetHandler server-status
#    Order deny,allow
#    Deny from all
#    Allow from all
Options None
Allowoverride None
authtype basic
authuserfile "/etc/httpd/conf/.thpasswd"
authname "suibiandingyi"
require valid-user
</Location>

apache2.4編譯安裝,搭建虛擬主機日誌分析及訪問控制