Skip to main content

Creating a custom logs in apache2

In this article I try to explain how to create our own log file in apache2. Log files are there to keep records about the details of users ,time , host's IP  etc.. These details are used to analyzed about the users who visits web sites.

First of all you had to create a web site and should host in apache server.Following guidelines will help to you.According to your document root create a directories to keep your index file.
In my case I keep it /var/www/www.mypage.lk/htdocs. If you are not define custom log file to your site it will go to default place in /var/log/apache2 .And I create a log directory in side the www.mypage.lk to keep records of www.mypage.lk.

Normally log files are keep in /var/log/apache2. This is the default directory where apache log files are keep.  In this scenario I create log directory inside the www.mypage.lk directory. So my log file path will be /var/www/www.mypage.lk/logs.

go to /etc/apache2 and edit ports.conf file ( you can use an editor like vi or nano)
and change Listen 8080  (any port you can use) 
then go to the sites-available directory and create text file www.mypage.lk and It should be like this
use this command to edit $vi /etc/apache2/sites-available/www.mypage.lk . (You should first crate a file in sites-available directory)

  ------------www.mypage.lk--------------------
#
#  Example.com (/etc/apache2/sites-available/www.mypage.lk)
#

NameVirtualHost 127.0.0.1:8080
<VirtualHost 127.0.0.1:8080>
        ServerAdmin webmaster@localhost
        ServerName  www.mypage.lk
        ServerAlias www.mypage.lk

        # Indexes + Directory Root.
        DirectoryIndex index.html
        DocumentRoot /etc/www/www.mypage.lk/htdocs/

        # CGI Directory
        ScriptAlias /cgi-bin/ /var/opt/www.mypage.lk/cgi-bin/
        <Location /cgi-bin>
                Options +ExecCGI
        </Location>

        # Logfiles
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" %T" timed-combined
    LogFormat "%T \"%r\"" mylog
        #ErrorLog  /var/opt/www.mypage.lk/logs/error.log
        CustomLog /var/opt/www.mypage.lk/logs/access.log mylog
</VirtualHost>

as I explain in previous article you should create  a symlink $ a2ensite www.mypage.lk and keep record in /etc/hosts file  as 127.0.0.1   www.mypage.lk .
Then when ever you type www.mypage.lk in browser it should shows your index file.

note : you can use any IP address and It should be a ip of apache server running.

In blue color shows what are the parameters should be recorded in log file. You can change it according to your preference. These are the some meanings of them.

%h      The remote host
%l      The remote logname (usually just "-")
%u      The authenticated user (if any)
%t      The time of the access
\"%r\"  The first line of the request
%>s     The final status of the request
%b      The size of the server's response, in bytes
\"%{Referer}i\"     The referrer URL, taken from the request's headers
\"%{User-Agent}i\"  The user agent, taken from the request's headers
 
 
In green color represent the name of each format of log. And you can create several formats by changing name. To assign each format you should give format name with relevant path to the log file. In red color represent the file path to our log file. Access.log is the log file name.



This is the record that we can see in the access.log in www.mypage.lk relevant to Log Format of  LogFormat "%T \"%r\"" mylog.

0 "GET / HTTP/1.1"
  



note : This is for apache2 in ubuntu and this may be change in other linux distributions.


Comments

Post a Comment

Popular posts from this blog

IP based vertual hosting in apache2

I think most of the people used ubuntu as their linux OS. There will be a little bit conflict when you are trying to use virtual hosting in apache2 according to centOS. In this article I will try to explain how it should done in ubuntu apache2. Anyway there is a few more things to know before you start. 1. httpd.conf  file is equal to apache2.conf in /etc/apache2/ 2. In apache2.conf includes some other conf file so that necessary settings should be done those files. e.g. changing port numbers should be done in ports.conf I will explain step by step vertual hosting using apacge2. I take /etc/var/www as a DocumentRoot any way if you want to change it, Change the default file which locate in /etc/apache2/sites-available/default file. To easy access create a folder called www.bict.lk (any choice)  and create htdocs and logs two folders inside www.bict.lk. Don't forget to create index.html file in htdocs folder. (html file which shows www.bict.lk ). These folders should be cre

SSL Certificate

SSL stands as secure socket layer, of the main protocol which is used to secure the data transmission.  In this article I am trying to discuss how this SSL certificate is used in client server architecture. First of all you should know the difference of "Authentication" and "Authorization".  Authentication means validate the correct user, for instance most of times when you tried to log to the system, it will ask user name and password to log it. That is called as authentication. Only user who is given correct user name and password allow to log to the system. When you log to a particular site what are the things you are allowed to do and not to do, in other words the privileges that you have in that site called as Authorization. These two concepts are used when client (your browser) requests from server through SSL protocol.  You may wonder what is the reason of having such a system. This all about trust. Once you type your favorite site, www.facebook

Name Based Virtual Hosting in apache2

In name based virtual hosting we run several web sites in one IP address.To do that request from browser should come in HTTP/1.1 protocol. To demonstrate this process I used this scenario. Imagine we have three web sites called as www.bict,lk , www.ucsc.lk and www.scs.lk. And our apache server runs in 192.168.1.1IP address and 8080 port. Following document roots are used. www.bict.lk    /var/opt/www.bict.lk/htdocs www.ucsc.lk   /var/opt/www.ucsc.lk/htdocs www.scs.lk   /var/opt/www.scs.lk/htdocs In an each htdocs directory you should create separate index.html files. note : You can change those document root in /etc/apache/sites-available/default file. And it has default document root as /var/www . To edit that use $ vi /etc/apache/sites-available/default    command. There should be a index files (index.html) relevant to each web site. To make easy understand I explain this step by step . step 1.      Edit the ports.conf file     $vi /etc/apache2/ports.conf     In thi