components/apache24/Solaris/http-apache24
author Petr Sumbera <petr.sumbera@oracle.com>
Wed, 25 Feb 2015 02:02:14 -0800
branchs11-update
changeset 3877 d7cb5bc8ee50
parent 2765 components/apache2/Solaris/http-apache22@da9ddef602cf
permissions -rw-r--r--
PSARC/2014/253 Apache 2.4 integration; EOF Apache 2.2 PSARC/2015/007 Apache FIPS 140-2 mod_ssl module 15795895 SUNBT7174116 Update Apache HTTP server to 2.4 15582360 SUNBT6871471 don't load big or infrequently-used modules that can't do anything 15806981 SUNBT7187825 Improve Apache HTTPD packaging in regards to loadable modules 15253627 SUNBT6239654 RFE: Apache2 could run with reduced privileges by default 19173368 Apache should be FIPS-140 ready
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
278
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     1
#!/sbin/sh
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     2
#
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     3
# CDDL HEADER START
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     4
#
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     8
#
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    12
# and limitations under the License.
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    13
#
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    19
#
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    20
# CDDL HEADER END
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    21
#
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    22
#
3877
d7cb5bc8ee50 PSARC/2014/253 Apache 2.4 integration; EOF Apache 2.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2765
diff changeset
    23
# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
278
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    24
#
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    25
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    26
. /lib/svc/share/smf_include.sh
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    27
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    28
APACHE_VERSION=
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    29
APACHE_USR_ROOT=/usr/apache2
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    30
APACHE_ETC_ROOT=/etc/apache2
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    31
APACHE_VAR_ROOT=/var/apache2
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    32
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    33
#if startup options contain multiple arguments separated by a blank,
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    34
#then they should be specified as below
3877
d7cb5bc8ee50 PSARC/2014/253 Apache 2.4 integration; EOF Apache 2.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2765
diff changeset
    35
#e.g., %> svccfg -s apache24 setprop 'httpd/startup_options=("-f" "/etc/apache2/2.4/new.conf")'
278
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    36
#
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    37
STARTUP_OPTIONS=
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    38
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    39
getprop() {
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    40
    PROPVAL=""
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    41
    svcprop -q -p $1 ${SMF_FMRI}
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    42
    if [ $? -eq 0 ] ; then
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    43
        PROPVAL=`svcprop -p $1 ${SMF_FMRI}`
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    44
        if [ "${PROPVAL}" = "\"\"" ] ; then
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    45
            PROPVAL=""
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    46
        fi
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    47
        return
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    48
    fi
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    49
    return
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    50
}
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    51
2765
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    52
# Check whether alternate config file was specified using option -f.
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    53
# If it's the case, Apache will search in the same directory for
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    54
# availability of environment file.
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    55
envvars_path_update() {
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    56
    eval "set -- $1"
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    57
    while [ $# -gt 0 ]; do
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    58
        case "$1" in
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    59
          -f) APACHE_USER_ENVVARS=`dirname "${2:-}"`/envvars; break;;
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    60
          -f*) APACHE_USER_ENVVARS=`dirname "${1#-f}"`/envvars; break;;
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    61
        esac
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    62
        shift
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    63
    done
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    64
}
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    65
278
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    66
APACHE_VERSION=`echo ${SMF_FMRI} | sed 's/[^0-9]//g;s/./\.&/g;s/^\.//'` 
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    67
if [ "x${APACHE_VERSION}" != "x" ]; then
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    68
    echo "Apache version is ${APACHE_VERSION}"
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    69
    APACHE_USR_ROOT=${APACHE_USR_ROOT}/${APACHE_VERSION}
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    70
    APACHE_ETC_ROOT=${APACHE_ETC_ROOT}/${APACHE_VERSION}
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    71
    APACHE_VAR_ROOT=${APACHE_VAR_ROOT}/${APACHE_VERSION}
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    72
fi
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    73
716
2d2eb53223b2 7143740 svc:/system/install/server:default can conflict with svc:/network/http:apache22
Tomas Dzik <Tomas.Dzik@oracle.com>
parents: 278
diff changeset
    74
APACHE_USER_ENVVARS=${APACHE_ETC_ROOT}/envvars
2d2eb53223b2 7143740 svc:/system/install/server:default can conflict with svc:/network/http:apache22
Tomas Dzik <Tomas.Dzik@oracle.com>
parents: 278
diff changeset
    75
278
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    76
APACHE_HOME=${APACHE_USR_ROOT}
3877
d7cb5bc8ee50 PSARC/2014/253 Apache 2.4 integration; EOF Apache 2.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2765
diff changeset
    77
APACHE_BIN=${APACHE_HOME}/bin
d7cb5bc8ee50 PSARC/2014/253 Apache 2.4 integration; EOF Apache 2.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2765
diff changeset
    78
HTTPD=${APACHE_BIN}/httpd
278
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    79
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    80
getprop httpd/startup_options
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    81
if [ "${PROPVAL}" != "" ] ; then
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    82
	echo startupoptions set
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    83
	echo val=${PROPVAL}
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    84
	STARTUP_OPTIONS="${PROPVAL} -k"
2765
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
    85
        envvars_path_update "${PROPVAL}"
278
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    86
fi
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    87
3877
d7cb5bc8ee50 PSARC/2014/253 Apache 2.4 integration; EOF Apache 2.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2765
diff changeset
    88
getprop httpd/MPM
d7cb5bc8ee50 PSARC/2014/253 Apache 2.4 integration; EOF Apache 2.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2765
diff changeset
    89
if [ "${PROPVAL}x" == "workerx" ] || [ "${PROPVAL}x" == "preforkx" ] ; then
d7cb5bc8ee50 PSARC/2014/253 Apache 2.4 integration; EOF Apache 2.2
Petr Sumbera <petr.sumbera@oracle.com>
parents: 2765
diff changeset
    90
	HTTPD="${HTTPD} -D ${PROPVAL}"
278
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    91
fi
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    92
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    93
case "$1" in
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    94
start)
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    95
	cmd="start"
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    96
	;;
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    97
refresh)
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    98
	cmd="graceful"
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    99
	;;
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   100
stop)
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   101
	cmd="stop"
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   102
	;;
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   103
*)
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   104
	echo "Usage: $0 {start|stop|refresh}"
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   105
	exit $SMF_EXIT_ERR_CONFIG
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   106
	;;
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   107
esac
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   108
2765
da9ddef602cf 15771644 SUNBT7143713 RFE: allow multiple Apache 2.2 instances to be run
Petr Sumbera <petr.sumbera@oracle.com>
parents: 716
diff changeset
   109
HTTPD="${HTTPD}" APACHE_USER_ENVVARS="${APACHE_USER_ENVVARS}" ${APACHE_BIN}/apachectl ${STARTUP_OPTIONS} ${cmd} 2>&1
278
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   110
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   111
if [ $? -ne 0 ]; then
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   112
    echo "Server failed to start. Check the error log (defaults to ${APACHE_VAR_ROOT}/logs/error_log) for more information, if any."
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   113
    exit $SMF_EXIT_ERR_FATAL
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   114
fi
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   115
77b380ba9d84 7045614 Move Apache Web server to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
   116
exit $SMF_EXIT_OK