Apache Webserver

NETCRAFT survey says 65% of all web servers are running apache , netcraft is a cool website where you can locate various websites and tells you which operating systems and  webserver it is using.this documentation was written for Apache webserver on CentOS but usefull for different versions from apache 2.0

main packages of apache : httpd , httpd-devel , httpd-manual ,

Apache is typically installed with CentOS by default

To check the installed packages

rpm – rpm -q httpd

yum – yum list | grep httpd*

manual Apache starting,stoping & reloading

/etc/rc.d/init.d/httpd start                or           service httpd start

/etc/rc.d/init.d/httpd restart             or           service httpd restart

/etc/rc.d/init.d/httpd reload             or           service httpd reload

automatic starting & stoping on boot

chkconfig command quires and updates the services at runlevels

syntax : chkconfig –list <service>

syantx : chkconfig –level <levels> <on|off>

example for apache : chkconfig –list httpd (shows the list of all runlevels where this service is set to on or off )

example for apache : chkconfig –level 35 httpd on ( set automatic start for httpd on runlevels 3 & 5)

SAMPLE MAIN APACHE CONFIGURATION FILE (httpd.conf) :

1 #
2 # This is the main Apache server configuration file. It contains the
3 # configuration directives that give the server its instructions.
4 # See for detailed information.
5 # In particular, see
6 #
7 # for a discussion of each configuration directive.
8 #
9 #
10 # Do NOT simply read the instructions in here without understanding
11 # what they do. They’re here only as hints or reminders. If you are unsure
12 # consult the online docs. You have been warned.
13 #
14 # The configuration directives are grouped into three basic sections:
15 # 1. Directives that control the operation of the Apache server process as a
16 # whole (the ‘global environment’).
17 # 2. Directives that define the parameters of the ‘main’ or ‘default’ server,
18 # which responds to requests that aren’t handled by a virtual host.
19 # These directives also provide default values for the settings
20 # of all virtual hosts.
21 # 3. Settings for virtual hosts, which allow Web requests to be sent to
22 # different IP addresses or hostnames and have them handled by the
23 # same Apache server process.
24 #
25 # Configuration and logfile names: If the filenames you specify for many
26 # of the server’s control files begin with “/” (or “drive:/” for Win32), the
27 # server will use that explicit path. If the filenames do *not* begin
28 # with “/”, the value of ServerRoot is prepended — so “logs/foo.log”
29 # with ServerRoot set to “/etc/httpd” will be interpreted by the
30 # server as “/etc/httpd/logs/foo.log”.
31 #
32
33 ### Section 1: Global Environment
34 #
35 # The directives in this section affect the overall operation of Apache,
36 # such as the number of concurrent requests it can handle or where it
37 # can find its configuration files.
38 #
39
40 #
41 # Don’t give away too much information about all the subcomponents
42 # we are running. Comment out this line if you don’t mind remote sites
43 # finding out what major optional modules you are running
44 ServerTokens OS
45
46 #
47 # ServerRoot: The top of the directory tree under which the server’s
48 # configuration, error, and log files are kept.
49 #
50 # NOTE! If you intend to place this on an NFS (or otherwise network)
51 # mounted filesystem then please read the LockFile documentation
52 # (available at );
53 # you will save yourself a lot of trouble.
54 #
55 # Do NOT add a slash at the end of the directory path.
56 #
57 ServerRoot “/etc/httpd”
58
59 #
60 # PidFile: The file in which the server should record its process
61 # identification number when it starts.
62 #
63 PidFile run/httpd.pid
64
65 #
66 # Timeout: The number of seconds before receives and sends time out.
67 #
68 Timeout 120
69
70 #
71 # KeepAlive: Whether or not to allow persistent connections (more than
72 # one request per connection). Set to “Off” to deactivate.
73 #
74 KeepAlive Off
75
76 #
77 # MaxKeepAliveRequests: The maximum number of requests to allow
78 # during a persistent connection. Set to 0 to allow an unlimited amount.
79 # We recommend you leave this number high, for maximum performance.
80 #
81 MaxKeepAliveRequests 100
82
83 #
84 # KeepAliveTimeout: Number of seconds to wait for the next request from the
85 # same client on the same connection.
86 #
87 KeepAliveTimeout 15
88
89 ##
90 ## Server-Pool Size Regulation (MPM specific)
91 ##
92
93 # prefork MPM
94 # StartServers: number of server processes to start
95 # MinSpareServers: minimum number of server processes which are kept spare
96 # MaxSpareServers: maximum number of server processes which are kept spare
97 # ServerLimit: maximum value for MaxClients for the lifetime of the server
98 # MaxClients: maximum number of server processes allowed to start
99 # MaxRequestsPerChild: maximum number of requests a server process serves
100
101 StartServers 8
102 MinSpareServers 5
103 MaxSpareServers 20
104 ServerLimit 256
105 MaxClients 256
106 MaxRequestsPerChild 4000
107
108
109 # worker MPM
110 # StartServers: initial number of server processes to start
111 # MaxClients: maximum number of simultaneous client connections
112 # MinSpareThreads: minimum number of worker threads which are kept spare
113 # MaxSpareThreads: maximum number of worker threads which are kept spare
114 # ThreadsPerChild: constant number of worker threads in each server process
115 # MaxRequestsPerChild: maximum number of requests a server process serves
116
117 StartServers 2
118 MaxClients 150
119 MinSpareThreads 25
120 MaxSpareThreads 75
121 ThreadsPerChild 25
122 MaxRequestsPerChild 0
123
124
125 #
126 # Listen: Allows you to bind Apache to specific IP addresses and/or
127 # ports, in addition to the default. See also the
128 # directive.
129 #
130 # Change this to Listen on specific IP addresses as shown below to
131 # prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
132 #
133 #Listen 12.34.56.78:80
134 Listen 80
135
136 #
137 # Dynamic Shared Object (DSO) Support
138 #
139 # To be able to use the functionality of a module which was built as a DSO you
140 # have to place corresponding `LoadModule’ lines at this location so the
141 # directives contained in it are actually available _before_ they are used.
142 # Statically compiled modules (those listed by `httpd -l’) do not need
143 # to be loaded here.
144 #
145 # Example:
146 # LoadModule foo_module modules/mod_foo.so
147 #
148 LoadModule auth_basic_module modules/mod_auth_basic.so
149 LoadModule auth_digest_module modules/mod_auth_digest.so
150 LoadModule authn_file_module modules/mod_authn_file.so
151 LoadModule authn_alias_module modules/mod_authn_alias.so
152 LoadModule authn_anon_module modules/mod_authn_anon.so
153 LoadModule authn_dbm_module modules/mod_authn_dbm.so
154 LoadModule authn_default_module modules/mod_authn_default.so
155 LoadModule authz_host_module modules/mod_authz_host.so
156 LoadModule authz_user_module modules/mod_authz_user.so
157 LoadModule authz_owner_module modules/mod_authz_owner.so
158 LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
159 LoadModule authz_dbm_module modules/mod_authz_dbm.so
160 LoadModule authz_default_module modules/mod_authz_default.so
161 LoadModule ldap_module modules/mod_ldap.so
162 LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
163 LoadModule include_module modules/mod_include.so
164 LoadModule log_config_module modules/mod_log_config.so
165 LoadModule logio_module modules/mod_logio.so
166 LoadModule env_module modules/mod_env.so
167 LoadModule ext_filter_module modules/mod_ext_filter.so
168 LoadModule mime_magic_module modules/mod_mime_magic.so
169 LoadModule expires_module modules/mod_expires.so
170 LoadModule deflate_module modules/mod_deflate.so
171 LoadModule headers_module modules/mod_headers.so
172 LoadModule usertrack_module modules/mod_usertrack.so
173 LoadModule setenvif_module modules/mod_setenvif.so
174 LoadModule mime_module modules/mod_mime.so
175 LoadModule dav_module modules/mod_dav.so
176 LoadModule status_module modules/mod_status.so
177 LoadModule autoindex_module modules/mod_autoindex.so
178 LoadModule info_module modules/mod_info.so
179 LoadModule dav_fs_module modules/mod_dav_fs.so
180 LoadModule vhost_alias_module modules/mod_vhost_alias.so
181 LoadModule negotiation_module modules/mod_negotiation.so
182 LoadModule dir_module modules/mod_dir.so
183 LoadModule actions_module modules/mod_actions.so
184 LoadModule speling_module modules/mod_speling.so
185 LoadModule userdir_module modules/mod_userdir.so
186 LoadModule alias_module modules/mod_alias.so
187 LoadModule rewrite_module modules/mod_rewrite.so
188 LoadModule proxy_module modules/mod_proxy.so
189 LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
190 LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
191 LoadModule proxy_http_module modules/mod_proxy_http.so
192 LoadModule proxy_connect_module modules/mod_proxy_connect.so
193 LoadModule cache_module modules/mod_cache.so
194 LoadModule suexec_module modules/mod_suexec.so
195 LoadModule disk_cache_module modules/mod_disk_cache.so
196 LoadModule file_cache_module modules/mod_file_cache.so
197 LoadModule mem_cache_module modules/mod_mem_cache.so
198 LoadModule cgi_module modules/mod_cgi.so
199 LoadModule version_module modules/mod_version.so
200
201 #
202 # The following modules are not loaded by default:
203 #
204 #LoadModule cern_meta_module modules/mod_cern_meta.so
205 #LoadModule asis_module modules/mod_asis.so
206
207 #
208 # Load config files from the config directory “/etc/httpd/conf.d”.
209 #
210 Include conf.d/*.conf
211
212 #
213 # ExtendedStatus controls whether Apache will generate “full” status
214 # information (ExtendedStatus On) or just basic information (ExtendedStatus
215 # Off) when the “server-status” handler is called. The default is Off.
216 #
217 #ExtendedStatus On
218
219 #
220 # If you wish httpd to run as a different user or group, you must run
221 # httpd as root initially and it will switch.
222 #
223 # User/Group: The name (or #number) of the user/group to run httpd as.
224 # . On SCO (ODT 3) use “User nouser” and “Group nogroup”.
225 # . On HPUX you may not be able to use shared memory as nobody, and the
226 # suggested workaround is to create a user www and use that user.
227 # NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
228 # when the value of (unsigned)Group is above 60000;
229 # don’t use Group #-1 on these systems!
230 #
231 User apache
232 Group apache
233
234 ### Section 2: ‘Main’ server configuration
235 #
236 # The directives in this section set up the values used by the ‘main’
237 # server, which responds to any requests that aren’t handled by a
238 # definition. These values also provide defaults for
239 # any containers you may define later in the file.
240 #
241 # All of these directives may appear inside containers,
242 # in which case these default settings will be overridden for the
243 # virtual host being defined.
244 #
245
246 #
247 # ServerAdmin: Your address, where problems with the server should be
248 # e-mailed. This address appears on some server-generated pages, such
249 # as error documents. e.g. admin@your-domain.com
250 #
251 ServerAdmin root@localhost
252
253 #
254 # ServerName gives the name and port that the server uses to identify itself.
255 # This can often be determined automatically, but we recommend you specify
256 # it explicitly to prevent problems during startup.
257 #
258 # If this is not set to valid DNS name for your host, server-generated
259 # redirections will not work. See also the UseCanonicalName directive.
260 #
261 # If your host doesn’t have a registered DNS name, enter its IP address here.
262 # You will have to access it by its address anyway, and this will make
263 # redirections work in a sensible way.
264 #
265 #ServerName http://www.example.com:80
266
267 #
268 # UseCanonicalName: Determines how Apache constructs self-referencing
269 # URLs and the SERVER_NAME and SERVER_PORT variables.
270 # When set “Off”, Apache will use the Hostname and Port supplied
271 # by the client. When set “On”, Apache will use the value of the
272 # ServerName directive.
273 #
274 UseCanonicalName Off
275
276 #
277 # DocumentRoot: The directory out of which you will serve your
278 # documents. By default, all requests are taken from this directory, but
279 # symbolic links and aliases may be used to point to other locations.
280 #
281 DocumentRoot “/var/www/html”
282
283 #
284 # Each directory to which Apache has access can be configured with respect
285 # to which services and features are allowed and/or disabled in that
286 # directory (and its subdirectories).
287 #
288 # First, we configure the “default” to be a very restrictive set of
289 # features.
290 #
291
292 Options FollowSymLinks
293 AllowOverride None
294
295
296 #
297 # Note that from this point forward you must specifically allow
298 # particular features to be enabled – so if something’s not working as
299 # you might expect, make sure that you have specifically enabled it
300 # below.
301 #
302
303 #
304 # This should be changed to whatever you set DocumentRoot to.
305 #
306
307
308 #
309 # Possible values for the Options directive are “None”, “All”,
310 # or any combination of:
311 # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
312 #
313 # Note that “MultiViews” must be named *explicitly* — “Options All”
314 # doesn’t give it to you.
315 #
316 # The Options directive is both complicated and important. Please see
317 # http://httpd.apache.org/docs/2.2/mod/core.html#options
318 # for more information.
319 #
320 Options Indexes FollowSymLinks
321
322 #
323 # AllowOverride controls what directives may be placed in .htaccess files.
324 # It can be “All”, “None”, or any combination of the keywords:
325 # Options FileInfo AuthConfig Limit
326 #
327 AllowOverride None
328
329 #
330 # Controls who can get stuff from this server.
331 #
332 Order allow,deny
333 Allow from all
334
335
336
337 #
338 # UserDir: The name of the directory that is appended onto a user’s home
339 # directory if a ~user request is received.
340 #
341 # The path to the end user account ‘public_html’ directory must be
342 # accessible to the webserver userid. This usually means that ~userid
343 # must have permissions of 711, ~userid/public_html must have permissions
344 # of 755, and documents contained therein must be world-readable.
345 # Otherwise, the client will only receive a “403 Forbidden” message.
346 #
347 # See also: http://httpd.apache.org/docs/misc/FAQ.html#forbidden
348 #
349
350 #
351 # UserDir is disabled by default since it can confirm the presence
352 # of a username on the system (depending on home directory
353 # permissions).
354 #
355 UserDir disable
356
357 #
358 # To enable requests to /~user/ to serve the user’s public_html
359 # directory, remove the “UserDir disable” line above, and uncomment
360 # the following line instead:
361 #
362 #UserDir public_html
363
364
365
366 #
367 # Control access to UserDir directories. The following is an example
368 # for a site where these directories are restricted to read-only.
369 #
370 #
371 # AllowOverride FileInfo AuthConfig Limit
372 # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
373 #
374 # Order allow,deny
375 # Allow from all
376 #
377 #
378 # Order deny,allow
379 # Deny from all
380 #
381 #
382
383 #
384 # DirectoryIndex: sets the file that Apache will serve if a directory
385 # is requested.
386 #
387 # The index.html.var file (a type-map) is used to deliver content-
388 # negotiated documents. The MultiViews Option can be used for the
389 # same purpose, but it is much slower.
390 #
391 DirectoryIndex index.html index.html.var
392
393 #
394 # AccessFileName: The name of the file to look for in each directory
395 # for additional configuration directives. See also the AllowOverride
396 # directive.
397 #
398 AccessFileName .htaccess
399
400 #
401 # The following lines prevent .htaccess and .htpasswd files from being
402 # viewed by Web clients.
403 #
404
405 Order allow,deny
406 Deny from all
407
408
409 #
410 # TypesConfig describes where the mime.types file (or equivalent) is
411 # to be found.
412 #
413 TypesConfig /etc/mime.types
414
415 #
416 # DefaultType is the default MIME type the server will use for a document
417 # if it cannot otherwise determine one, such as from filename extensions.
418 # If your server contains mostly text or HTML documents, “text/plain” is
419 # a good value. If most of your content is binary, such as applications
420 # or images, you may want to use “application/octet-stream” instead to
421 # keep browsers from trying to display binary files as though they are
422 # text.
423 #
424 DefaultType text/plain
425
426 #
427 # The mod_mime_magic module allows the server to use various hints from the
428 # contents of the file itself to determine its type. The MIMEMagicFile
429 # directive tells the module where the hint definitions are located.
430 #
431
432 # MIMEMagicFile /usr/share/magic.mime
433 MIMEMagicFile conf/magic
434
435
436 #
437 # HostnameLookups: Log the names of clients or just their IP addresses
438 # e.g., http://www.apache.org (on) or 204.62.129.132 (off).
439 # The default is off because it’d be overall better for the net if people
440 # had to knowingly turn this feature on, since enabling it means that
441 # each client request will result in AT LEAST one lookup request to the
442 # nameserver.
443 #
444 HostnameLookups Off
445
446 #
447 # EnableMMAP: Control whether memory-mapping is used to deliver
448 # files (assuming that the underlying OS supports it).
449 # The default is on; turn this off if you serve from NFS-mounted
450 # filesystems. On some systems, turning it off (regardless of
451 # filesystem) can improve performance; for details, please see
452 # http://httpd.apache.org/docs/2.2/mod/core.html#enablemmap
453 #
454 #EnableMMAP off
455
456 #
457 # EnableSendfile: Control whether the sendfile kernel support is
458 # used to deliver files (assuming that the OS supports it).
459 # The default is on; turn this off if you serve from NFS-mounted
460 # filesystems. Please see
461 # http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfile
462 #
463 #EnableSendfile off
464
465 #
466 # ErrorLog: The location of the error log file.
467 # If you do not specify an ErrorLog directive within a
468 # container, error messages relating to that virtual host will be
469 # logged here. If you *do* define an error logfile for a
470 # container, that host’s errors will be logged there and not here.
471 #
472 ErrorLog logs/error_log
473
474 #
475 # LogLevel: Control the number of messages logged to the error_log.
476 # Possible values include: debug, info, notice, warn, error, crit,
477 # alert, emerg.
478 #
479 LogLevel warn
480
481 #
482 # The following directives define some format nicknames for use with
483 # a CustomLog directive (see below).
484 #
485 LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i”” combined
486 LogFormat “%h %l %u %t “%r” %>s %b” common
487 LogFormat “%{Referer}i -> %U” referer
488 LogFormat “%{User-agent}i” agent
489
490 # “combinedio” includes actual counts of actual bytes received (%I) and sent (%O); this
491 # requires the mod_logio module to be loaded.
492 #LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i” %I %O” combinedio
493
494 #
495 # The location and format of the access logfile (Common Logfile Format).
496 # If you do not define any access logfiles within a
497 # container, they will be logged here. Contrariwise, if you *do*
498 # define per- access logfiles, transactions will be
499 # logged therein and *not* in this file.
500 #
501 #CustomLog logs/access_log common
502
503 #
504 # If you would like to have separate agent and referer logfiles, uncomment
505 # the following directives.
506 #
507 #CustomLog logs/referer_log referer
508 #CustomLog logs/agent_log agent
509
510 #
511 # For a single logfile with access, agent, and referer information
512 # (Combined Logfile Format), use the following directive:
513 #
514 CustomLog logs/access_log combined
515
516 #
517 # Optionally add a line containing the server version and virtual host
518 # name to server-generated pages (internal error documents, FTP directory
519 # listings, mod_status and mod_info output etc., but not CGI generated
520 # documents or custom error documents).
521 # Set to “EMail” to also include a mailto: link to the ServerAdmin.
522 # Set to one of: On | Off | EMail
523 #
524 ServerSignature On
525
526 #
527 # Aliases: Add here as many aliases as you need (with no limit). The format is
528 # Alias fakename realname
529 #
530 # Note that if you include a trailing / on fakename then the server will
531 # require it to be present in the URL. So “/icons” isn’t aliased in this
532 # example, only “/icons/”. If the fakename is slash-terminated, then the
533 # realname must also be slash terminated, and if the fakename omits the
534 # trailing slash, the realname must also omit it.
535 #
536 # We include the /icons/ alias for FancyIndexed directory listings. If you
537 # do not use FancyIndexing, you may comment this out.
538 #
539 Alias /icons/ “/var/www/icons/”
540
541
542 Options Indexes MultiViews
543 AllowOverride None
544 Order allow,deny
545 Allow from all
546
547
548 #
549 # WebDAV module configuration section.
550 #
551
552 # Location of the WebDAV lock database.
553 DAVLockDB /var/lib/dav/lockdb
554
555
556 #
557 # ScriptAlias: This controls which directories contain server scripts.
558 # ScriptAliases are essentially the same as Aliases, except that
559 # documents in the realname directory are treated as applications and
560 # run by the server when requested rather than as documents sent to the client.
561 # The same rules about trailing “/” apply to ScriptAlias directives as to
562 # Alias.
563 #
564 ScriptAlias /cgi-bin/ “/var/www/cgi-bin/”
565
566 #
567 # “/var/www/cgi-bin” should be changed to whatever your ScriptAliased
568 # CGI directory exists, if you have that configured.
569 #
570
571 AllowOverride None
572 Options None
573 Order allow,deny
574 Allow from all
575
576
577 #
578 # Redirect allows you to tell clients about documents which used to exist in
579 # your server’s namespace, but do not anymore. This allows you to tell the
580 # clients where to look for the relocated document.
581 # Example:
582 # Redirect permanent /foo http://www.example.com/bar
583
584 #
585 # Directives controlling the display of server-generated directory listings.
586 #
587
588 #
589 # IndexOptions: Controls the appearance of server-generated directory
590 # listings.
591 #
592 IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable
593
594 #
595 # AddIcon* directives tell the server which icon to show for different
596 # files or filename extensions. These are only displayed for
597 # FancyIndexed directories.
598 #
599 AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
600
601 AddIconByType (TXT,/icons/text.gif) text/*
602 AddIconByType (IMG,/icons/image2.gif) image/*
603 AddIconByType (SND,/icons/sound2.gif) audio/*
604 AddIconByType (VID,/icons/movie.gif) video/*
605
606 AddIcon /icons/binary.gif .bin .exe
607 AddIcon /icons/binhex.gif .hqx
608 AddIcon /icons/tar.gif .tar
609 AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
610 AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
611 AddIcon /icons/a.gif .ps .ai .eps
612 AddIcon /icons/layout.gif .html .shtml .htm .pdf
613 AddIcon /icons/text.gif .txt
614 AddIcon /icons/c.gif .c
615 AddIcon /icons/p.gif .pl .py
616 AddIcon /icons/f.gif .for
617 AddIcon /icons/dvi.gif .dvi
618 AddIcon /icons/uuencoded.gif .uu
619 AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
620 AddIcon /icons/tex.gif .tex
621 AddIcon /icons/bomb.gif core
622
623 AddIcon /icons/back.gif ..
624 AddIcon /icons/hand.right.gif README
625 AddIcon /icons/folder.gif ^^DIRECTORY^^
626 AddIcon /icons/blank.gif ^^BLANKICON^^
627
628 #
629 # DefaultIcon is which icon to show for files which do not have an icon
630 # explicitly set.
631 #
632 DefaultIcon /icons/unknown.gif
633
634 #
635 # AddDescription allows you to place a short description after a file in
636 # server-generated indexes. These are only displayed for FancyIndexed
637 # directories.
638 # Format: AddDescription “description” filename
639 #
640 #AddDescription “GZIP compressed document” .gz
641 #AddDescription “tar archive” .tar
642 #AddDescription “GZIP compressed tar archive” .tgz
643
644 #
645 # ReadmeName is the name of the README file the server will look for by
646 # default, and append to directory listings.
647 #
648 # HeaderName is the name of a file which should be prepended to
649 # directory indexes.
650 ReadmeName README.html
651 HeaderName HEADER.html
652
653 #
654 # IndexIgnore is a set of filenames which directory indexing should ignore
655 # and not include in the listing. Shell-style wildcarding is permitted.
656 #
657 IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
658
659 #
660 # DefaultLanguage and AddLanguage allows you to specify the language of
661 # a document. You can then use content negotiation to give a browser a
662 # file in a language the user can understand.
663 #
664 # Specify a default language. This means that all data
665 # going out without a specific language tag (see below) will
666 # be marked with this one. You probably do NOT want to set
667 # this unless you are sure it is correct for all cases.
668 #
669 # * It is generally better to not mark a page as
670 # * being a certain language than marking it with the wrong
671 # * language!
672 #
673 # DefaultLanguage nl
674 #
675 # Note 1: The suffix does not have to be the same as the language
676 # keyword — those with documents in Polish (whose net-standard
677 # language code is pl) may wish to use “AddLanguage pl .po” to
678 # avoid the ambiguity with the common suffix for perl scripts.
679 #
680 # Note 2: The example entries below illustrate that in some cases
681 # the two character ‘Language’ abbreviation is not identical to
682 # the two character ‘Country’ code for its country,
683 # E.g. ‘Danmark/dk’ versus ‘Danish/da’.
684 #
685 # Note 3: In the case of ‘ltz’ we violate the RFC by using a three char
686 # specifier. There is ‘work in progress’ to fix this and get
687 # the reference data for rfc1766 cleaned up.
688 #
689 # Catalan (ca) – Croatian (hr) – Czech (cs) – Danish (da) – Dutch (nl)
690 # English (en) – Esperanto (eo) – Estonian (et) – French (fr) – German (de)
691 # Greek-Modern (el) – Hebrew (he) – Italian (it) – Japanese (ja)
692 # Korean (ko) – Luxembourgeois* (ltz) – Norwegian Nynorsk (nn)
693 # Norwegian (no) – Polish (pl) – Portugese (pt)
694 # Brazilian Portuguese (pt-BR) – Russian (ru) – Swedish (sv)
695 # Simplified Chinese (zh-CN) – Spanish (es) – Traditional Chinese (zh-TW)
696 #
697 AddLanguage ca .ca
698 AddLanguage cs .cz .cs
699 AddLanguage da .dk
700 AddLanguage de .de
701 AddLanguage el .el
702 AddLanguage en .en
703 AddLanguage eo .eo
704 AddLanguage es .es
705 AddLanguage et .et
706 AddLanguage fr .fr
707 AddLanguage he .he
708 AddLanguage hr .hr
709 AddLanguage it .it
710 AddLanguage ja .ja
711 AddLanguage ko .ko
712 AddLanguage ltz .ltz
713 AddLanguage nl .nl
714 AddLanguage nn .nn
715 AddLanguage no .no
716 AddLanguage pl .po
717 AddLanguage pt .pt
718 AddLanguage pt-BR .pt-br
719 AddLanguage ru .ru
720 AddLanguage sv .sv
721 AddLanguage zh-CN .zh-cn
722 AddLanguage zh-TW .zh-tw
723
724 #
725 # LanguagePriority allows you to give precedence to some languages
726 # in case of a tie during content negotiation.
727 #
728 # Just list the languages in decreasing order of preference. We have
729 # more or less alphabetized them here. You probably want to change this.
730 #
731 LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
732
733 #
734 # ForceLanguagePriority allows you to serve a result page rather than
735 # MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback)
736 # [in case no accepted languages matched the available variants]
737 #
738 ForceLanguagePriority Prefer Fallback
739
740 #
741 # Specify a default charset for all content served; this enables
742 # interpretation of all content as UTF-8 by default. To use the
743 # default browser choice (ISO-8859-1), or to allow the META tags
744 # in HTML content to override this choice, comment out this
745 # directive:
746 #
747 AddDefaultCharset UTF-8
748
749 #
750 # AddType allows you to add to or override the MIME configuration
751 # file mime.types for specific file types.
752 #
753 #AddType application/x-tar .tgz
754
755 #
756 # AddEncoding allows you to have certain browsers uncompress
757 # information on the fly. Note: Not all browsers support this.
758 # Despite the name similarity, the following Add* directives have nothing
759 # to do with the FancyIndexing customization directives above.
760 #
761 #AddEncoding x-compress .Z
762 #AddEncoding x-gzip .gz .tgz
763
764 # If the AddEncoding directives above are commented-out, then you
765 # probably should define those extensions to indicate media types:
766 #
767 AddType application/x-compress .Z
768 AddType application/x-gzip .gz .tgz
769
770 #
771 # AddHandler allows you to map certain file extensions to “handlers”:
772 # actions unrelated to filetype. These can be either built into the server
773 # or added with the Action directive (see below)
774 #
775 # To use CGI scripts outside of ScriptAliased directories:
776 # (You will also need to add “ExecCGI” to the “Options” directive.)
777 #
778 #AddHandler cgi-script .cgi
779
780 #
781 # For files that include their own HTTP headers:
782 #
783 #AddHandler send-as-is asis
784
785 #
786 # For type maps (negotiated resources):
787 # (This is enabled by default to allow the Apache “It Worked” page
788 # to be distributed in multiple languages.)
789 #
790 AddHandler type-map var
791
792 #
793 # Filters allow you to process content before it is sent to the client.
794 #
795 # To parse .shtml files for server-side includes (SSI):
796 # (You will also need to add “Includes” to the “Options” directive.)
797 #
798 AddType text/html .shtml
799 AddOutputFilter INCLUDES .shtml
800
801 #
802 # Action lets you define media types that will execute a script whenever
803 # a matching file is called. This eliminates the need for repeated URL
804 # pathnames for oft-used CGI file processors.
805 # Format: Action media/type /cgi-script/location
806 # Format: Action handler-name /cgi-script/location
807 #
808
809 #
810 # Customizable error responses come in three flavors:
811 # 1) plain text 2) local redirects 3) external redirects
812 #
813 # Some examples:
814 #ErrorDocument 500 “The server made a boo boo.”
815 #ErrorDocument 404 /missing.html
816 #ErrorDocument 404 “/cgi-bin/missing_handler.pl”
817 #ErrorDocument 402 http://www.example.com/subscription_info.html
818 #
819
820 #
821 # Putting this all together, we can internationalize error responses.
822 #
823 # We use Alias to redirect any /error/HTTP_.html.var response to
824 # our collection of by-error message multi-language collections. We use
825 # includes to substitute the appropriate text.
826 #
827 # You can modify the messages’ appearance without changing any of the
828 # default HTTP_.html.var files by adding the line:
829 #
830 # Alias /error/include/ “/your/include/path/”
831 #
832 # which allows you to create your own set of files by starting with the
833 # /var/www/error/include/ files and
834 # copying them to /your/include/path/, even on a per-VirtualHost basis.
835 #
836
837 Alias /error/ “/var/www/error/”
838
839
840
841
842 AllowOverride None
843 Options IncludesNoExec
844 AddOutputFilter Includes html
845 AddHandler type-map var
846 Order allow,deny
847 Allow from all
848 LanguagePriority en es de fr
849 ForceLanguagePriority Prefer Fallback
850
851
852 # ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
853 # ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
854 # ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
855 # ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
856 # ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
857 # ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
858 # ErrorDocument 410 /error/HTTP_GONE.html.var
859 # ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
860 # ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
861 # ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
862 # ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
863 # ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
864 # ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
865 # ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
866 # ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
867 # ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
868 # ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
869
870
871
872
873 #
874 # The following directives modify normal HTTP response behavior to
875 # handle known problems with browser implementations.
876 #
877 BrowserMatch “Mozilla/2” nokeepalive
878 BrowserMatch “MSIE 4.0b2;” nokeepalive downgrade-1.0 force-response-1.0
879 BrowserMatch “RealPlayer 4.0” force-response-1.0
880 BrowserMatch “Java/1.0” force-response-1.0
881 BrowserMatch “JDK/1.0” force-response-1.0
882
883 #
884 # The following directive disables redirects on non-GET requests for
885 # a directory that does not include the trailing slash. This fixes a
886 # problem with Microsoft WebFolders which does not appropriately handle
887 # redirects for folders with DAV methods.
888 # Same deal with Apple’s DAV filesystem and Gnome VFS support for DAV.
889 #
890 BrowserMatch “Microsoft Data Access Internet Publishing Provider” redirect-carefully
891 BrowserMatch “MS FrontPage” redirect-carefully
892 BrowserMatch “^WebDrive” redirect-carefully
893 BrowserMatch “^WebDAVFS/1.[0123]” redirect-carefully
894 BrowserMatch “^gnome-vfs/1.0” redirect-carefully
895 BrowserMatch “^XML Spy” redirect-carefully
896 BrowserMatch “^Dreamweaver-WebDAV-SCM1” redirect-carefully
897
898 #
899 # Allow server status reports generated by mod_status,
900 # with the URL of http://servername/server-status
901 # Change the “.example.com” to match your domain to enable.
902 #
903 #
904 # SetHandler server-status
905 # Order deny,allow
906 # Deny from all
907 # Allow from .example.com
908 #
909
910 #
911 # Allow remote server configuration reports, with the URL of
912 # http://servername/server-info (requires that mod_info.c be loaded).
913 # Change the “.example.com” to match your domain to enable.
914 #
915 #
916 # SetHandler server-info
917 # Order deny,allow
918 # Deny from all
919 # Allow from .example.com
920 #
921
922 #
923 # Proxy Server directives. Uncomment the following lines to
924 # enable the proxy server:
925 #
926 #
927 #ProxyRequests On
928 #
929 #
930 # Order deny,allow
931 # Deny from all
932 # Allow from .example.com
933 #
934
935 #
936 # Enable/disable the handling of HTTP/1.1 “Via:” headers.
937 # (“Full” adds the server version; “Block” removes all outgoing Via: headers)
938 # Set to one of: Off | On | Full | Block
939 #
940 #ProxyVia On
941
942 #
943 # To enable a cache of proxied content, uncomment the following lines.
944 # See http://httpd.apache.org/docs/2.2/mod/mod_cache.html for more details.
945 #
946 #
947 # CacheEnable disk /
948 # CacheRoot “/var/cache/mod_proxy”
949 #
950 #
951
952 #
953 # End of proxy directives.
954
955 ### Section 3: Virtual Hosts
956 #
957 # VirtualHost: If you want to maintain multiple domains/hostnames on your
958 # machine you can setup VirtualHost containers for them. Most configurations
959 # use only name-based virtual hosts so the server doesn’t need to worry about
960 # IP addresses. This is indicated by the asterisks in the directives below.
961 #
962 # Please see the documentation at
963 #
964 # for further details before you try to setup virtual hosts.
965 #
966 # You may use the command line option ‘-S’ to verify your virtual host
967 # configuration.
968
969 #
970 # Use name-based virtual hosting.
971 #
972 #NameVirtualHost *:80
973 #
974 # NOTE: NameVirtualHost cannot be used without a port specifier
975 # (e.g. :80) if mod_ssl is being used, due to the nature of the
976 # SSL protocol.
977 #
978
979 #
980 # VirtualHost example:
981 # Almost any Apache directive may go into a VirtualHost container.
982 # The first VirtualHost section is used for requests without a known
983 # server name.
984 #
985 #
986 # ServerAdmin webmaster@dummy-host.example.com
987 # DocumentRoot /www/docs/dummy-host.example.com
988 # ServerName dummy-host.example.com
989 # ErrorLog logs/dummy-host.example.com-error_log
990 # CustomLog logs/dummy-host.example.com-access_log common
991 #

let us go through and understand all the important lines in config file :

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s