Kristyna Streitova
de7dee913a
- access_compat shared also for 11sp3 - apache2-implicit-pointer-decl.patch renamed to httpd-implicit-pointer-decl.patch to align with other patches names - apachectl is now wrapper to start_apache2; therefore, it honors HTTPD_INSTANCE variable, see README-instances.txt for details + httpd-apachectl.patch - httpd-2.4.10-apachectl.patch - a2enmod/a2dismod and a2enflag/a2disflag now respect HTTPD_INSTANCE=<instance_name> environment variable, which can be used to specify apache instance name; sysconfig file is expected at /etc/sysconfig/apache2@<instance_name> (see README-instances.txt for details) - provides suse_maintenance_mmn symbol [bnc#915666] (internal) - credits to Roman Drahtmueller: * add reference to /etc/permissions.local to output of %post if setting the permissions of suexec2 fails * do not enable mod_php5 by default any longer * httpd-2.0.49-log_server_status.dif obsoleted * apache2-mod_ssl_npn.patch removed because not used * include mod_reqtimeout.conf in httpd.conf * added cgid-timeout.conf, include it in httpd.conf - fix default value APACHE_MODULES in sysconfig file - %service_* macros for apache2@.service OBS-URL: https://build.opensuse.org/request/show/316550 OBS-URL: https://build.opensuse.org/package/show/Apache/apache2?expand=0&rev=453
150 lines
4.0 KiB
Bash
150 lines
4.0 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Copyright (c) 1996, 1997, 1998 S.u.S.E. GmbH
|
|
# Copyright (c) 1998, 1999, 2000, 2001 SuSE GmbH
|
|
# Copyright (c) 2002, 2003, (2004?) SuSE Linux AG
|
|
# Copyright (c) 2004(?), 2005, 2006, 2007, 2008 SUSE Linux Products GmbH
|
|
#
|
|
# Authors: Rolf Haberrecker <apache@suse.de>, 2001
|
|
# Peter Poeml <apache@suse.de>, 2002, 2003, 2004, 2005, 2006, 2007,
|
|
# 2008, 2009, 2010
|
|
#
|
|
#
|
|
|
|
. /usr/share/apache2/script-helpers
|
|
|
|
#
|
|
# which instance should we will run
|
|
#
|
|
|
|
unset instance_suffix
|
|
if [ -n "$HTTPD_INSTANCE" ]; then
|
|
instance_suffix="@$HTTPD_INSTANCE"
|
|
fi
|
|
|
|
#
|
|
# load sysconfig variables APACHE_* from instance sysconfig
|
|
# file
|
|
#
|
|
export SYSCONFIG_FILE=/etc/sysconfig/apache2${instance_suffix}
|
|
load_sysconfig
|
|
|
|
unset server_flags
|
|
#
|
|
# server_flags: -DSYSCONFIG
|
|
#
|
|
if [ -f "$SYSCONFIG_FILE" ]; then
|
|
server_flags="$server_flags -DSYSCONFIG"
|
|
fi
|
|
|
|
#
|
|
# figure out correct apache2 binary (/usr/sbin/httpd-prefork,
|
|
# /usr/sbin/httpd-worker, etc.) and serverflags
|
|
#
|
|
find_mpm
|
|
if [ -n "$HTTPD_MPM" ]; then
|
|
apache_bin="$HTTPD_SBIN_BASE-$HTTPD_MPM"
|
|
if ! [ -x $apache_bin ]; then
|
|
echo >&2 "$apache_bin-$APACHE_MPM is not a valid httpd binary."
|
|
echo >&2 "Check your APACHE_MPM setting in /etc/sysconfig/apache2."
|
|
exit 1
|
|
fi
|
|
else
|
|
echo >&2 "${warn}No Apache binary found. No MPM package installed? $norm"
|
|
echo >&2 "Hint: install the apache2-prefork package, and try again."
|
|
exit 1
|
|
fi
|
|
|
|
# server flags from APACHE_SERVER_FLAGS
|
|
for i in $APACHE_SERVER_FLAGS; do
|
|
case $i in
|
|
-D) ;;
|
|
-D*) server_flags="$server_flags $i";;
|
|
*) server_flags="$server_flags -D$i";;
|
|
esac
|
|
done
|
|
|
|
#
|
|
# head configuration file
|
|
#
|
|
httpd_conf=${APACHE_HTTPD_CONF:-/etc/apache2${instance_suffix}/httpd.conf}
|
|
|
|
#
|
|
# set PidFile to this file name; PidFile should not
|
|
# be used in the configuration to change this, otherwise
|
|
# stopping will not work
|
|
#
|
|
pid_file=/var/run/httpd${instance_suffix}.pid
|
|
|
|
unset sysconfig_setting
|
|
#
|
|
# involve the sysconfig variables
|
|
#
|
|
# APACHE_ACCESS_LOG
|
|
if [ -n "$APACHE_ACCESS_LOG" ]; then
|
|
sysconfig_setting=("${sysconfig_setting[@]}" "-C" "CustomLog $APACHE_ACCESS_LOG")
|
|
fi
|
|
# APACHE_CONF_INCLUDE_FILES
|
|
for file in $APACHE_CONF_INCLUDE_FILES; do
|
|
sysconfig_setting=("${sysconfig_setting[@]}" "-C" "Include $file")
|
|
done
|
|
# APACHE_CONF_INCLUDE_DIRS
|
|
for dir in $APACHE_CONF_INCLUDE_DIRS; do
|
|
sysconfig_setting=("${sysconfig_setting[@]}" "-C" "Include $dir")
|
|
done
|
|
# APACHE_SERVERADMIN
|
|
if [ -n "$APACHE_SERVERADMIN" ]; then
|
|
sysconfig_setting=("${sysconfig_setting[@]}" "-C" "ServerAdmin $APACHE_SERVERADMIN")
|
|
fi
|
|
# APACHE_SERVERNAME
|
|
if [ -n "$APACHE_SERVERNAME" ]; then
|
|
sysconfig_setting=("${sysconfig_setting[@]}" "-C" "ServerName $APACHE_SERVERNAME")
|
|
fi
|
|
# APACHE_START_TIMEOUT
|
|
# not used nowadays
|
|
# APACHE_SERVERSIGNATURE
|
|
if [ -n "$APACHE_SERVERSIGNATURE" ]; then
|
|
sysconfig_setting=("${sysconfig_setting[@]}" "-C" "ServerSignature $APACHE_SERVERSIGNATURE")
|
|
fi
|
|
# APACHE_LOGLEVEL
|
|
if [ -n "$APACHE_LOGLEVEL" ]; then
|
|
sysconfig_setting=("${sysconfig_setting[@]}" "-C" "LogLevel $APACHE_LOGLEVEL")
|
|
fi
|
|
# APACHE_USE_CANONICAL_NAME
|
|
if [ -n "$APACHE_USE_CANONICAL_NAME" ]; then
|
|
sysconfig_setting=("${sysconfig_setting[@]}" "-C" "UseCanonicalName $APACHE_USE_CANONICAL_NAME")
|
|
fi
|
|
# APACHE_SERVERTOKENS
|
|
if [ -n "$APACHE_SERVERTOKENS" ]; then
|
|
sysconfig_setting=("${sysconfig_setting[@]}" "-C" "ServerTokens $APACHE_SERVERTOKENS")
|
|
fi
|
|
# APACHE_EXTENDED_STATUS
|
|
if [ -n "$APACHE_EXTENDED_STATUS" ]; then
|
|
sysconfig_setting=("${sysconfig_setting[@]}" "-C" "ExtendedStatus $APACHE_EXTENDED_STATUS")
|
|
fi
|
|
# APACHE_MODULES
|
|
get_module_list
|
|
module_ids=($HTTPD_MODULE_IDS)
|
|
module_paths=($HTTPD_MODULE_PATHS)
|
|
for i in "${!module_ids[@]}"; do
|
|
sysconfig_setting=("${sysconfig_setting[@]}" "-C" "LoadModule ${module_ids[$i]} ${module_paths[$i]}")
|
|
done
|
|
|
|
#
|
|
# a proper home should be set, otherwise the server might end up
|
|
# with HOME=/root and some script might try to use that
|
|
#
|
|
HOME=/var/lib/apache2${instance_suffix}
|
|
|
|
#
|
|
# run Apache
|
|
#
|
|
|
|
exec $apache_bin -f $httpd_conf $server_flags \
|
|
-C "PidFile $pid_file" \
|
|
"${sysconfig_setting[@]}" \
|
|
$@
|
|
|
|
exit 0
|
|
|