亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

用定制的PHP應用程序來獲取Web服務器的狀態信息

2024-09-04 11:50:07
字體:
來源:轉載
供稿:網友
  大多數網站托管(Web hosting)公司都支持客戶對Web站點統計數據的訪問,但是你往往會覺得服務器所產生的狀態信息不夠全面。例如,配置不正確的Web服務器不能識別某些文件類型,這些類型的文件就不會出現在狀態信息之中。幸好,你可以用PHP來定制狀態信息收集程序,這樣你就可以獲取你所需要的信息了。
  
  
  公共日志文件格式(Common Logfile Format,CLF)的結構
  
  
  CLF最初是NCSA為HTTPd(全球網服務器軟件)而設計的。CERN HTTPd是一個由萬維網聯盟(World Wide Web Consortium,W3C)維護的公共域Web服務器。W3C網站列出了該日志文件規范。基于微軟和UNIX的Web服務器都可以生成CLF格式的日志文件。CLF格式如下:
  Host IdentAuthuserTime_Stamp "request" Status_codeFile_size
  
  例如:
  21.53.48.83 - - [22/Apr/2002:22:19:12 -0500] "GET /cnet.gif HTTP/1.0" 200 8237
  
  下面是日志條目的細目分類:
  
  Host是網站訪問者的IP地址或者DNS名;在上面的例子中,它是21.53.48.83。
  Ident是該訪客的遠端身份(RFC 931)。破折號表明“未指定”。
  Authuser是用戶ID(如果Web服務器已經驗證了驗證網站訪問者的身份的話)。
  Time_Stam是服務器以“日/月/年”這種格式返回的時間。
  Request是網站訪問者的HTTP請求,例如GET或者POST。
  Status_Code是服務器所返回的狀態代碼,例如:200代表“正確――瀏覽器請求成功”。
  File_Size是用戶所請求文件的大小。在本例中,它為 8237字節。
  
  
  服務器狀態代碼
  
  
  你可以在HTTP標準中找到W3C所開發的服務器狀態代碼規范。這些由服務器所產生的狀態代碼表示了瀏覽器和服務器之間的數據傳輸成功與否。這些代碼一般傳遞給瀏覽器(例如非常有名的404錯誤“頁面沒有找到“)或者添加到服務器日志中去。
  
  
  收集數據
  
  創建我們的自定義應用程序的第一步就是獲取用戶數據。每當用戶選擇網站的某個資源時,我們就希望創建一個對應的日志條目。幸好,服務器變量的存在使得我們能夠查詢用戶瀏覽器并獲取數據。


  
  報頭中的服務器變量攜帶了從瀏覽器傳遞到服務器的信息。REMOTE_ADDR就是一個服務器變量的例子。這個變量返回了用戶的IP地址:
  例子輸出:27.234.125.222
  
  下面的PHP代碼將顯示出當前用戶的IP地址:
  <?php echo $_SERVER['REMOTE_ADDR']; ?>
  
  讓我們看看我們的PHP應用程序的代碼。首先,我們需要定義我們想跟蹤的網站資源并指定文件大?。?
  //獲取我們想記錄的文件名稱
  $fileName="cnet-banner.gif";
  $fileSize="92292";
  
  你無需把這些值保存到靜態變量中去。如果你要跟蹤許多條目,那么你可以把它們保存到數組或者數據庫中去。在這種情況下,你可能會希望通過一個外部鏈接來找到每個條目,如下所示:
  <a href="weblogger.php?bannerid=123"><imgsrc="cnet-banner.gif" border="0"></a>
  
  其中“123”表示“cnet-banner.gif”所對應的記錄。然后,我們通過服務器變量來查詢用戶瀏覽器。這樣我們就得到在我們的日志文件中添加新條目所需的數據:

  //得到網站瀏覽者的CLF信息
  $host=$_SERVER['REMOTE_ADDR'];
  $ident=$_SERVER['REMOTE_IDENT'];
  $auth=$_SERVER['REMOTE_USER'];
  $timeStamp=date("d/M/Y:H:i:s O");
  $reqType=$_SERVER['REQUEST_METHOD'];
  $servProtocol=$_SERVER['SERVER_PROTOCOL'];
  $statusCode="200";
  
  然后,我們檢查服務器是否返回了空值(null)。根據CLF規范,空值應該用破折號來代替。這樣,下一個代碼塊的任務就是尋找空值并用破折號來取代它:
  //給空值添加破折號(根據規范)
  if ($host==""){ $host="-"; }
  if ($ident==""){ $ident="-"; }
  if ($auth==""){ $auth="-"; }
  if ($reqType==""){ $reqType="-"; }
  if ($servProtocol==""){ $servProtocol="-"; }
  
  一旦我們獲取了必要的信息,這些值將被組織成一種符合CLF規范的格式:
  //創建CLF格式的字符串
  $clfString=$host." ".$ident." ".$auth." [".$timeStamp."] """.$reqType." /".$fileName." ".$servProtocol.""" ".$statusCode." ".$fileSize."";

  
  創建自定義日志文件
  
  現在,格式化之后的數據可以存放到我們的自定義日志文件中去。首先,我們將創建一種文件命名協定,并編寫每日產生一個新日志文件的方法(函數)。在本文所舉的例子中,每個文件都以“weblog-”開頭,然后是按月/日/年表示的日期,文件擴展名為.log。.log擴展名一般表示服務器日志文件。(實際上,絕大多數日志分析器都搜索.log文件。)
  // 用當前日期來命名日志文件
  $logPath="./log/";
  $logFile=$logPath."weblog-".date("mdy").".log";
  
  現在,我們需要判斷當前日志文件是否存在。如果存在,我們就向它添加條目;否則,應用程序就創建新的日志文件。(新日志文件的創建一般發生在日期更改時,因為這時文件名發生變化了。)
  //檢查日志文件是否已經存在
  if (file_exists($logFile)){
  //如果存在,則打開已存在的日志文件
  $fileWrite = fopen($logFile,"a");}
  else {
  //否則,創建新的日志文件
  $fileWrite = fopen($logFile,"w"); }


  
  如果你在寫或者追加文件時,收到“權限不足(Permission Denied)”錯誤信息,請更改目標日志文件夾的權限來允許寫操作。絕大多數Web服務器的默認權限為“可讀可執行”。你可以用CHMOD命令或者使用FTP客戶端來改變文件夾的權限。
  
  然后,我們創建文件鎖定機制,這樣當兩個或者更多用戶同時訪問日志文件時,只有其中的一個用戶可以對該文件進行寫操作:
  //創建文件寫操作的鎖定機制
  flock($fileWrite, LOCK_SH);
  
  最后,我們寫入條目的內容:
  //寫CLF條目
  fwrite($fileWrite,$clfString);
  //解除文件鎖定狀態
  flock($fileWrite, LOCK_UN);
  //關閉日志文件
  fclose($fileWrite);
  
  處理日志數據
  
  
  在該系統產品化之后,客戶希望得到對所收集到的訪問者數據的詳細統計分析。由于所有的定制日志文件都是按照一個標準的格式組織的,因此任何一個日志分析器都可以處理它們。日志分析器是一個工具,它分析大的日志文件并產生餅圖、直方圖以及其它統計圖形。日志分析器也用來收集數據,并綜合出提供哪些用戶訪問你的網站、點擊數等方面的信息。
  
  下面列出了幾個比較流行的日志分析器:
  
  WebTrends是一個非常不錯的日志分析器,它適用于大規模網站以及企業級的網絡。
  Analog是一個頗受歡迎的免費日志分析器。
  Webalizer是一個免費的分析程序。它可以產生HTML報告,這樣大多數網絡瀏覽器都可以查看它的報告。
  
  遵守標準
  
  我們可以輕松的擴展該應用程序來讓它支持其它類型的日志記錄。這樣你就可以捕獲到更多的數據,如瀏覽器類型以及referrer(referrer指得是鏈接到當前網頁的前一個網頁)。這里的經驗就是:在你編程的時候遵循標準或者慣例終究會簡化工作。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩中文字幕不卡视频| 日韩在线视频二区| 欧美日本啪啪无遮挡网站| 国产成人亚洲综合91| 欧美人交a欧美精品| 日韩欧美精品中文字幕| 91美女福利视频高清| 日本成人激情视频| 欧美日韩性视频在线| 午夜免费日韩视频| 黄色一区二区在线| www.日韩视频| 国产欧美一区二区三区在线| 欧美整片在线观看| 色哟哟入口国产精品| 久久久亚洲影院你懂的| 精品精品国产国产自在线| 欧美日韩在线观看视频| 色香阁99久久精品久久久| 亚洲国产精品久久精品怡红院| 性色av一区二区三区红粉影视| 日韩成人av网址| 国产成人激情视频| 精品国产精品三级精品av网址| 好吊成人免视频| 欧美精品18videos性欧| 欧美大全免费观看电视剧大泉洋| 亚洲欧美综合图区| 亚洲精品aⅴ中文字幕乱码| 欧美精品videosex性欧美| 日韩欧美主播在线| 亚洲国产精品资源| 亚洲男人天堂久| 亚洲成人激情图| 日韩av免费在线看| 欧美日韩亚洲91| 欧美性xxxx| 91精品久久久久久综合乱菊| 狠狠躁18三区二区一区| 欧美日韩午夜激情| 欧美第一黄色网| 成人在线小视频| 亚洲国产婷婷香蕉久久久久久| 精品人伦一区二区三区蜜桃免费| 国产视频精品免费播放| 中文字幕亚洲专区| 中文日韩在线观看| 国产91露脸中文字幕在线| 91成品人片a无限观看| 久久99视频免费| 日韩女优人人人人射在线视频| 国产成人精品电影| 日本不卡高字幕在线2019| 国产亚洲成精品久久| 久久久久国产一区二区三区| 欧美夫妻性生活视频| 成人字幕网zmw| 亚州精品天堂中文字幕| 亚洲一区二区中文| 中文国产亚洲喷潮| 亚洲美女在线视频| 国产最新精品视频| 久久精品91久久久久久再现| 国产精品美女久久久久av超清| 日韩免费看的电影电视剧大全| 精品中文字幕在线2019| 国产精品久久久久久久天堂| 国内精品久久久久久中文字幕| 国产精品久久久久久久久久久久| 亚洲欧美国产视频| 国产97在线|亚洲| 国内精品中文字幕| 这里只有精品视频在线| 国产日韩欧美在线观看| 欧美一区二区三区免费视| 一区二区三区动漫| 蜜月aⅴ免费一区二区三区| 欧美精品第一页在线播放| 日韩av毛片网| 欧美日韩精品中文字幕| 91精品久久久久久综合乱菊| 黑人巨大精品欧美一区二区一视频| 午夜精品久久久久久99热软件| 伦伦影院午夜日韩欧美限制| 91成人精品网站| 日韩高清人体午夜| 国产精品欧美一区二区| 亚洲精品之草原avav久久| 色爱精品视频一区| 国产99久久精品一区二区| 欧美性色视频在线| 国产精品永久免费视频| 国产精品免费视频久久久| 日韩欧美亚洲范冰冰与中字| 韩国一区二区电影| 久久精品一偷一偷国产| 亚洲最大成人免费视频| 亚洲视频专区在线| 亚洲色图综合网| 亚洲国产精品系列| 日韩一区在线视频| 亚洲精品美女视频| 91大神福利视频在线| 日韩av免费看网站| 国产精品毛片a∨一区二区三区|国| 91久久精品日日躁夜夜躁国产| 日韩黄在线观看| 川上优av一区二区线观看| 日韩亚洲综合在线| 久久久亚洲欧洲日产国码aⅴ| 亚洲free性xxxx护士白浆| 亚洲综合在线小说| 91精品国产91久久久久久久久| 久久久久久久久久国产| 亚洲一区二区自拍| 欧美大片第1页| 亚洲偷熟乱区亚洲香蕉av| 亚洲自拍欧美色图| 国产99久久精品一区二区 夜夜躁日日躁| 7777精品视频| 中文字幕日韩在线视频| 国产亚洲精品久久| 亚洲精品91美女久久久久久久| 亚洲日本成人女熟在线观看| 成人激情综合网| 欧美午夜片欧美片在线观看| 亚洲aa在线观看| 欧美性视频在线| 色噜噜国产精品视频一区二区| 亚洲美女性视频| 日韩国产一区三区| 欧美视频在线免费| 中文字幕欧美日韩| 国产精品女人久久久久久| 中文字幕综合在线| 国产精品久久久久9999| 亚洲国产欧美一区二区三区久久| 国产精品国产三级国产aⅴ浪潮| 亚洲精品国产精品国自产观看浪潮| 国产精品入口日韩视频大尺度| 欧美色视频日本版| 久久久精品国产网站| 久久99亚洲精品| 欧美精品一本久久男人的天堂| 在线观看国产精品91| 日韩高清有码在线| 欧洲成人午夜免费大片| 欧美激情第三页| 成人在线一区二区| 亚洲 日韩 国产第一| 成人性教育视频在线观看| 欧美巨大黑人极品精男| 日韩亚洲在线观看| 日韩久久免费电影| 欧美性生交xxxxx久久久| 影音先锋欧美在线资源| 成人精品视频久久久久| 久久成人一区二区| 亚洲一区二区三区在线免费观看| 一区二区三区回区在观看免费视频| 日韩av片永久免费网站| 久久伊人精品一区二区三区| 最近2019中文免费高清视频观看www99| 一本久久综合亚洲鲁鲁|