The httpd.conf file is the main configuration file of Apache. It rests in “apache-install-dir/conf”
Now lets take a look at some important and useful parameters
This is param sets the default server name, it should generally be the FQDN or the Fully Qualified Domain Name of the machine, or the IP, if the machine doesn’t have any FQDN.
This is a setting which encloses any of the settings for the given directory. So you specify the physical directory as the argument. So if you have a directory as /websites/mywebsite/somedir, you would do the following.
<Directory /websites/mywebsite/somedir> ... your settings ... </Directory>
The AllowOverride allows the user, to override some of the settings by using their own file. This own file is the magical .htaccess file. By default it is set to None, which means the user can’t override the settings by specifying the .htaccess file in the directory. But you can change the AllowOverride None setting to AllowOverride All
This directive takes several options, I’ll explain some them,
Indexes: This allows a directory listing. U must have come accross something like this
FollowSymLinks: This allows apache to follow symbolic links, symbolic links are nothing but links in *nix systems, eg. “files” in /etc/ can point to /files/myfiles/files
You can use both these options at once by
The above setting will allow directory listing but won’t allow Symbolic links. So “+” to apply and “-” to remove the setting
I talked about the magic file .htaccess, This is the place where you specify the name of the file, By default it is “.htaccess”
The . “period” start is to make it a hidden file in *nix systems
To deny files over the web, is the job of the server, in apache, we can do exactly by using the Files directive.
<Files ~ "^\.ht"> Order allow,deny Deny from all Satisfy All </Files>
Note the ~ sign, this is used when you are giving a regular expression to match the files., Once the files are selected, they can be denied by using the Deny directive.
The above regex is to deny all the files that start with a “.ht”
To create access logs, we need to specify the format of the log, and the file path.
First we need to set the LogFormat directive
The most common is the “combined” log, which logs ip, user, time error code, referer and user agent
Note: the log format has been given a name “combined”, feel free to create different formats for your needs and name it accordingly
Then we need to set the filename of the log,
The second parameter of the CustomLog directive which sets the filename of the log is the log format name, that we defined earlier.
When you want to look at the current status of the server, ie whom is it responding to, what pages is it serving, how many servers are running… and so on..
There is no better way than to set server-status
Check the screen shot of it.
To enable it …
<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 192.168.0.84 </Location>
check the configuration, it is allowing only IP 84 to check the stats and others are forbidden. You can set your IP as you wish.
If you want even more info. you can set the Extended status