Apache is widely used Web server. Oracle HTTP server is based on Apache web server and includes modules developed specifically by Oracle. Here in this section we will have discussion about Apache (Oracle HTTP server) used in EBS 11i and R12
Important Directive in httpd.conf
Listen:
The Listen directive instructs Apache to listen to more than one IP address or port; by default it responds to requests on all IP interfaces, but only on the port given by the Port directive.
ServerRoot
sets the directory in which the server lives.
PidFile
sets the file to which the server records the process id of the daemon. If the filename does not begin with a slash (/) then it is assumed to be relative to the ServerRoot.
ResourceConfig– The server will read this file for more directives after reading the httpd.conf file.
– it can contain any server directive allowed in the server config context.
– Since Apache version 1.3.4, the default srm.conf file which ships with Apache contains only comments, and all directives are placed in the main server configuration file, httpd.conf.
AccessConfig– The server will read this file for more directives after reading the ResourceConfig file
– Historically, this file only contained sections;
– Now not used
Timeout :
defines the amount of time Apache will wait for three things:
1. The total amount of time it takes to receive a GET request.
2. The amount of time between receipt of TCP packets on a POST or PUT request.
3. The amount of time between ACKs on transmissions of TCP packets in responses.
– default to 300
KeepAlive :
– provide long-lived HTTP sessions which allow multiple requests to be sent over the same TCP connection.
– For HTTP/1.1 clients, persistent connections are the default unless otherwise specified.
– For HTTP/1.0 clients, Keep-Alive connections will only be used if they are specifically requested by a client.
MaxKeepAliveRequests :
– limits the number of requests allowed per connection when KeepAlive is on.
– If it is set to “0”, unlimited requests will be allowed.
KeepAliveTimeout :– The number of seconds Apache will wait for a subsequent request before closing the connection. Once a request has been received, the timeout value specified by the Timeout directive applies.
MinSpareServers – desired minimum number of idle child server processes.
– If there are fewer than MinSpareServers idle, then the parent process creates new children at a maximum rate of 1 per second.
MaxSpareServers– maximum number of idle child server processes.
– If there are more than MaxSpareServers idle, then the parent process will kill off the excess processes.
– This directive has no effect when used with the Apache Web server on a Microsoft Windows platform.
StartServers
– sets the number of child server processes created on startup.
MaxClients – sets the limit on the number of simultaneous requests that can be supported; not more than this number of child server processes will be created.
– To configure more than 256 clients, you must edit the HARD_SERVER_LIMIT entry in httpd.h and recompile.
MaxRequestsPerChild
– sets the limit on the number of requests that an individual child server process will handle. After MaxRequestsPerChild requests, the child process will die.
– If MaxRequestsPerChild is 0, then the process will never expire.
Setting MaxRequestsPerChild to a non-zero limit has two beneficial effects:
• it limits the amount of memory that process can consume by (accidental) memory leakage;
• by giving processes a finite lifetime, it helps reduce the number of processes when the server load reduces.
LoadModule :
The LoadModule directive links in the object file or library filename and adds the module structure named module to the list of active modules.
LoadModule status_module modules/mod_status.so
Status_module is the identifier in the module souce code to identify the module.
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.
So , first we use LoadModule to make the DSO module available.
Then we reconstruct of the complete module list from all available modules
(static and shared ones) to achieve correct module execution order.
For that we use :
ClearModuleList
AddModule mod_vhost_alias.c
AddModule mod_env.c
i.e first clear the list and then Add in the proper order.
The modules listed with AddModule , without a corresponding LoadModule directive,
are static bound into the standard Apache binary distribution.
User
– sets the userid as which the server will answer requests.
– the standalone server must be run initially as root.
– Unix-userid
Group– sets the group under which the server will answer requests.
– Unix-group
ServerAdmin
– sets the e-mail address that the server includes in any error messages it returns to the client.
ServerName– sets the hostname of the server; this is used when creating redirection URLs.
DocumentRoot– sets the directory from which httpd will serve files.
– the server appends the path from the requested URL to the document root to make the path to the document. Example:
DocumentRoot /usr/web
then an access to http://www.my.host.com/index.html
refers to /usr/web/index.html.
– Other location can be set by Alias
… – used to enclose a group of directives which will apply only to the named directory and sub-directories of that directory.
– Directory-path is either the full path to a directory, or a wild-card string.
If multiple (non-regular expression) directory sections match the directory (or its parents) containing a document, then the directives are applied in the order of shortest match first, interspersed with the directives from the .htaccess files. For example, with
AllowOverride None
AllowOverride FileInfo
for access to the document /home/web/dir/doc.html the steps are:
• Apply directive AllowOverride None (disabling .htaccess files).
• Apply directive AllowOverride FileInfo (for directory /home/web).
• Apply any FileInfo directives in /home/web/.htaccess
Note that the default Apache access for is Allow from All.
TypesConfig:– sets the location of the MIME types configuration file.
– This file sets the default list of mappings from filename extensions to content types;
– This file controls what Internet media types are sent to the client for given file extension(s). Sending the correct media type to the client is important so they know how to handle the content of the file. Extra types can either be added here or by using an AddType directive
– E.g. of contains of this file
application/msword doc
application/x-javascript js
application/zip zip
audio/mpeg mpga mp2 mp3
image/jpeg jpeg jpg jpe
text/html html htm
—————————-
MIMEMagicFile– some file to know the file type
DefaultType :– when requested for a document whose type cannot be determined by its MIME types mappings, it uses the DefaultType.
ErrorLog: directive sets the name of the file to which the server will log any errors it encounters
CustomLog directive is used to log requests to the server.
LogLevel adjusts the verbosity of the messages recorded in the error logs
LogFormat : specifies the format of the access log file.
Alias directive allows documents to be stored in the local filesystem other than under the DocumentRoot. URLs with a path beginning with url-path will be mapped to local files beginning with directory-filename.
ScriptAlias directive has the same behavior as the Alias directive, except that in addition it marks the target directory as containing CGI scripts that will be processed by mod_cgi’s cgi-script handler.
SetEnv : Sets an environment variable, which is then passed on to CGI scripts and SSI pages.
to conditional on a presence of a particular module
To find out the Version of Apache
$IAS_ORACLE_HOME/Apache/Apache/bin/httpd -v
Some important file for Oracle HTTP Server in EBS 11i
$IAS_ORACLE_HOME/Apache/Apache/conf/httpd.conf
$IAS_ORACLE_HOME/Apache/Apache/conf/oracle_apache.conf
$IAS_ORACLE_HOME/Apache/Apache/conf/apps.conf
$IAS_ORACLE_HOME/Apache/Apache/conf/httpd_pls.conf
$IAS_ORACLE_HOME/Apache/Apache/conf/mod_ose.conf
$IAS_ORACLE_HOME/Apache/modplsql/cfg/plsql.conf
$IAS_ORACLE_HOME/Apache/Apache/bin/apachectl
$IAS_ORACLE_HOME/Apache/Apache/logs/access.log
$IAS_ORACLE_HOME/Apache/Apache/logs/error.log
Some important file for Apache in R12.0/R12.1
$INST_TOP/ora/10.1.3/Apache/Apache/conf/httpd.conf
$INST_TOP/ora/10.1.3/Apache/Apache/conf/oracle_apache.conf
$INST_TOP/ora/10.1.3/Apache/Apache/conf/apps.conf
$INST_TOP/ora/10.1.3/Apache/Apache/conf/httpd_pls.conf
$INST_TOP/ora/10.1.3/Apache/Apache/conf/mod_ose.conf
$INST_TOP/ora/10.1.3/Apache/modplsql/cfg/plsql.conf
$INST_TOP/ora/10.1.3/Apache/Apache/bin/apachectl
$INST_TOP/logs/ora/10.1.3/Apache/Apache/logs/error.log
$INST_TOP/logs/ora/10.1.3/Apache/Apache/logs/access.log
How to troubleshoot Oracle HTTP Server issues
- Check of any errors in error.log
- If it is port conflict.Find out who is using that port
netstat -a|grep port—-To find out the port conflict - Kill the process and start the Apache
Also Reads
https://en.wikipedia.org/wiki/Oracle_HTTP_Server