Apache1.3 (HTTP)

Location of setting files

Apache1.3.rpm
Path
/etc/httpd/conf/access.conf Global access configuration file
/etc/httpd/conf/httpd.conf The main server configuration file
/etc/httpd/conf/magic Magic data for mod_mime_magic Apache module
/etc/httpd/conf/srm.conf Defines server settings

access.conf

  • Global access configuration - /etc/httpd/conf/access.conf
    ##
    ## access.conf -- Apache HTTP server configuration file
    ##
    
    # access.conf: Global access configuration
    # Online docs at http://www.apache.org/
    
    # This file defines server settings which affect which types of services
    # are allowed, and in what circumstances. 
    
    # Each directory to which Apache has access, can be configured with respect
    # to which services and features are allowed and/or disabled in that
    # directory (and its subdirectories). 
    
    # Originally by Rob McCool
    
    # First, we configure the "default" to be a very restrictive set of 
    # permissions.  
    
    <Directory />
    Options None
    AllowOverride None
    Options ExecCGI
    AddHandler cgi-script .cgi
    </Directory>
    
    # Note that from this point forward you must specifically allow
    # particular features to be enabled - so if something's not working as
    # you might expect, make sure that you have specifically enabled it
    # below.
    
    # This should be changed to whatever you set DocumentRoot to.
    
    <Directory /home/httpd/html>
    
    # This may also be "None", "All", or any combination of "Indexes",
    # "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
    
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    
    Options Indexes Includes FollowSymLinks
    
    # This controls which options the .htaccess files in directories can
    # override. Can also be "All", or any combination of "Options", "FileInfo", 
    # "AuthConfig", and "Limit"
    
    AllowOverride None
    
    # Controls who can get stuff from this server.
    
    order allow,deny
    allow from all
    
    </Directory>
    
    # /home/httpd/cgi-bin should be changed to whatever your ScriptAliased
    # CGI directory exists, if you have that configured.
    
    <Directory /home/httpd/cgi-bin>
    AllowOverride None
    Options ExecCGI
    </Directory>
    
    # Allow server status reports, with the URL of http://servername/server-status
    # Change the ".your_domain.com" to match your domain to enable.
    
    #<Location /server-status>
    #SetHandler server-status
    
    #order deny,allow
    #deny from all
    #allow from .your_domain.com
    #</Location>
    
    # There have been reports of people trying to abuse an old bug from pre-1.1
    # days.  This bug involved a CGI script distributed as a part of Apache.
    # By uncommenting these lines you can redirect these attacks to a logging 
    # script on phf.apache.org.  Or, you can record them yourself, using the script
    # support/phf_abuse_log.cgi.
    
    #<Location /cgi-bin/phf*>
    #deny from all
    #ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
    #</Location>
    
    # You may place any other directories or locations you wish to have
    # access information for after this one.
    

    httpd.conf

  • The main server configuration file - /etc/httpd/conf/httpd.conf
    ##
    ## httpd.conf -- Apache HTTP server configuration file
    ##
    
    # This is the main server configuration file. See URL http://www.apache.org/
    # for instructions.
    
    # Do NOT simply read the instructions in here without understanding
    # what they do, if you are unsure consult the online docs. You have been
    # warned.  
    
    # Originally by Rob McCool
    
    # Dynamic Shared Object (DSO) Support
    #
    # To be able to use the functionality of a module which was built as a DSO you
    # have to place corresponding `LoadModule' lines at this location so the
    # directives contained in it are actually available _before_ they are used.
    # Please read the file README.DSO in the Apache 1.3 distribution for more
    # details about the DSO mechanism and run `httpd -l' for the list of already
    # built-in (statically linked and thus always available) modules in your httpd
    # binary.
    #
    # Example:
    # LoadModule foo_module libexec/mod_foo.so
    #
    # Documentation for modules is in "/home/httpd/manual/mod" in HTML format.
    
    #LoadModule mmap_static_module modules/mod_mmap_static.so
    LoadModule env_module         modules/mod_env.so
    LoadModule config_log_module  modules/mod_log_config.so
    LoadModule agent_log_module   modules/mod_log_agent.so
    LoadModule referer_log_module modules/mod_log_referer.so
    #LoadModule mime_magic_module  modules/mod_mime_magic.so
    LoadModule mime_module        modules/mod_mime.so
    LoadModule negotiation_module modules/mod_negotiation.so
    LoadModule status_module      modules/mod_status.so
    LoadModule info_module        modules/mod_info.so
    LoadModule includes_module    modules/mod_include.so
    LoadModule autoindex_module   modules/mod_autoindex.so
    LoadModule dir_module         modules/mod_dir.so
    LoadModule cgi_module         modules/mod_cgi.so
    LoadModule asis_module        modules/mod_asis.so
    LoadModule imap_module        modules/mod_imap.so
    LoadModule action_module      modules/mod_actions.so
    #LoadModule speling_module     modules/mod_speling.so
    LoadModule userdir_module     modules/mod_userdir.so
    LoadModule proxy_module       modules/libproxy.so
    LoadModule alias_module       modules/mod_alias.so
    LoadModule rewrite_module     modules/mod_rewrite.so
    LoadModule access_module      modules/mod_access.so
    LoadModule auth_module        modules/mod_auth.so
    LoadModule anon_auth_module   modules/mod_auth_anon.so
    #LoadModule dbm_auth_module    modules/mod_auth_dbm.so
    LoadModule db_auth_module     modules/mod_auth_db.so
    LoadModule digest_module      modules/mod_digest.so
    #LoadModule cern_meta_module   modules/mod_cern_meta.so
    LoadModule expires_module     modules/mod_expires.so
    LoadModule headers_module     modules/mod_headers.so
    LoadModule usertrack_module   modules/mod_usertrack.so
    #LoadModule example_module     modules/mod_example.so
    #LoadModule unique_id_module   modules/mod_unique_id.so
    LoadModule setenvif_module    modules/mod_setenvif.so
    
    # Extra Modules
    #LoadModule php_module         modules/mod_php.so
    #LoadModule php3_module        modules/libphp3.so
    #LoadModule perl_module        modules/libperl.so
    
    #  Reconstruction of the complete module list from all available modules
    #  (static and shared ones) to achieve correct module execution order.
    #  [WHENEVER YOU CHANGE THE LOADMODULE SECTION ABOVE UPDATE THIS, TOO]
    ClearModuleList
    #AddModule mod_mmap_static.c
    AddModule mod_env.c
    AddModule mod_log_config.c
    AddModule mod_log_agent.c
    AddModule mod_log_referer.c
    #AddModule mod_mime_magic.c
    AddModule mod_mime.c
    AddModule mod_negotiation.c
    AddModule mod_status.c
    AddModule mod_info.c
    AddModule mod_include.c
    AddModule mod_autoindex.c
    AddModule mod_dir.c
    AddModule mod_cgi.c
    AddModule mod_asis.c
    AddModule mod_imap.c
    AddModule mod_actions.c
    #AddModule mod_speling.c
    AddModule mod_userdir.c
    AddModule mod_proxy.c
    AddModule mod_alias.c
    AddModule mod_rewrite.c
    AddModule mod_access.c
    AddModule mod_auth.c
    AddModule mod_auth_anon.c
    #AddModule mod_auth_dbm.c
    AddModule mod_auth_db.c
    AddModule mod_digest.c
    #AddModule mod_cern_meta.c
    AddModule mod_expires.c
    AddModule mod_headers.c
    AddModule mod_usertrack.c
    #AddModule mod_example.c
    #AddModule mod_unique_id.c
    AddModule mod_so.c
    AddModule mod_setenvif.c
    
    # Extra Modules
    #AddModule mod_php.c
    #AddModule mod_php3.c
    #AddModule mod_perl.c
    
    # ServerType is either inetd, or standalone.
    
    ServerType standalone
    
    # If you are running from inetd, go to "ServerAdmin".
    
    # Port: The port the standalone listens to. For ports < 1023, you will
    # need httpd to be run as root initially.
    
    Port 80
    
    # HostnameLookups: Log the names of clients or just their IP numbers
    #   e.g.   www.apache.org (on) or 204.62.129.132 (off)
    # The default is off because it'd be overall better for the net if people
    # had to knowingly turn this feature on.
    
    HostnameLookups off
    
    # If you wish httpd to run as a different user or group, you must run
    # httpd as root initially and it will switch.  
    
    # User/Group: The name (or #number) of the user/group to run httpd as.
    #  On SCO (ODT 3) use User nouser and Group nogroup
    #  On HPUX you may not be able to use shared memory as nobody, and the
    #  suggested workaround is to create a user www and use that user.
    #  NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
    #  when the value of (unsigned)Group is above 60000; 
    #  don't use Group nobody on these systems!
    
    User nobody
    Group nobody
    
    # ServerAdmin: Your address, where problems with the server should be
    # e-mailed.
    
    ServerAdmin root@localhost
    
    # ServerRoot: The directory the server's config, error, and log files
    # are kept in.
    # NOTE!  If you intend to place this on a NFS (or otherwise network)
    # mounted filesystem then please read the LockFile documentation,
    # you will save yourself a lot of trouble.
    
    ServerRoot /etc/httpd
    
    # BindAddress: You can support virtual hosts with this option. This option
    # is used to tell the server which IP address to listen to. It can either
    # contain "*", an IP address, or a fully qualified Internet domain name.
    # See also the VirtualHost directive.
    
    #BindAddress *
    
    # ErrorLog: The location of the error log file. If this does not start
    # with /, ServerRoot is prepended to it.
    
    ErrorLog logs/error_log
    
    # LogLevel: Control the number of messages logged to the error_log.
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    
    LogLevel warn
    
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
    
    # The location of the access logfile (Common Logfile Format).
    # If this does not start with /, ServerRoot is prepended to it.
    
    CustomLog logs/access_log common
    
    # If you would like to have an agent and referer logfile uncomment the
    # following directives.
    
    #CustomLog logs/referer_log referer
    #CustomLog logs/agent_log agent
    
    # If you prefer a single logfile with access, agent and referer information
    # (Combined Logfile Format) you can use the following directive.
    
    #CustomLog logs/access_log combined
    
    # PidFile: The file the server should log its pid to
    PidFile /var/run/httpd.pid
    
    # ScoreBoardFile: File used to store internal server process information.
    # Not all architectures require this.  But if yours does (you'll know because
    # this file is created when you run Apache) then you *must* ensure that
    # no two invocations of Apache share the same scoreboard file.
    ScoreBoardFile /var/run/httpd.scoreboard
    
    # The LockFile directive sets the path to the lockfile used when Apache
    # is compiled with either USE_FCNTL_SERIALIZED_ACCEPT or
    # USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally be left at
    # its default value. The main reason for changing it is if the logs
    # directory is NFS mounted, since the lockfile MUST BE STORED ON A LOCAL
    # DISK. The PID of the main server process is automatically appended to
    # the filename. 
    #
    #LockFile /var/lock/httpd.lock
    
    # ServerName allows you to set a host name which is sent back to clients for
    # your server if it's different than the one the program would get (i.e. use
    # "www" instead of the host's real name).
    #
    # Note: You cannot just invent host names and hope they work. The name you 
    # define here must be a valid DNS name for your host. If you don't understand
    # this, ask your network administrator.
    
    #ServerName new.host.name
    
    # UseCanonicalName:  (new for 1.3)  With this setting turned on, whenever
    # Apache needs to construct a self-referencing URL (a url that refers back
    # to the server the response is coming from) it will use ServerName and
    # Port to form a "canonical" name.  With this setting off, Apache will
    # use the hostname:port that the client supplied, when possible.  This
    # also affects SERVER_NAME and SERVER_PORT in CGIs.
    UseCanonicalName on
    
    # CacheNegotiatedDocs: By default, Apache sends Pragma: no-cache with each
    # document that was negotiated on the basis of content. This asks proxy
    # servers not to cache the document. Uncommenting the following line disables
    # this behavior, and proxies will be allowed to cache the documents.
    
    #CacheNegotiatedDocs
    
    # Timeout: The number of seconds before receives and sends time out
    
    Timeout 300
    
    # KeepAlive: Whether or not to allow persistent connections (more than
    # one request per connection). Set to "Off" to deactivate.
    
    KeepAlive On
    
    # MaxKeepAliveRequests: The maximum number of requests to allow
    # during a persistent connection. Set to 0 to allow an unlimited amount.
    # We reccomend you leave this number high, for maximum performance.
    
    MaxKeepAliveRequests 100
    
    # KeepAliveTimeout: Number of seconds to wait for the next request
    
    KeepAliveTimeout 15
    
    # Server-pool size regulation.  Rather than making you guess how many
    # server processes you need, Apache dynamically adapts to the load it
    # sees --- that is, it tries to maintain enough server processes to
    # handle the current load, plus a few spare servers to handle transient
    # load spikes (e.g., multiple simultaneous requests from a single
    # Netscape browser).
    
    # It does this by periodically checking how many servers are waiting
    # for a request.  If there are fewer than MinSpareServers, it creates
    # a new spare.  If there are more than MaxSpareServers, some of the
    # spares die off.  These values are probably OK for most sites ---
    
    MinSpareServers 8
    MaxSpareServers 20
    
    # Number of servers to start --- should be a reasonable ballpark figure.
    
    StartServers 10
    
    # Limit on total number of servers running, i.e., limit on the number
    # of clients who can simultaneously connect --- if this limit is ever
    # reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW.
    # It is intended mainly as a brake to keep a runaway server from taking
    # Unix with it as it spirals down...
    
    MaxClients 150
    
    # MaxRequestsPerChild: the number of requests each child process is
    #  allowed to process before the child dies.
    #  The child will exit so as to avoid problems after prolonged use when
    #  Apache (and maybe the libraries it uses) leak.  On most systems, this
    #  isn't really needed, but a few (such as Solaris) do have notable leaks
    #  in the libraries.
    
    MaxRequestsPerChild 100
    
    # Proxy Server directives. Uncomment the following line to
    # enable the proxy server:
    
    #ProxyRequests On
    
    # To enable the cache as well, edit and uncomment the following lines:
    
    #CacheRoot /var/cache/httpd
    #CacheSize 5
    #CacheGcInterval 4
    #CacheMaxExpire 24
    #CacheLastModifiedFactor 0.1
    #CacheDefaultExpire 1
    #NoCache a_domain.com another_domain.edu joes.garage_sale.com
    
    # Listen: Allows you to bind Apache to specific IP addresses and/or
    # ports, in addition to the default. See also the VirtualHost command
    
    #Listen 3000
    #Listen 12.34.56.78:80
    
    # VirtualHost: Allows the daemon to respond to requests for more than one
    # server address, if your server machine is configured to accept IP packets
    # for multiple addresses. This can be accomplished with the ifconfig 
    # alias flag, or through kernel patches like VIF.
    
    # Any httpd.conf or srm.conf directive may go into a VirtualHost command.
    # See also the BindAddress entry.
     
    #<VirtualHost host.some_domain.com>
    #ServerAdmin webmaster@host.some_domain.com
    #DocumentRoot /www/docs/host.some_domain.com
    #ServerName host.some_domain.com
    #ErrorLog logs/host.some_domain.com-error_log
    #TransferLog logs/host.some_domain.com-access_log
    #</VirtualHost>
    

    magic

  • Magic data for mod_mime_magic Apache module - /etc/httpd/conf/magic
    # Magic data for mod_mime_magic Apache module (originally for file(1) command)
    # The module is described in htdocs/manual/mod/mod_mime_magic.html
    #
    # The format is 4-5 columns:
    #    Column #1: byte number to begin checking from, ">" indicates continuation
    #    Column #2: type of data to match
    #    Column #3: contents of data to match
    #    Column #4: MIME type of result
    #    Column #5: MIME encoding of result (optional)
    
    #------------------------------------------------------------------------------
    # Localstuff:  file(1) magic for locally observed files
    # Add any locally observed files here.
    
    #------------------------------------------------------------------------------
    # end local stuff
    #------------------------------------------------------------------------------
    
    #------------------------------------------------------------------------------
    # Java
    
    0	short		0xcafe
    >2	short		0xbabe		application/java
    
    #------------------------------------------------------------------------------
    # audio:  file(1) magic for sound formats
    #
    # from Jan Nicolai Langfeldt <janl@ifi.uio.no>,
    #
    
    # Sun/NeXT audio data
    0	string		.snd
    >12	belong		1		audio/basic
    >12	belong		2		audio/basic
    >12	belong		3		audio/basic
    >12	belong		4		audio/basic
    >12	belong		5		audio/basic
    >12	belong		6		audio/basic
    >12	belong		7		audio/basic
    
    >12	belong		23		audio/x-adpcm
    
    # DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
    # that uses little-endian encoding and has a different magic number
    # (0x0064732E in little-endian encoding).
    0	lelong		0x0064732E	
    >12	lelong		1		audio/x-dec-basic
    >12	lelong		2		audio/x-dec-basic
    >12	lelong		3		audio/x-dec-basic
    >12	lelong		4		audio/x-dec-basic
    >12	lelong		5		audio/x-dec-basic
    >12	lelong		6		audio/x-dec-basic
    >12	lelong		7		audio/x-dec-basic
    #                                       compressed (G.721 ADPCM)
    >12	lelong		23		audio/x-dec-adpcm
    
    # Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM"
    #					AIFF audio data
    8	string		AIFF		audio/x-aiff	
    #					AIFF-C audio data
    8	string		AIFC		audio/x-aiff	
    #					IFF/8SVX audio data
    8	string		8SVX		audio/x-aiff	
    
    # Creative Labs AUDIO stuff
    #					Standard MIDI data
    0	string	MThd			audio/unknown	
    #>9 	byte	>0			(format %d)
    #>11	byte	>1			using %d channels
    #					Creative Music (CMF) data
    0	string	CTMF			audio/unknown	
    #					SoundBlaster instrument data
    0	string	SBI			audio/unknown	
    #					Creative Labs voice data
    0	string	Creative\ Voice\ File	audio/unknown	
    ## is this next line right?  it came this way...
    #>19	byte	0x1A
    #>23	byte	>0			- version %d
    #>22	byte	>0			\b.%d
    
    # [GRR 950115:  is this also Creative Labs?  Guessing that first line
    #  should be string instead of unknown-endian long...]
    #0	long		0x4e54524b	MultiTrack sound data
    #0	string		NTRK		MultiTrack sound data
    #>4	long		x		- version %ld
    
    # Microsoft WAVE format (*.wav)
    # [GRR 950115:  probably all of the shorts and longs should be leshort/lelong]
    #					Microsoft RIFF
    0	string		RIFF		audio/unknown	
    #					- WAVE format
    >8	string		WAVE		audio/x-wav	
    
    #------------------------------------------------------------------------------
    # c-lang:  file(1) magic for C programs or various scripts
    #
    
    # XPM icons (Greg Roelofs, newt@uchicago.edu)
    # ideally should go into "images", but entries below would tag XPM as C source
    0	string		/*\ XPM		image/x-xbm	7bit
    
    # this first will upset you if you're a PL/1 shop... (are there any left?)
    # in which case rm it; ascmagic will catch real C programs
    #					C or REXX program text
    0	string		/*		text/plain
    #					C++ program text
    0	string		//		text/plain
    
    #------------------------------------------------------------------------------
    # compress:  file(1) magic for pure-compression formats (no archives)
    #
    # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc.
    #
    # Formats for various forms of compressed data
    # Formats for "compress" proper have been moved into "compress.c",
    # because it tries to uncompress it to figure out what's inside.
    
    # standard unix compress
    0	string		\037\235	application/octet-stream	x-compress
    
    # gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver)
    0       string          \037\213        application/octet-stream	x-gzip
    
    # According to gzip.h, this is the correct byte order for packed data.
    0	string		\037\036	application/octet-stream
    #
    # This magic number is byte-order-independent.
    #
    0	short		017437		application/octet-stream
    
    # XXX - why *two* entries for "compacted data", one of which is
    # byte-order independent, and one of which is byte-order dependent?
    #
    # compacted data
    0	short		0x1fff		application/octet-stream
    0	string		\377\037	application/octet-stream
    # huf output
    0	short		0145405		application/octet-stream
    
    # Squeeze and Crunch...
    # These numbers were gleaned from the Unix versions of the programs to
    # handle these formats.  Note that I can only uncrunch, not crunch, and
    # I didn't have a crunched file handy, so the crunch number is untested.
    #				Keith Waclena <keith@cerberus.uchicago.edu>
    #0	leshort		0x76FF		squeezed data (CP/M, DOS)
    #0	leshort		0x76FE		crunched data (CP/M, DOS)
    
    # Freeze
    #0	string		\037\237	Frozen file 2.1
    #0	string		\037\236	Frozen file 1.0 (or gzip 0.5)
    
    # lzh?
    #0	string		\037\240	LZH compressed data
    
    #------------------------------------------------------------------------------
    # frame:  file(1) magic for FrameMaker files
    #
    # This stuff came on a FrameMaker demo tape, most of which is
    # copyright, but this file is "published" as witness the following:
    #
    0	string		\<MakerFile	application/x-frame
    0	string		\<MIFFile	application/x-frame
    0	string		\<MakerDictionary	application/x-frame
    0	string		\<MakerScreenFon	application/x-frame
    0	string		\<MML		application/x-frame
    0	string		\<Book		application/x-frame
    0	string		\<Maker		application/x-frame
    
    #------------------------------------------------------------------------------
    # html:  file(1) magic for HTML (HyperText Markup Language) docs
    #
    # from Daniel Quinlan <quinlan@yggdrasil.com>
    # and Anna Shergold <anna@inext.co.uk>
    #
    0	string		\<!DOCTYPE\ HTML	text/html
    0	string		\<!doctype\ html	text/html
    0	string		\<HEAD		text/html
    0	string		\<head		text/html
    0	string		\<TITLE		text/html
    0	string		\<title		text/html
    0       string          \<html          text/html
    0       string          \<HTML          text/html
    0	string		\<!--		text/html
    0	string		\<h1		text/html
    0	string		\<H1		text/html
    
    #------------------------------------------------------------------------------
    # images:  file(1) magic for image formats (see also "c-lang" for XPM bitmaps)
    #
    # originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
    # additions by janl@ifi.uio.no as well as others. Jan also suggested
    # merging several one- and two-line files into here.
    #
    # XXX - byte order for GIF and TIFF fields?
    # [GRR:  TIFF allows both byte orders; GIF is probably little-endian]
    #
    
    # [GRR:  what the hell is this doing in here?]
    #0	string		xbtoa		btoa'd file
    
    # PBMPLUS
    #					PBM file
    0	string		P1		image/x-portable-bitmap	7bit
    #					PGM file
    0	string		P2		image/x-portable-greymap	7bit
    #					PPM file
    0	string		P3		image/x-portable-pixmap	7bit
    #					PBM "rawbits" file
    0	string		P4		image/x-portable-bitmap
    #					PGM "rawbits" file
    0	string		P5		image/x-portable-greymap
    #					PPM "rawbits" file
    0	string		P6		image/x-portable-pixmap
    
    # NIFF (Navy Interchange File Format, a modification of TIFF)
    # [GRR:  this *must* go before TIFF]
    0	string		IIN1		image/x-niff
    
    # TIFF and friends
    #					TIFF file, big-endian
    0	string		MM		image/tiff
    #					TIFF file, little-endian
    0	string		II		image/tiff
    
    # possible GIF replacements; none yet released!
    # (Greg Roelofs, newt@uchicago.edu)
    #
    # GRR 950115:  this was mine ("Zip GIF"):
    #					ZIF image (GIF+deflate alpha)
    0	string		GIF94z		image/unknown
    #
    # GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
    #					FGF image (GIF+deflate beta)
    0	string		FGF95a		image/unknown
    #
    # GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
    # (best; not yet implemented):
    #					PBF image (deflate compression)
    0	string		PBF		image/unknown
    
    # GIF
    0	string		GIF		image/gif
    
    # JPEG images
    0	beshort		0xffd8		image/jpeg
    
    # PC bitmaps (OS/2, Windoze BMP files)  (Greg Roelofs, newt@uchicago.edu)
    0	string		BM		image/bmp
    #>14	byte		12		(OS/2 1.x format)
    #>14	byte		64		(OS/2 2.x format)
    #>14	byte		40		(Windows 3.x format)
    #0	string		IC		icon
    #0	string		PI		pointer
    #0	string		CI		color icon
    #0	string		CP		color pointer
    #0	string		BA		bitmap array
    
    
    #------------------------------------------------------------------------------
    # lisp:  file(1) magic for lisp programs
    #
    # various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
    0	string	;;			text/plain	8bit
    # Emacs 18 - this is always correct, but not very magical.
    0	string	\012(			application/x-elc
    # Emacs 19
    0	string	;ELC\023\000\000\000	application/x-elc
    
    #------------------------------------------------------------------------------
    # mail.news:  file(1) magic for mail and news
    #
    # There are tests to ascmagic.c to cope with mail and news.
    0	string		Relay-Version: 	message/rfc822	7bit
    0	string		#!\ rnews	message/rfc822	7bit
    0	string		N#!\ rnews	message/rfc822	7bit
    0	string		Forward\ to 	message/rfc822	7bit
    0	string		Pipe\ to 	message/rfc822	7bit
    0	string		Return-Path:	message/rfc822	7bit
    0	string		Path:		message/news	8bit
    0	string		Xref:		message/news	8bit
    0	string		From:		message/rfc822	7bit
    0	string		Article 	message/news	8bit
    #------------------------------------------------------------------------------
    # msword: file(1) magic for MS Word files
    #
    # Contributor claims:
    # Reversed-engineered MS Word magic numbers
    #
    
    0	string		\376\067\0\043			application/msword
    0	string		\333\245-\0\0\0			application/msword
    
    # disable this one because it applies also to other
    # Office/OLE documents for which msword is not correct. See PR#2608.
    #0	string		\320\317\021\340\241\261	application/msword
    
    
    
    #------------------------------------------------------------------------------
    # printer:  file(1) magic for printer-formatted files
    #
    
    # PostScript
    0	string		%!		application/postscript
    0	string		\004%!		application/postscript
    
    # Acrobat
    # (due to clamen@cs.cmu.edu)
    0	string		%PDF-		application/pdf
    
    #------------------------------------------------------------------------------
    # sc:  file(1) magic for "sc" spreadsheet
    #
    38	string		Spreadsheet	application/x-sc
    
    #------------------------------------------------------------------------------
    # tex:  file(1) magic for TeX files
    #
    # XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
    #
    # From <conklin@talisman.kaleida.com>
    
    # Although we may know the offset of certain text fields in TeX DVI
    # and font files, we can't use them reliably because they are not
    # zero terminated. [but we do anyway, christos]
    0	string		\367\002	application/x-dvi
    #0	string		\367\203	TeX generic font data
    #0	string		\367\131	TeX packed font data
    #0	string		\367\312	TeX virtual font data
    #0	string		This\ is\ TeX,	TeX transcript text	
    #0	string		This\ is\ METAFONT,	METAFONT transcript text
    
    # There is no way to detect TeX Font Metric (*.tfm) files without
    # breaking them apart and reading the data.  The following patterns
    # match most *.tfm files generated by METAFONT or afm2tfm.
    #2	string		\000\021	TeX font metric data
    #2	string		\000\022	TeX font metric data
    #>34	string		>\0		(%s)
    
    # Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
    #0	string		\\input\ texinfo	Texinfo source text
    #0	string		This\ is\ Info\ file	GNU Info text
    
    # correct TeX magic for Linux (and maybe more)
    # from Peter Tobias (tobias@server.et-inf.fho-emden.de)
    #
    0	leshort		0x02f7		application/x-dvi
    
    # RTF - Rich Text Format
    0	string		{\\rtf		application/rtf
    
    #------------------------------------------------------------------------------
    # animation:  file(1) magic for animation/movie formats
    #
    # animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8)
    #						MPEG file
    0	string		\000\000\001\263	video/mpeg
    #
    # The contributor claims:
    #   I couldn't find a real magic number for these, however, this
    #   -appears- to work.  Note that it might catch other files, too,
    #   so BE CAREFUL!
    #
    # Note that title and author appear in the two 20-byte chunks
    # at decimal offsets 2 and 22, respectively, but they are XOR'ed with
    # 255 (hex FF)! DL format SUCKS BIG ROCKS.
    #
    #						DL file version 1 , medium format (160x100, 4 images/screen)
    0	byte		1			video/unknown
    0	byte		2			video/unknown
    

    srm.conf

  • Defines server settings - /etc/httpd/conf/srm.conf
    ##
    ## srm.conf -- Apache HTTP server configuration file
    ##
    
    # With this document, you define the name space that users see of your http
    # server.  This file also defines server settings which affect how requests are
    # serviced, and how results should be formatted. 
    
    # See the tutorials at http://www.apache.org/ for
    # more information.
    
    # Originally by Rob McCool; Adapted for Apache
    
    
    # DocumentRoot: The directory out of which you will serve your
    # documents. By default, all requests are taken from this directory, but
    # symbolic links and aliases may be used to point to other locations.
    
    DocumentRoot /home/httpd/html
    
    # UserDir: The name of the directory which is appended onto a user's home
    # directory if a ~user request is recieved.
    
    UserDir public_html
    
    # DirectoryIndex: Name of the file or files to use as a pre-written HTML
    # directory index.  Separate multiple entries with spaces.
    
    DirectoryIndex index.html index.shtml index.cgi index.htm
    
    # FancyIndexing is whether you want fancy directory indexing or standard
    
    FancyIndexing on
    
    # AddIcon tells the server which icon to show for different files or filename
    # extensions
    
    AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
    
    AddIconByType (TXT,/icons/text.gif) text/*
    AddIconByType (IMG,/icons/image2.gif) image/*
    AddIconByType (SND,/icons/sound2.gif) audio/*
    AddIconByType (VID,/icons/movie.gif) video/*
    
    AddIcon /icons/binary.gif .bin .exe
    AddIcon /icons/binhex.gif .hqx
    AddIcon /icons/tar.gif .tar
    AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
    AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
    AddIcon /icons/a.gif .ps .ai .eps
    AddIcon /icons/layout.gif .html .shtml .htm .pdf
    AddIcon /icons/text.gif .txt
    AddIcon /icons/c.gif .c
    AddIcon /icons/p.gif .pl .py
    AddIcon /icons/f.gif .for
    AddIcon /icons/dvi.gif .dvi
    AddIcon /icons/uuencoded.gif .uu
    AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
    AddIcon /icons/tex.gif .tex
    AddIcon /icons/bomb.gif core
    
    AddIcon /icons/back.gif ..
    AddIcon /icons/hand.right.gif README
    AddIcon /icons/folder.gif ^^DIRECTORY^^
    AddIcon /icons/blank.gif ^^BLANKICON^^
    
    # DefaultIcon is which icon to show for files which do not have an icon
    # explicitly set.
    
    DefaultIcon /icons/unknown.gif
    
    # AddDescription allows you to place a short description after a file in
    # server-generated indexes.
    # Format: AddDescription "description" filename
    
    # ReadmeName is the name of the README file the server will look for by
    # default. Format: ReadmeName name
    #
    # The server will first look for name.html, include it if found, and it will
    # then look for name and include it as plaintext if found.
    #
    # HeaderName is the name of a file which should be prepended to
    # directory indexes. 
    
    ReadmeName README
    HeaderName HEADER
    
    # IndexIgnore is a set of filenames which directory indexing should ignore
    # Format: IndexIgnore name1 name2...
    
    IndexIgnore .??* *~ *# HEADER* README* RCS
    
    # AccessFileName: The name of the file to look for in each directory
    # for access control information.
    
    AccessFileName .htaccess
    
    # TypesConfig describes where the mime.types file (or equivalent) is
    # to be found.
    
    TypesConfig /etc/mime.types
    
    # DefaultType is the default MIME type for documents which the server
    # cannot find the type of from filename extensions.
    
    DefaultType text/plain
    
    # AddEncoding allows you to have certain browsers (Mosaic/X 2.1+) uncompress
    # information on the fly. Note: Not all browsers support this.
    
    AddEncoding x-compress Z
    AddEncoding x-gzip gz
    
    # AddLanguage allows you to specify the language of a document. You can
    # then use content negotiation to give a browser a file in a language
    # it can understand.  Note that the suffix does not have to be the same
    # as the language keyword --- those with documents in Polish (whose
    # net-standard language code is pl) may wish to use "AddLanguage pl .po" 
    # to avoid the ambiguity with the common suffix for perl scripts.
    
    AddLanguage en .en
    AddLanguage fr .fr
    AddLanguage de .de
    AddLanguage da .da
    AddLanguage el .el
    AddLanguage it .it
    
    # LanguagePriority allows you to give precedence to some languages
    # in case of a tie during content negotiation.
    # Just list the languages in decreasing order of preference.
    
    LanguagePriority en fr de
    
    # Redirect allows you to tell clients about documents which used to exist in
    # your server's namespace, but do not anymore. This allows you to tell the
    # clients where to look for the relocated document.
    # Format: Redirect fakename url
    
    
    # Aliases: Add here as many aliases as you need (with no limit). The format is 
    # Alias fakename realname
    
    # Note that if you include a trailing / on fakename then the server will
    # require it to be present in the URL.  So "/icons" isn't aliased in this
    # example.
    
    Alias /icons/ /home/httpd/icons/
    
    # ScriptAlias: This controls which directories contain server scripts.
    # Format: ScriptAlias fakename realname
    
    ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
    
    # If you want to use server side includes, or CGI outside
    # ScriptAliased directories, uncomment the following lines.
    
    # AddType allows you to tweak mime.types without actually editing it, or to
    # make certain files to be certain types.
    # Format: AddType type/subtype ext1
    
    # For example, the PHP3 module (not part of the Apache distribution)
    # will typically use:
    #AddType application/x-httpd-php3 .php3
    #AddType application/x-httpd-php3-source .phps
    # The following is for PHP/FI (PHP2):
    #AddType application/x-httpd-php .phtml
    
    # AddHandler allows you to map certain file extensions to "handlers",
    # actions unrelated to filetype. These can be either built into the server
    # or added with the Action command (see below)
    # Format: AddHandler action-name ext1
    
    # To use CGI scripts:
    #AddHandler cgi-script .cgi
    
    # To use server-parsed HTML files
    AddType text/html .shtml
    AddHandler server-parsed .shtml
    
    # Uncomment the following line to enable Apache's send-asis HTTP file
    # feature
    #AddHandler send-as-is asis
    
    # If you wish to use server-parsed imagemap files, use
    AddHandler imap-file map
    
    # To enable type maps, you might want to use
    #AddHandler type-map var
    
    # To enable the perl module (if you have it installed), uncomment
    # the following section 
    #
    #Alias /perl/ /home/httpd/perl/
    #<Location /perl>
    #SetHandler perl-script
    #PerlHandler Apache::Registry
    #Options +ExecCGI
    #</Location>
    
    # Action lets you define media types that will execute a script whenever
    # a matching file is called. This eliminates the need for repeated URL
    # pathnames for oft-used CGI file processors.
    # Format: Action media/type /cgi-script/location
    # Format: Action handler-name /cgi-script/location
    
    # MetaDir: specifies the name of the directory in which Apache can find
    # meta information files. These files contain additional HTTP headers
    # to include when sending the document
    
    #MetaDir .web
    
    # MetaSuffix: specifies the file name suffix for the file containing the
    # meta information.
    
    #MetaSuffix .meta
    
    # Customizable error response (Apache style)
    #  these come in three flavors
    #
    #    1) plain text
    #ErrorDocument 500 "The server made a boo boo.
    #  n.b.  the (") marks it as text, it does not get output
    #
    #    2) local redirects
    #ErrorDocument 404 /missing.html
    #  to redirect to local url /missing.html
    #ErrorDocument 404 /cgi-bin/missing_handler.pl
    #  n.b. can redirect to a script or a document using server-side-includes.
    #
    #    3) external redirects
    #ErrorDocument 402 http://some.other_server.com/subscription_info.html
    #
    
    # mod_mime_magic allows the server to use various hints from the file itself
    # to determine its type.
    #MimeMagicFile /etc/httpd/conf/magic
    
    # The following directives disable keepalives and HTTP header flushes.
    # The first directive disables it for Netscape 2.x and browsers which
    # spoof it. There are known problems with these.
    # The second directive is for Microsoft Internet Explorer 4.0b2
    # which has a broken HTTP/1.1 implementation and does not properly
    # support keepalive when it is used on 301 or 302 (redirect) responses.
    
    BrowserMatch "Mozilla/2" nokeepalive
    BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
    
    # The following directive disables HTTP/1.1 responses to browsers which
    # are in violation of the HTTP/1.0 spec by not being able to grok a
    # basic 1.1 response.
    
    BrowserMatch "RealPlayer 4\.0" force-response-1.0
    BrowserMatch "Java/1\.0" force-response-1.0
    BrowserMatch "JDK/1\.0" force-response-1.0
    

    How to run

    # /etc/rc.d/init.d/httpd restart
    

    CGI configuration

  • Edit /etc/httpd/conf/srm.conf
    ...
    ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
    ...
    
    # To use CGI scripts:
    AddHandler cgi-script .cgi
    ...
    
  • Allow to execute in Ducument root
    Edit /etc/httpd/conf/access.conf
    ...
    <Directory /home/httpd/html>
    ...
    Options ExecCGI
    </Directory>
    ...
    
  • Allow to execute in user directory
    Add /etc/httpd/conf/access.conf
    ...
    <Directory /home>
    Options Indexes Includes FollowSymLinks
    AllowOverride None
    Options ExecCGI
    </Directory>
    
  • Restart
    # /etc/rc.d/init.d/httpd restart
    

    CGI sample1

  • /home/httpd/cgi-bin/enquete/enquete.pl
    #!/usr/bin/perl
    
    if ($ENV{'REQUEST_METHOD'} eq "POST") {
            read(STDIN, $cgidata, $ENV{'CONTENT_LENGTH'});
    } else {
            $cgidata = $ENV{'QUERY_STRING'};
    }
    @argv = split('&', $cgidata);
    foreach $i (@argv) {
            ($var, $val) = split('=', $i);
            $val =~ tr/+/ /;
            $val =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
            $val =~ s/\r\n/\n/g;
            $val =~ s/\r/\n/g;
            $CGI{$var} = $val;
    }
    
    print "Content-type: text/html\n\n";
    print "<html>\n";
    print "<head><title>Result</title></head>\n<body>\n";
    print "Name:    $CGI{'NAME'}<br>\n";
    print "E-Mail:  $CGI{'EMAIL'}<br>\n";
    print "Opinion: $CGI{'OPINION'}<br>\n";
    print "Comment: $CGI{'COMMENT'}<br>\n";
    print "</body></html>";
    
  • enquete.html
    <html>
    <head><title>Enquete</title></head>
    <body>
    <center>
    <h1>Enquete</h1>
    
    <form action="/cgi-bin/enquete/enquete.pl" method="POST">
    <table>
    <tr>
            <td>Name:       </td><td><input type="text" name="NAME"></td></tr>
    <tr>
            <td>E-Mail:     </td><td><input type="text" name="EMAIL"></td></tr>
    <tr>
            <td>OPINION:    </td><td>
            <input type="radio" name="OPINION" value="Good" checked>Good
            <input type="radio" name="OPINION" value="So so">So so
            <input type="radio" name="OPINION" value="Bad">Bad
            </td><tr>
    <tr>
            <td>COMMENT:
            </td><td><textarea name="COMMENT" cols="40" rows="5"></textarea>
            <td><td></tr>
    </table>
    <input type="submit" value="Submit">
    <input type="reset" value="Reset">
    </form>
    </center>
    </body>
    </html>
    

    CGI sample2

  • /home/httpd/cgi-bin/enquete/enquetemail.pl
    #!/usr/bin/perl
    
    $mymail = "hoge\@hoge.bt";
    $mailto = "/usr/bin/sendmail " , $mymail;
    
    if ($ENV{'REQUEST_METHOD'} eq "POST") {
            read(STDIN, $cgidata, $ENV{'CONTENT_LENGTH'});
    } else {
            $cgidata = $ENV{'QUERY_STRING'};
    }
    @argv = split('&', $cgidata);
    foreach $i (@argv) {
            ($var, $val) = split('=', $i);
            $val =~ tr/+/ /;
            $val =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
            $val =~ s/\r\n/\n/g;
            $val =~ s/\r/\n/g;
            $CGI{$var} = $val;
    }
    
    open(MAIL, "| $mailto");
    print MAIL &convert(<<EOF);
    Subject:enquete
    From:$CGI{'MAIL'}
    Name    :$CGI{'NAME'}
    E-Mail  :$CGI{'EMAIL'}
    OPINION :$CGI{'OPINION'}
    COMMENT :$CGI{'COMMENT'}
    EOF
    close(MAIL);
    
    print "Content-type: text/html\n\n";
    print "<html>\n";
    print "<head><title>Thank you</title></head>\n<body>\n";
    print "<center><h2>Your message was sent.</h2></center>\n";
    print "</body></html>";
    
    exit;
    
    sub convert {
            local($value) = @_;
            $value;
    }
    
  • enquetemail.html
    <html>
    <head><title>Enquete(mail)</title></head>
    <body>
    <center>
    <h1>Enquete(mail)</h1>
    
    <form action="/cgi-bin/enquete/enquetemail.pl" method="POST">
    <table>
    <tr>
            <td>Name:       </td><td><input type="text" name="NAME"></td></tr>
    <tr>
            <td>E-Mail:     </td><td><input type="text" name="EMAIL"></td></tr>
    <tr>
            <td>OPINION:    </td><td>
            <input type="radio" name="OPINION" value="Good" checked>Good
            <input type="radio" name="OPINION" value="So so">So so
            <input type="radio" name="OPINION" value="Bad">Bad
            </td><tr>
    <tr>
            <td>COMMENT:
            </td><td><textarea name="COMMENT" cols="40" rows="5"></textarea>
            <td><td></tr>
    </table>
    <input type="submit" value="Submit">
    <input type="reset" value="Reset">
    </form>
    </center>
    </body>
    </html>
    

    Access Control

  • Edit /etc/httpd/conf/httpd.conf
    <Directory /home/intra/public_html/>
            Order deny,allow
            Deny from all
            Allow from 192.168.1.0/24
            AuthType Basic
            AuthUserFile /home/intra/public_html/.htpasswd
            AuthGroupFile /dev/null
            AuthName "Prease User Name and Password"
            require valid-user
    </Directory>
    
  • Create .htpasswd file
    $ htpasswd -c .htpasswd username1
    
  • Add user .htpasswd file
    $ htpasswd .htpasswd username2
    

    Back
    Google
    Web www.grape-info.com