Hi,

I'm working with an ISV and the version of Apache2 shipped with Solaris 
10 is incompatible with their software and it's plugins. Ok, so we'll 
use the version that they supply. I've put together another version of 
the SMF manifest and I've got it working.

However, the problem I had, was that when I tried starting it with 
'svcadm enable apache-xxx', it would fail to start. The error message in 
the log file referred to some internal paths that were used to compile 
apache2. Now, when I start this from the sh (apachectl -k start), it 
work fine. The solution proffered by a colleague was to  augment  the 
start method with  "-f  <location of httpd.conf>, which I am happy to 
say worked.

What I do not understand, is why it referenced the  original  compile 
time paths ;  can someone tell me why this should be?


As you can see from below, *without* the '-f <config file>' option, when 
SMF tries to start apache2, it logs the following error; why is it 
referencing the inbuilt compile time paths? It doesn't do this when I 
run apachectl -k start from the shell.


> [ Jul 13 11:10:40 Disabled. ]
> [ Jul 13 11:10:40 Rereading configuration. ]
> [ Jul 13 11:14:01 Enabled. ]
> [ Jul 13 11:14:01 Executing start method 
> ("/opt/centrasite/CentraSite_2.2/apache
> 2/bin/apachectl -k start") ]
> httpd: could not open document config file 
> /FS/fs3059/tamhomes/int/pl/apadev/htt
> pd-2.0.54/bindist/conf/httpd.conf
> [ Jul 13 11:14:01 Method "start" exited with status 1 ]
> [ Jul 13 11:14:01 Executing start method 
> ("/opt/centrasite/CentraSite_2.2/apache
> 2/bin/apachectl -k start") ]
> httpd: could not open document config file 
> /FS/fs3059/tamhomes/int/pl/apadev/htt
> pd-2.0.54/bindist/conf/httpd.conf

Here's the output of apachectl -V

> Server version: Apache/2.0.54
> Server built:   Aug 31 2005 18:26:05
> Server's Module Magic Number: 20020903:9
> Architecture:   32-bit
> Server compiled with....
>  -D APACHE_MPM_DIR="server/mpm/prefork"
>  -D APR_HAS_SENDFILE
>  -D APR_HAS_MMAP
>  -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
>  -D APR_USE_FCNTL_SERIALIZE
>  -D APR_USE_PTHREAD_SERIALIZE
>  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
>  -D APR_HAS_OTHER_CHILD
>  -D AP_HAVE_RELIABLE_PIPED_LOGS
>  -D HTTPD_ROOT="/FS/fs3059/tamhomes/int/pl/apadev/httpd-2.0.54/bindist"
>  -D 
> SUEXEC_BIN="/FS/fs3059/tamhomes/int/pl/apadev/httpd-2.0.54/bindist/bin/suexec"
>  -D DEFAULT_PIDLOG="logs/httpd.pid"
>  -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
>  -D DEFAULT_LOCKFILE="logs/accept.lock"
>  -D DEFAULT_ERRORLOG="logs/error_log"
>  -D AP_TYPES_CONFIG_FILE="conf/mime.types"
>  -D SERVER_CONFIG_FILE="conf/httpd.conf"
What is it about the SMF environment that causes this version of apache2 
to ignore the installed paths and use the compile time paths? As I said 
before, I have this working; I simply specified the configuration file 
via '-f'.

Thanks in advance
Neil


Reply via email to