Saturday, January 13, 2007

Run OHS at port 80 (HTTP) and port 443 (HTTPS)

By default, OracleAS HTTP Server runs at port 7777 for HTTP and port 4443 for HTTPS.

In Linux, only root user can use port less than 1024. So, in order to have OHS runs at port 80 and HTTPS runs at port 443, we need to do the following steps:

1. As oracle user,
"cd $ORACLE_HOME/Apache/Apache/conf"

2. Edit httpd.conf
"vi httpd.conf"

Search for 7777 by ":/7777"
You see:
# This port is used when starting without SSL
Port 7777
Listen 7777

Change them to:
# This port is used when starting without SSL
Port 80
Listen 80

3. Edit ssl.conf
"vi ssl.conf"

Replace all occurance of 4443 with 443.
":1,$ s/4443/443/g" or ":%s/4443/443/g"

4. As root user, "cd $ORACLE_HOME/Apache/Apache/bin". Execute:
# chmod 777 apachectl
# chown root .apachectl
# chmod 6750 .apachectl

You'll see the following:
# ll apachectl
-rwxrwxrwx 1 oracle dba 11909 Dec 8 15:11 apachectl
# ll .apachectl
-rwsr-s--- 1 root dba 1703684 Jan 16 2006 .apachectl

Ok, done.

As oracle user, you can startup OracleAS with "opmnctl startall"
Also, you can view the status with "opmnctl status -l"


Venkatesh G said...

Thanks for the explanation, thats perfect..

Also, I would like to know how internally as oracle user it is able to start HTTP/HTTPS on ports 80 & 443, I know how setUID works.

When we try giving 6750 to apachectl alone in a normal apache, it fails to run as non-root binding to port 80....

Please guide me.


oraclesoon said...

Too few details to determine what's going on. Are you running the command with root user privilege?

Niall Mc Phillips said...

Thanks for this. I was changing the apachectl but not the .apachectl. Now I've changed both and am up and running on port 80.

[My environment: Oracle Linux (2.6.18-, Oracle HTTP Server from 11gR2 companion disk.]