การตั้งค่ารูปแบบของข้อมูลใน Apache Log File ของ Server ที่มีหลายโดเมน
เปิดไฟล์ httpd.conf ขึ้นมาแก้ไข ด้วยโปรแกรมอะไรก็ได้ที่ถนัด ในที่นี้ผมใช้ vi
vi /usr/local/apache/conf/httpd.conf
มองหาบรรทัดตามด้านล่าง แล้วแก้ไขให้เป็นไปตามที่ต้องการ
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\"" comonvhost
CustomLog "logs/access_log" comonvhost
บรรทัดแรกเป็นการกำหนดรูปแบบ (LogFormat) โดยผมตั้งชื่อเป็น comonvhost อธิบายตัวแปรต่างๆในคำสั่งเป็นรายตัวนะครับ (สำหรับตัวอื่นๆ อยากรู้เพิ่มเติมให้ดูที่ https://httpd.apache.org/docs/1.3/logs.html)
- %v แสดงชื่อ Host เช่น goragod.com
- %h แสดง IP ของผู้เรียก (client)
- %u แสดง USERID ที่เรียกสคริปต์
- %t แสดงวันที่และเวลา เช่น 22/Dec/2016:17:56:31 +0700
- %r แสดง request ที่ได้รับ เช่น GET / HTTP/1.0 หมายถึงเรียกไปที่หน้าหลักเว็บไซต์
- %>s แสดงรหัสตอบกลับจาก Server (status code) เช่น 200 หมายถึง สำเร็จ, 404 หมายถึงไม่พบไฟล์ เป็นต้น
- %{Referer}i แสดงที่มาของไซต์ที่เรียก (Http Referer)
เสร็จแล้ว restart apache
service apache2 restart
ตัวอย่างผลลัพท์ทีได้
goragod.com 172.68.6.24 - - [22/Dec/2016:17:56:31 +0700] "GET /index.php?id=1954 HTTP/1.0" 200 19 "https://www.goragod.com/forum.html?wbid=1954"