http-apache22 revision 2015
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder#!/sbin/sh
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder#
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder# CDDL HEADER START
97018cf5fa25b494adffd7e9b4e87320dae6bf47Christian Maeder#
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# The contents of this file are subject to the terms of the
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder# Common Development and Distribution License (the "License").
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# You may not use this file except in compliance with the License.
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder#
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
57d320fc4d0fe1a1c08cfe6cd9ebec09b86c2cbfTill Mossakowski# or http://www.opensolaris.org/os/licensing.
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# See the License for the specific language governing permissions
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# and limitations under the License.
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder#
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder# When distributing Covered Code, include this CDDL HEADER in each
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# If applicable, add the following below this CDDL HEADER, with the
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# fields enclosed by brackets "[]" replaced with your own identifying
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# information: Portions Copyright [yyyy] [name of copyright owner]
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder#
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# CDDL HEADER END
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder#
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder#
57d320fc4d0fe1a1c08cfe6cd9ebec09b86c2cbfTill Mossakowski# Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder#
57d320fc4d0fe1a1c08cfe6cd9ebec09b86c2cbfTill Mossakowski
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder. /lib/svc/share/smf_include.sh
57d320fc4d0fe1a1c08cfe6cd9ebec09b86c2cbfTill Mossakowski
4e2331b387b90a234dc36b12c778914d3e202718Christian MaederAPACHE_VERSION=
4e2331b387b90a234dc36b12c778914d3e202718Christian MaederAPACHE_USR_ROOT=/usr/apache2
4e2331b387b90a234dc36b12c778914d3e202718Christian MaederAPACHE_ETC_ROOT=/etc/apache2
2272b992302eb61b2a039033cb8cdaf7809fe682Christian MaederAPACHE_VAR_ROOT=/var/apache2
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder#if startup options contain multiple arguments separated by a blank,
2272b992302eb61b2a039033cb8cdaf7809fe682Christian Maeder#then they should be specified as below
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder#e.g., %> svccfg -s apache22 setprop 'httpd/startup_options=("-f" "/etc/apache2/2.2/new.conf")'
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder#
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian MaederSTARTUP_OPTIONS=
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian MaederSERVER_TYPE=prefork
2272b992302eb61b2a039033cb8cdaf7809fe682Christian MaederPLATFORM_DIR=
2272b992302eb61b2a039033cb8cdaf7809fe682Christian Maeder
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maedergetprop() {
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder PROPVAL=""
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder svcprop -q -p $1 ${SMF_FMRI}
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder if [ $? -eq 0 ] ; then
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder PROPVAL=`svcprop -p $1 ${SMF_FMRI}`
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder if [ "${PROPVAL}" = "\"\"" ] ; then
2272b992302eb61b2a039033cb8cdaf7809fe682Christian Maeder PROPVAL=""
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder fi
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder return
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder fi
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder return
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian Maeder}
2272b992302eb61b2a039033cb8cdaf7809fe682Christian Maeder
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# Check whether alternate config file was specified using option -f.
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# If it's the case, Apache will search in the same directory for
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder# availability of environment file.
4e2331b387b90a234dc36b12c778914d3e202718Christian Maederenvvars_path_update() {
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder eval "set -- $1"
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder while [ $# -gt 0 ]; do
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich case "$1" in
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich -f) APACHE_USER_ENVVARS=`dirname "${2:-}"`/envvars; break;;
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich -f*) APACHE_USER_ENVVARS=`dirname "${1#-f}"`/envvars; break;;
e5b79e9fe9606fd386dc840ea9f1514e7b9b32b9Christian Maeder esac
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich shift
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich done
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder}
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder
4e2331b387b90a234dc36b12c778914d3e202718Christian MaederAPACHE_VERSION=`echo ${SMF_FMRI} | sed 's/[^0-9]//g;s/./\.&/g;s/^\.//'`
4e2331b387b90a234dc36b12c778914d3e202718Christian Maederif [ "x${APACHE_VERSION}" != "x" ]; then
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder echo "Apache version is ${APACHE_VERSION}"
8a8880f1b6a0681e636480991d45dfea11d62ff8Christian Maeder APACHE_USR_ROOT=${APACHE_USR_ROOT}/${APACHE_VERSION}
cd25621939b8f27c6c7e2933ece72bc2d91b00f7Christian Maeder APACHE_ETC_ROOT=${APACHE_ETC_ROOT}/${APACHE_VERSION}
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maeder APACHE_VAR_ROOT=${APACHE_VAR_ROOT}/${APACHE_VERSION}
8a8880f1b6a0681e636480991d45dfea11d62ff8Christian Maederfi
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder
7bf4436b6f9987b070033a323757b206c898c1beChristian MaederAPACHE_USER_ENVVARS=${APACHE_ETC_ROOT}/envvars
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maedergetprop httpd/enable_64bit
7bf4436b6f9987b070033a323757b206c898c1beChristian Maederif [ "${PROPVAL}" != "" ] ; then
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder case ${PROPVAL} in
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder true|1)
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder # Check if the system architecture supports 64-bit applications
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder PLATFORM=`isainfo -b`
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder if [ "${PLATFORM}" != "64" ]; then
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder echo "This system is not capable of supporting 64-bit applications."
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder echo "Set \"enable_64bit\" property value to \"false\" to start the 32-bit server."
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder exit $SMF_EXIT_ERR_CONFIG
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder fi
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder # 64 bit Apache
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder PLATFORM_DIR=::ISAINFO::
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder ;;
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder false|0)
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder # 32 bit Apache
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder PLATFORM_DIR=
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder ;;
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder *)
54a0a1e10bd93721cf52dbd9b816c8f108997ec0Christian Maeder # Invalid value for "bitness"
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder echo "\"bitness\" property value is invalid. Starting the server in 32-bit mode"
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder PLATFORM_DIR=
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder ;;
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder esac
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maederfi
9603ad7198b72e812688ad7970e4eac4b553837aKlaus Luettich
4e2331b387b90a234dc36b12c778914d3e202718Christian MaederAPACHE_HOME=${APACHE_USR_ROOT}
4e2331b387b90a234dc36b12c778914d3e202718Christian MaederAPACHE_BIN=${APACHE_HOME}/bin${PLATFORM_DIR}
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder
4e2331b387b90a234dc36b12c778914d3e202718Christian Maedergetprop httpd/startup_options
4e2331b387b90a234dc36b12c778914d3e202718Christian Maederif [ "${PROPVAL}" != "" ] ; then
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder echo startupoptions set
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder echo val=${PROPVAL}
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder STARTUP_OPTIONS="${PROPVAL} -k"
9603ad7198b72e812688ad7970e4eac4b553837aKlaus Luettich envvars_path_update "${PROPVAL}"
4e2331b387b90a234dc36b12c778914d3e202718Christian Maederfi
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder
9603ad7198b72e812688ad7970e4eac4b553837aKlaus Luettichgetprop httpd/server_type
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maederif [ "${PROPVAL}" != "" ] ; then
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maeder SERVER_TYPE=${PROPVAL}
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maederfi
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maeder
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maedercase ${SERVER_TYPE} in
4e2331b387b90a234dc36b12c778914d3e202718Christian Maederprefork)
ebdce567033765c1f16ccf25d721c02986a5da33Klaus Luettich HTTPD=${APACHE_BIN}/httpd
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder ;;
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maederworker)
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder HTTPD=${APACHE_BIN}/httpd.worker
9603ad7198b72e812688ad7970e4eac4b553837aKlaus Luettich ;;
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder*)
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder if [ "x${APACHE_VERSION}" != "x" ]; then
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder echo "Unknown server_type"
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder exit $SMF_EXIT_ERR_CONFIG
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich fi
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder ;;
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maederesac
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maedercase "$1" in
7bf4436b6f9987b070033a323757b206c898c1beChristian Maederstart)
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder cmd="start"
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder ;;
7bf4436b6f9987b070033a323757b206c898c1beChristian Maederrefresh)
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder cmd="graceful"
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maeder ;;
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maederstop)
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder cmd="stop"
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder ;;
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder*)
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder echo "Usage: $0 {start|stop|refresh}"
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder exit $SMF_EXIT_ERR_CONFIG
4e2331b387b90a234dc36b12c778914d3e202718Christian Maeder ;;
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maederesac
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maeder
7bf4436b6f9987b070033a323757b206c898c1beChristian MaederHTTPD="${HTTPD}" APACHE_USER_ENVVARS="${APACHE_USER_ENVVARS}" ${APACHE_BIN}/apachectl ${STARTUP_OPTIONS} ${cmd} 2>&1
7bf4436b6f9987b070033a323757b206c898c1beChristian Maeder
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettichif [ $? -ne 0 ]; then
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maeder echo "Server failed to start. Check the error log (defaults to ${APACHE_VAR_ROOT}/logs/error_log) for more information, if any."
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich exit $SMF_EXIT_ERR_FATAL
7f7460e7095628f3437b116ee78d3043d11f8febChristian Maederfi
eac3174ea16c143bfaeb3f2e2103a11a2f162c6cChristian Maeder
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettichexit $SMF_EXIT_OK
5fcb1cb8c190e9bfb8d5c06c2e7d7a4b65f361acKlaus Luettich