Re: permission issue
Posted by ErmanArslansOracleBlog on Mar 24, 2016; 8:09am
URL: http://erman-arslan-s-oracle-forum.124.s1.nabble.com/permission-issue-tp753p776.html
Good Roshan.
It was already suspicious, it was failing "failed to get an IP for the hostname" .
apache's http 204 is a little generic error, it can be throwed:
wallet problems(ssl enabled where it should be disabled)
Permission related (in case of using privileged port in SSL
after an unclean shutdown(httpd.pid permission))
httpd file corruption
disk size problem(when the filesystem is full, even an rpm problem--missing softlink libdb.so.2)
hostname problem(yours)
This issue attacted my attention. Good for you , as you have created this issue :)
You may find further analysis about Apache/OHS used in Oracle EBS 12.2
A little further details show;
The conf file: /u01/install/fs2/FMW_Home/webtier/instances/EBS_web_CLONE_OHS1/config/OHS/EBS_web_CLONE
# OHS Listen Port
Listen 8000
The Listen directive tells the server to accept incoming requests only on the specified port(s) or address-and-port combinations. If only a port number is specified in the Listen directive, the server listens to the given port on all interfaces.
[applmgr@demoorcl EBS_web_CLONE]$ netstat -tulpn |grep 8000
tcp 0 0 :::8000 :::* LISTEN 130292/httpd.worker
So, in ipv6 :: means listen to all interfaces (shortway of 0.0.0.0) and the third column seperates the address from listen port.
So our apache listen all interfaces, including localhost, and all of those ip address associated with these interfaces must be resolvable for starting apache.
So apache listens on IPV6 all addresses:
[root@demoorcl ~]# lsof -Pn | grep LISTEN|grep 8000
httpd.wor 130292 applmgr 4u IPv6 2013759 0t0 TCP *:8000 (LISTEN)
httpd.wor 130304 applmgr 4u IPv6 2013759 0t0 TCP *:8000 (LISTEN)
httpd.wor 130450 applmgr 4u IPv6 2013759 0t0 TCP *:8000 (LISTEN)
httpd.wor 130478 applmgr 4u IPv6 2013759 0t0 TCP *:8000 (LISTEN)
httpd.wor 130479 applmgr 4u IPv6 2013759 0t0 TCP *:8000 (LISTEN)
So, Apache listens on Ipv6 but also ,handles ipv4 connections.
"This is done IPv4-mapped IPv6 addresses."
Lets prove it with a little more investigation;
[applmgr@demoorcl bin]$ strings httpd|grep -i ipv6
Oralog API: using low-order bits of IPv6 address as if they were unique
-D APR_HAVE_IPV6 (IPv4-mapped addresses
make_sock: for address %pI, apr_socket_opt_set: (IPV6_V6ONLY)
strings output:
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/worker"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses
enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=%ld
-D HTTPD_ROOT="$(APACHE2_HOME)"
-D SUEXEC_BIN="$(APACHE2_HOME)/bin/suexec"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
Lets look at the httpd binary with -V option.
But in order to do that, we need to set our environment, by learning the environment variables of a running httpd.worker process using /proc filesystem.
export COMPONENT_LOG_PATH=/u01/install/fs2/FMW_Home/webtier/instances/EBS_web_CLONE_OHS1/diagnostics/logs/OHS/EBS_web_CLONE/
export COMPONENT_NAME=EBS_web_CLONE
export ORACLE_CONFIG_HOME=/u01/install/fs2/FMW_Home/webtier/instances/EBS_web_CLONE_OHS1
export SHELL=/bin/bashNLS_LANG=American_America.AL32UTF8
export COMPONENT_TYPE=OHS
export PERL5LIB=/u01/install/fs2/FMW_Home/webtier/ohs/mod_perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi:/u01/install/fs2/FMW_Home/webtier/perl/lib/5.10.0:/u01/install/fs2/FMW_Home/webtier/perl/lib/site_perl/5.10.0:
export PROCESS_INDEX=1
export ORACLE_ADMIN_USERNAME=weblogic
export LD_LIBRARY_PATH=/u01/install/fs2/FMW_Home/webtier/ohs/lib:/u01/install/fs2/FMW_Home/webtier/opmn/lib:/u01/install/fs2/FMW_Home/webtier/lib:/u01/install/fs2/FMW_Home/webtier/opmn/lib:/u01/install/fs2/FMW_Home/webtier/lib
export TEMP=/tmp
exprot EXE_EXT=ORACLE_
export ADMIN_PORT=7001
export OPMN_UID=1254917442
export COMPONENT_CONFIG_PATH=/u01/install/fs2/FMW_Home/webtier/instances/EBS_web_CLONE_OHS1/config/OHS/EBS_web_CLONE
export TNS_ADMIN=/u01/install/fs2/FMW_Home/webtier/network/admin
export INSTANCE_NAME=EBS_web_CLONE_OHS1
export SHELL_EXT=.sh
export ORACLE_ADMIN_HOST=demoorcl
export OPMN_INDEX=1
export LANG=en_US.UTF-8
exportPROCESS_UID=1254917442
export COMMON_COMPONENTS_HOME=/u01/install/fs2/FMW_Home/oracle_commonSHLVL=0
export ORACLE_ADMIN_REGISTERED=true
export X_LD_LIBRARY_PATH_64=/u01/install/fs2/FMW_Home/webtier/libINSTANCE_UID=1254917442@EBS_web_CLONE_OHS1TMP=/tmp
export ORACLE_INSTANCE=/u01/install/fs2/FMW_Home/webtier/instances/EBS_web_CLONE_OHS1BAT_EXT=
export ORA_NLS33=/u01/install/fs2/FMW_Home/webtier/nls/data
export STARTEDBYOPMN=true
export ORACLE_HOME=/u01/install/fs2/FMW_Home/webtier
export ORACLE_ADMIN_PROTOCOL=t3SO_EXT=.so
[applmgr@demoorcl bin]$ ./httpd -V
Server version: Oracle-HTTP-Server/2.2.21 (Unix)
Server built: Mar 26 2013 16:53:37
Server Label: APACHE_11.1.1.6.0_LINUX.X64_RELEASE
Server's Module Magic Number: 20051115:30
Server loaded: APR 1.4.5, APR-Util 1.3.12
Compiled using: APR 1.4.5, APR-Util 1.3.12
Architecture: 64-bit
Server MPM: Worker
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/worker"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="$(APACHE2_HOME)"
-D SUEXEC_BIN="$(APACHE2_HOME)/bin/suexec"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
So, as seen apache compiled with (IPv4-mapped addresses enabled).. This proves the comment hat I have made for ":::8000"