apache2.4編譯安裝,搭建虛擬主機日誌分析及訪問控制
阿新 • • 發佈:2018-11-08
com one httpd-2.4 combine led 定義 開啟 認證用戶 創建 Require all granted
</Directory>
而我的只能使用allow from all定義
這幾天在看LAMP,都編譯好了,今天打算做幾個虛擬主機,順便記錄下問題,php7是以php-fpm的方式與apache
連接的,php7有好多新特性 這裏就不一一說了。。。
這裏只是簡單的搭建了個phpMyadmin 本來是在主機上的,後來挪到了虛擬機上
首先在apache的配置文件上開啟虛擬主機功能,然後如下圖即可
這就是一個完整的配置。。。
耗費時間最多的是 <Directory>這個選項,來定義目錄權限的。。。試了幾次都不行
網上說的都的是這樣的
<Directory /var/www/html>
Options -Indexes FollowSymLinks
AllowOverride None
</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編譯安裝,搭建虛擬主機日誌分析及訪問控制