Changing the port at Which OC4J applications listen to (to 80) May 1, 09

At one customer site, we had installed Oracle application Server 10.1.3.1 to run our oracle ADF applications

After the default installation, the port available by default is 7780. Therefore, deployed application can be invoked using this port. A typical request would be

http://servername:7780/context_name/faces/index.jspx


The customer then requested that we only use port 80 rather than 7780

Unlike standalone OC4J, the Request for the application goes through Apache, therefore, if we need to change the port to something else, it is the Apache port that needs to be changed and not the OC4J port. The apache engine will communicate internally with the Oc4J port (which is traditionally = 8888)

Background:

Through metalink search, we found DOC ID  564570.1  which states the following

In the configuration file default-web-site.xml (or http-web-site.xml, this depends on which file is referenced for the web site from server.xml) add a "host" attribute to the element <web-site> like this:

<web-site xmlns:xsi="..."
 xsi:noNamespaceSchemaLocation="..."
 protocol="http"
 host="127.0.0.1"
 port="8888"
 display-name="OC4J 10g (10.1.3) Default Web Site"
 schema-major-version="10"
 schema-minor-version="0">

 

However, this does not seem to be the solution in our case, because as I said in the beginning, we not really interested in changing the OC4J port, because our installation is not truly standalone, it is the Apache that we need to change

 

Therefore, attention should now go to the   httpd.conf   file which as you all know is located in

$HOME/Apache/Apache/conf

 Edit the httpd.conf file and file the Port and listen directive to 80 or (81)

 # Port: The port to which the standalone server listens. For

# ports < 1024, you will need httpd to be run as root initially.

#

# This port is used when starting without SSL

Port 80

Listen 80

 Start the services again and Surprise Surprise, the http won’t start!

 

This is another issue know to Apache:- All services that operate on ports < 1024 are protected services and need to be run as super user.

 What to do?

 You need to locate the file called   .apachectl   (not that there is a dot as a prefix) and change its permission so that it runs as root

 #Chown root .apatchctl

#Chmod  6750 .apatchctl

 When you do ls –l, you will find the following

 [oracle@asdb bin]$ ls -l .apachectl

-rwsr-s---  1 root dba 1703780 Sep 18  2006 .apachectl

[oracle@asdb bin]$

 

NOTE:   at this point, you need to understand that both port 80 and 8888 are listening,  port 80 for Apache and port 8888 for OC4J

Your request will go to 80, then http thorough the mod_oc4j extension will communicate with oc4j through 8888.

 To find if services are using the port alreadly

You can use

 Netstat –na|grep 8888

Netstat –na|grep 80