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