apache相關檔案
/usr/sbin/httpd Apache主要的二進位執行檔
/etc/httpd/conf/httpd.conf apache主要設定檔
/etc/webalizer.conf 簡單的分析軟體webalizer設定檔
/etc/mime.types 記錄表頭中content-type和檔案類型的對應關係,參數為typesconfig
ps:常用mime有application,audio,image,message,model,multipart,text,video,可參考www.iana.org/assignments/media-types
.htaccess per-directory組態設定檔名稱,優先權大於主設定檔,但無法使用所有的指令功能
個別目錄擁有者可在該網頁目錄下建立.htaccess,以設定httpd.conf裡option的參數值
////////////////////////////////////////
apache相關目錄
/etc/httpd/conf.d/ 可將額外參數獨立出來寫進.conf,啟動Apache時,這個檔案會被讀入主要設定檔當中
php.conf PHP設定參數
webalizer.conf webalizer設定參數
/usr/lib/httpd/modules/ 模組放置目錄
libphp4.so 讓Apache能夠跑php的模組
mod_status.so 可查詢主機狀態的模組
mod_info.so 可查詢主機組態的模組
mod_access.so 可使用allow,deny,order的模組
mod_autoindex.so 可使用目錄索引功能的模組
mod_auth_basic.so 使用檔案方式的基本驗證模組(authtype=basic),普遍支援,不加密
mod_auth_digest.so 使用md5驗證模組(authtype=digest),http1.1才支援,有加密
mod_auth_ldap 用ldap目錄儲存驗證資料庫的驗證模組
mod_authn_anon 允許匿名存取的模組
mod_authn_dbm 用database management驗證的模組
mod_authn_file 用純文字檔案的驗證方式
mod_auth_msql 用mssql資料庫的驗證
mod_auth_mysql 用mysql資料庫的驗證
mod_auth_kerberos 使用kerberos的驗證
mod_auth_radius 使用radius的驗證
mod_auth_smb 使用windows nt基本驗證
mod_auth_pam 使用pluggable authentication module的驗證
mod_bandwidth 可限制頻寬,mod_limitipconn也有同功能也有同功能
ps:apache可用模組清單,modules.apache.org/search
/var/log/httpd/ Apache登錄檔目錄
error_log 錯誤記錄檔:記錄各種可能的錯誤訊息
access_log 存取記錄檔:也叫傳送記錄檔transfer log,記錄所有使用者連線狀況,要分析系統負載可參考
ps:可選格式有:combined,common,referer,agent
/var/www/html/ httpd.conf檔內參數documentroot預設的首頁目錄
/var/www/error/ 瀏覽器上出現的錯誤訊息以這個目錄的預設訊息為主
/var/www/icons/ 提供Apache預設給予的一些小圖示,url為http://localhost/icons/
/var/www/cgi-bin/ 預設給CGI放置的目錄,url為http://localhost/cgi-bin/
////////////////////////////////////////
apache command
可參考http://httpd.apache.org/docs/2.0/programs/
gpg //先執行import,在執行verify
–import KEYS //匯入apache的keys檔
–verify httpd-2.*.*.tar.gz.asc //檢查httpd-2.*.*.tar.gz的檔案是否正確
./configure 參數1 參數2 //用來產生makefile,安裝用參數可參考httpd.apache.org/docs-2.0/install.html
-h //查詢可用編譯選項
–prefix=/usr/local/apache //設定apache要安裝的地方
–with-mpm=name //指定欲進行編譯的mpm名稱為name(有prefork預設,worker,perchild)
–enable-so //啟動dso(dynamic shared objects),讓apache功能模組化,並有載入.so模組的功能
–enable-mods-shared=’mod1 mod2…’ //將mod以dso編譯成單獨的模組,有需要才載入,或用all將全部變成模組
–enable-modules=all //啟動各種內建的模組
(httpd.apache.org/docs-2.0/mod/ 將列出安裝時所包含的模組清單)
ratatelogs //記錄檔輪替管理
用法:在httpd.conf內的CustomLog改成此格式 “|rotatelogs_path /log_save_path interval” common
rotatelogs_path是此命令的路徑
log_save_path是被輪替下的舊紀錄儲存位置
interval是輪替時間,以每秒為單位(86400為一天)
common是系統內定的紀錄格式
ex:若要設定每天(86400)進行輪替
CustomLog “|/usr/local/devtest/bin/rotatelogs /usr/local/devtest/logs/access_log 86400” common
httpd
-l //列出所有己安裝模組清單,列出編譯進apache的功能(也就是列出沒有變成模組的功能)
logresolve //處理記錄檔內容的dns解析
語法:logresolve [-s file] [-c] < source > result
-s 指定用file檔案儲存該程式執行過程
-c 檢驗ip,dns對應資料
source 指定要處理的紀錄檔
result 指定儲存處理結果的檔案
/usr/sbin/apachectl
Apache主要shell script執行檔,可主動偵測系統上面的設定值讓啟動Apache時更簡單
apachectl [start|restart|graceful|stop|configtest]
graceful:動新啟動不斷線
configtest:測試httpd.conf是否正確
apxs
apache extension tool,若apache安裝時支援dso,即可為伺服器擴充模組
-c mod_name.c //將mod_name.c原始檔變成共享模組共享模組mod_name.la
-i -a mod_name.la //將mod_name.la載入,apache重啟後模組才會生效
-i 表示安裝
-a 增加LoadModule行到httpd.conf並啟用
-A 增加#LoadModule行到httpd.conf
ab,apache benchmarks
模擬多使用者連線,並將以回報
格式:ab [option] [http://]hostname[:port]/path
option有
-n 進行幾次連線
-c 同時連線數
-t 設定timeout時間
-C 設定cookie
-A 帳:密,用以支援basic認證
-e 將處理過程記在檔案
-p 指定一檔案,將檔案內資料post給要測試的程式
-k 開啟keeplive
-x 指定proxy server
-P 指定proxy server帳號密碼
參考來源
鳥哥的私房菜
apache2.0深入研究
linux伺服器建置與管理