Apache 2.4: full systemd support.

This commit is contained in:
Christoph 2017-12-28 16:47:10 +01:00
parent 397c78aa25
commit 600a1828af

View File

@ -1,5 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
_backup_suffix=".BAK"
_backup_date="$(date +%Y%m%d-%H%M)"
# httpd Apapche Webserver # httpd Apapche Webserver
# #
@ -92,6 +95,16 @@ _BASE_WEBSPACE_DIR="/var/www"
## - DO NOT CHANGE ---------------------------------- ## - DO NOT CHANGE ----------------------------------
## - ## -
# - systemd supported by OS ?
# -
_systemd="$(which systemctl)"
_systemctl="$(which systemctl)"
if [[ -z "$_systemd" ]] && [[ -z "$_systemctl" ]]; then
SYSTEMD_SUPPORTED=false
else
SYSTEMD_SUPPORTED=true
fi
## - Determin httpd binary ## - Determin httpd binary
## - ## -
_httpd_binary="`which httpd`" _httpd_binary="`which httpd`"
@ -102,6 +115,12 @@ if [ -z "$_httpd_binary" ]; then
_httpd_binary="/usr/local/apache2/bin/httpd" _httpd_binary="/usr/local/apache2/bin/httpd"
fi fi
fi fi
fi
_httpd_current_version=
if [ -n "$_httpd_binary" ]; then
_httpd_current_version="$($_httpd_binary -v | grep -i version | awk '{print$3}' | cut -d'/' -f2)"
fi fi
APACHE_WEBSERVICE_RUNNING=false APACHE_WEBSERVICE_RUNNING=false
@ -123,8 +142,10 @@ if [ -x "$_httpd_binary" ];then
PID=$(ps aux | grep "$(realpath $_httpd_binary)" | grep -e "^root" | grep -v grep | awk '{print$2}') PID=$(ps aux | grep "$(realpath $_httpd_binary)" | grep -e "^root" | grep -v grep | awk '{print$2}')
if [[ "X${PID}X" = "XX" ]] ;then if [[ "X${PID}X" = "XX" ]] ;then
APACHE_WEBSERVICE_RUNNING=false APACHE_WEBSERVICE_RUNNING=false
START_APACHE_WEBSERVICE=false
else else
APACHE_WEBSERVICE_RUNNING=true APACHE_WEBSERVICE_RUNNING=true
START_APACHE_WEBSERVICE=true
fi fi
fi fi
@ -481,38 +502,41 @@ echo -e "\033[32m--\033[m"
echo "" echo ""
echo "Some server configuration" echo "Some server configuration"
echo "" echo ""
echo " - Sysmlink for initscript (/etc/init.d/apache2)" #echo " - Sysmlink for initscript (/etc/init.d/apache2)"
echo " - Sysmlink for installation directory (/usr/local/apache2)" echo " - Sysmlink for installation directory (/usr/local/apache2)"
echo " - Start at boot time" echo " - Start at boot time"
echo "" echo ""
if [[ ! -f "/etc/init.d/apache2" ]] ; then #if [[ ! -f "/etc/init.d/apache2" ]] ; then
_SYMLINK_INITSCRIPT=yes # _SYMLINK_INITSCRIPT=yes
else #else
_SYMLINK_INITSCRIPT=no # _SYMLINK_INITSCRIPT=no
fi #fi
__SYMLINK_INITSCRIPT= #__SYMLINK_INITSCRIPT=
while [ "X$__SYMLINK_INITSCRIPT" = "X" ] #while [ "X$__SYMLINK_INITSCRIPT" = "X" ]
do #do
echononl "Sysmlink for initscript (yes/no) [${_SYMLINK_INITSCRIPT}]: " # echononl "Sysmlink for initscript (yes/no) [${_SYMLINK_INITSCRIPT}]: "
read __SYMLINK_INITSCRIPT # read __SYMLINK_INITSCRIPT
if [ "X$__SYMLINK_INITSCRIPT" = "X" ]; then # if [ "X$__SYMLINK_INITSCRIPT" = "X" ]; then
__SYMLINK_INITSCRIPT=$_SYMLINK_INITSCRIPT # __SYMLINK_INITSCRIPT=$_SYMLINK_INITSCRIPT
fi # fi
done #done
__SYMLINK_INITSCRIPT=`echo $__SYMLINK_INITSCRIPT | tr '[:upper:]' '[:lower:]'` #__SYMLINK_INITSCRIPT=`echo $__SYMLINK_INITSCRIPT | tr '[:upper:]' '[:lower:]'`
if [ "$__SYMLINK_INITSCRIPT" = "yes" ] ; then #if [ "$__SYMLINK_INITSCRIPT" = "yes" ] ; then
SYMLINK_INITSCRIPT=true # SYMLINK_INITSCRIPT=true
START_APACHE_WEBSERVICE=true # START_APACHE_WEBSERVICE=true
else #else
SYMLINK_INITSCRIPT=false # SYMLINK_INITSCRIPT=false
START_APACHE_WEBSERVICE=false # START_APACHE_WEBSERVICE=false
fi #fi
if [[ ! -f "/usr/local/apache2" ]]; then if [[ ! -f "/usr/local/apache2" ]]; then
_SYMLINK_INSTALL_DIR=yes _SYMLINK_INSTALL_DIR=yes
_START_AT_BOOTTIME=yes
else else
_SYMLINK_INSTALL_DIR=no _SYMLINK_INSTALL_DIR=no
_START_AT_BOOTTIME=no
fi fi
__SYMLINK_INSTALL_DIR= __SYMLINK_INSTALL_DIR=
while [ "X$__SYMLINK_INSTALL_DIR" = "X" ] while [ "X$__SYMLINK_INSTALL_DIR" = "X" ]
do do
@ -529,11 +553,6 @@ else
SYMLINK_INSTALL_DIR=false SYMLINK_INSTALL_DIR=false
fi fi
if $SYMLINK_INITSCRIPT ; then
_START_AT_BOOTTIME=yes
else
_START_AT_BOOTTIME=no
fi
__START_AT_BOOTTIME= __START_AT_BOOTTIME=
while [ "X$__START_AT_BOOTTIME" = "X" ] while [ "X$__START_AT_BOOTTIME" = "X" ]
do do
@ -706,13 +725,13 @@ while [ "X$OK" != "Xyes" -a "X$OK" != "Xno" ]; do
OK=`echo "$OK" | tr '[:upper:]' '[:lower:]'` OK=`echo "$OK" | tr '[:upper:]' '[:lower:]'`
done done
if [ "$OK" = "yes" ]; then if [ "$OK" = "yes" ]; then
SYSTEMD_EXISTS=false SYSTEMD_SUPPORTED=false
fi
if $SYSTEMD_SUPPORTED ; then
INIT_SCRIPT_SUPPORTED=false
else else
if [ "X`which systemd`" = "X" ]; then INIT_SCRIPT_SUPPORTED=true
SYSTEMD_EXISTS=false
else
SYSTEMD_EXISTS=true
fi
fi fi
@ -745,13 +764,14 @@ echo ""
echo "standard (non-ssl) port.......: $HTTPD_PORT" echo "standard (non-ssl) port.......: $HTTPD_PORT"
echo "ssl port......................: $HTTPD_SSL_PORT" echo "ssl port......................: $HTTPD_SSL_PORT"
echo "" echo ""
echo "Symlink /etc/init.d/apache2...: $SYMLINK_INITSCRIPT" #echo "Symlink /etc/init.d/apache2...: $SYMLINK_INITSCRIPT"
echo "Symlink /usr/local/apache2....: $SYMLINK_INSTALL_DIR" echo "Symlink /usr/local/apache2....: $SYMLINK_INSTALL_DIR"
echo "Start at boot time............: $START_AT_BOOTTIME" echo "Start at boot time............: $START_AT_BOOTTIME"
echo "" echo ""
echo "Set umask to \"0002\"...........: $SET_UMASK" echo "Set umask to \"0002\"...........: $SET_UMASK"
echo "" echo ""
echo "System supports systemd.......: $SYSTEMD_EXISTS" echo "Install start init script.....: $INIT_SCRIPT_SUPPORTED"
echo "System supports systemd.......: $SYSTEMD_SUPPORTED"
echo "" echo ""
echo "Include mod_proxy_cgi.........: $WITH_MOD_PROXY_FCGI" echo "Include mod_proxy_cgi.........: $WITH_MOD_PROXY_FCGI"
echo "" echo ""
@ -785,7 +805,7 @@ echo ""
if [ -d "$_logdir" ];then if [ -d "$_logdir" ];then
echononl "\tVerschiebe exitierendes Logverzeichnis ..." echononl "\tVerschiebe exitierendes Logverzeichnis ..."
mv $_logdir $_logdir.`date +%Y%m%d-%H%M` mv $_logdir $_logdir.${_backup_date}
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
@ -809,7 +829,7 @@ echo "## -----------" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "## - httpd version.................: $APACHE_VERSION" >> ${_logdir}/main.log echo "## - httpd version.................: $APACHE_VERSION" >> ${_logdir}/main.log
echo "## - apr version................: $APR_VERSION" >> ${_logdir}/main.log echo "## - apr version................: $APR_VERSION" >> ${_logdir}/main.log
echo "## - apr-uril version...........: $APR_UTIL_VERSION" >> ${_logdir}/main.log echo "## - apr-util version...........: $APR_UTIL_VERSION" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "## - apache user...................: $HTTPD_USER" >> ${_logdir}/main.log echo "## - apache user...................: $HTTPD_USER" >> ${_logdir}/main.log
echo "## - apache group..................: $HTTPD_GROUP" >> ${_logdir}/main.log echo "## - apache group..................: $HTTPD_GROUP" >> ${_logdir}/main.log
@ -831,11 +851,12 @@ echo "## - " >> ${_logdir}/main.log
echo "## - standard (non-ssl) port.......: $HTTPD_PORT" >> ${_logdir}/main.log echo "## - standard (non-ssl) port.......: $HTTPD_PORT" >> ${_logdir}/main.log
echo "## - ssl port......................: $HTTPD_SSL_PORT" >> ${_logdir}/main.log echo "## - ssl port......................: $HTTPD_SSL_PORT" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "## - Symlink /etc/init.d/apache2...: $SYMLINK_INITSCRIPT" >> ${_logdir}/main.log #echo "## - Symlink /etc/init.d/apache2...: $SYMLINK_INITSCRIPT" >> ${_logdir}/main.log
echo "## - Symlink /usr/local/apache2....: $SYMLINK_INSTALL_DIR" >> ${_logdir}/main.log echo "## - Symlink /usr/local/apache2....: $SYMLINK_INSTALL_DIR" >> ${_logdir}/main.log
echo "## - Start at boot time............: $START_AT_BOOTTIME" >> ${_logdir}/main.log echo "## - Start at boot time............: $START_AT_BOOTTIME" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "## - System supports systemd.......: $SYSTEMD_EXISTS" >> ${_logdir}/main.log echo "## - Install start init script.....: $INIT_SCRIPT_SUPPORTED" >> ${_logdir}/main.log
echo "## - System supports systemd.......: $SYSTEMD_SUPPORTED" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "## - Include mod_php...............: $WITH_MOD_PHP" >> ${_logdir}/main.log echo "## - Include mod_php...............: $WITH_MOD_PHP" >> ${_logdir}/main.log
if $WITH_MOD_PHP ; then if $WITH_MOD_PHP ; then
@ -861,10 +882,14 @@ echo "" >> ${_logdir}/main.log
echo "APACHE_VERSION=$APACHE_VERSION" >> ${_logdir}/main.log echo "APACHE_VERSION=$APACHE_VERSION" >> ${_logdir}/main.log
echo "APR_VERSION=$APR_VERSION" >> ${_logdir}/main.log echo "APR_VERSION=$APR_VERSION" >> ${_logdir}/main.log
echo "APR_UTIL_VERSION=$APR_UTIL_VERSION" >> ${_logdir}/main.log echo "APR_UTIL_VERSION=$APR_UTIL_VERSION" >> ${_logdir}/main.log
echo "HTTPD_USER=$HTTPD_USER" >> ${_logdir}/main.log
echo "HTTPD_GROUP=$HTTPD_GROUP" >> ${_logdir}/main.log
echo "PREFIX=$PREFIX" >> ${_logdir}/main.log
echo "BASE_WEBSPACE_DIR=$BASE_WEBSPACE_DIR" >> ${_logdir}/main.log echo "BASE_WEBSPACE_DIR=$BASE_WEBSPACE_DIR" >> ${_logdir}/main.log
echo "GLOBAL_DOC_ROOT=\"${BASE_WEBSPACE_DIR}/default\"" >> ${_logdir}/main.log echo "GLOBAL_DOC_ROOT=$GLOBAL_DOC_ROOT" >> ${_logdir}/main.log
echo "SERVER_NAME=$SERVER_NAME" >> ${_logdir}/main.log
echo "SERVER_ADMIN=$SERVER_ADMIN" >> ${_logdir}/main.log
echo "SUEXEC_DOC_ROOT=$BASE_WEBSPACE_DIR" >> ${_logdir}/main.log echo "SUEXEC_DOC_ROOT=$BASE_WEBSPACE_DIR" >> ${_logdir}/main.log
echo "HTTPD_USER=$HTTPD_GROUP" >> ${_logdir}/main.log
echo "IPv4_ADDRESSES=\"$IPv4_ADDRESSES\"" >> ${_logdir}/main.log echo "IPv4_ADDRESSES=\"$IPv4_ADDRESSES\"" >> ${_logdir}/main.log
echo "IPv6_ADDRESSES=\"$IPv6_ADDRESSES\"" >> ${_logdir}/main.log echo "IPv6_ADDRESSES=\"$IPv6_ADDRESSES\"" >> ${_logdir}/main.log
echo "IP_ADDRESSES=\"$IP_ADDRESSES\"" >> ${_logdir}/main.log echo "IP_ADDRESSES=\"$IP_ADDRESSES\"" >> ${_logdir}/main.log
@ -872,11 +897,15 @@ echo "SEPARATE_LISTEN_DIRECTIVES=$SEPARATE_LISTEN_DIRECTIVES" >> ${_logdir}/main
echo "STATUS_URL=\"$STATUS_URL\"" >> ${_logdir}/main.log echo "STATUS_URL=\"$STATUS_URL\"" >> ${_logdir}/main.log
echo "HTTPD_PORT=$HTTPD_PORT" >> ${_logdir}/main.log echo "HTTPD_PORT=$HTTPD_PORT" >> ${_logdir}/main.log
echo "HTTPD_SSL_PORT=$HTTPD_SSL_PORT" >> ${_logdir}/main.log echo "HTTPD_SSL_PORT=$HTTPD_SSL_PORT" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log echo "SYMLINK_INSTALL_DIR=$SYMLINK_INSTALL_DIR" >> ${_logdir}/main.log
echo "START_AT_BOOTTIME=$START_AT_BOOTTIME" >> ${_logdir}/main.log
echo "INIT_SCRIPT_SUPPORTED=$INIT_SCRIPT_SUPPORTED" >> ${_logdir}/main.log
echo "SYSTEMD_SUPPORTED=$SYSTEMD_SUPPORTED" >> ${_logdir}/main.log
echo "WITH_MOD_PHP=$WITH_MOD_PHP" >> ${_logdir}/main.log echo "WITH_MOD_PHP=$WITH_MOD_PHP" >> ${_logdir}/main.log
if $WITH_MOD_PHP ; then if $WITH_MOD_PHP ; then
echo "PHP_VERSION=$PHP_VERSION" >> ${_logdir}/main.log echo "PHP_VERSION=$PHP_VERSION" >> ${_logdir}/main.log
fi fi
echo "WITH_MOD_PROXY_FCGI=$WITH_MOD_PROXY_FCGI" >> ${_logdir}/main.log
echo "WITH_MOD_FCGID=$WITH_MOD_FCGID" >> ${_logdir}/main.log echo "WITH_MOD_FCGID=$WITH_MOD_FCGID" >> ${_logdir}/main.log
if $WITH_MOD_FCGID ; then if $WITH_MOD_FCGID ; then
echo "MOD_FCGID_VERSION=$MOD_FCGID_VERSION" >> ${_logdir}/main.log echo "MOD_FCGID_VERSION=$MOD_FCGID_VERSION" >> ${_logdir}/main.log
@ -894,7 +923,7 @@ if $WITH_MOD_FCGID ; then
APXS="$PREFIX/bin/apxs" APXS="$PREFIX/bin/apxs"
_builddir_fcgid=${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}_httpd-${APACHE_VERSION} _builddir_fcgid=${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}_httpd-${APACHE_VERSION}
if [ -d "$_builddir_fcgid" ]; then if [ -d "$_builddir_fcgid" ]; then
mv $_builddir_fcgid ${_builddir_fcgid}.`date +%Y%m%d-%H%M` mv $_builddir_fcgid ${_builddir_fcgid}.${_backup_date}
fi fi
fi fi
@ -902,15 +931,13 @@ if $WITH_MOD_PERL ; then
APXS="$PREFIX/bin/apxs" APXS="$PREFIX/bin/apxs"
_builddir_perl=${_srcdir}/mod_perl-${MOD_PERL_VERSION}_httpd-${APACHE_VERSION} _builddir_perl=${_srcdir}/mod_perl-${MOD_PERL_VERSION}_httpd-${APACHE_VERSION}
if [ -d "$_builddir_perl" ]; then if [ -d "$_builddir_perl" ]; then
mv $_builddir_perl ${_builddir_perl}.`date +%Y%m%d-%H%M` mv $_builddir_perl ${_builddir_perl}.${_backup_date}
fi fi
fi fi
_httpdconf=${PREFIX}/conf/httpd.conf _httpdconf=${PREFIX}/conf/httpd.conf
_rel_confextra_path=conf/extra _rel_confextra_path=conf/extra
_backup_suffix=".BAK"
echo "PREFIX=$PREFIX" >> ${_logdir}/main.log echo "PREFIX=$PREFIX" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echo "APXS=\"$PREFIX/bin/apxs\"" >> ${_logdir}/main.log echo "APXS=\"$PREFIX/bin/apxs\"" >> ${_logdir}/main.log
@ -1054,8 +1081,8 @@ else
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echo "## - Move (backup) existing source directory apr-$APR_VERSION ..." >> ${_logdir}/main.log echo "## - Move (backup) existing source directory apr-$APR_VERSION ..." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "mv ${_srcdir}/apr-$APR_VERSION ${_srcdir}/apr-$APR_VERSION.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log echo "mv ${_srcdir}/apr-$APR_VERSION ${_srcdir}/apr-$APR_VERSION.${_backup_date}" >> ${_logdir}/main.log
mv ${_srcdir}/apr-$APR_VERSION ${_srcdir}/apr-$APR_VERSION.`date +%Y%m%d-%H%M` mv ${_srcdir}/apr-$APR_VERSION ${_srcdir}/apr-$APR_VERSION.${_backup_date}
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
@ -1129,8 +1156,8 @@ else
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echo "## - Move (backup) existing install directory apr-${APR_VERSION}.." >> ${_logdir}/main.log echo "## - Move (backup) existing install directory apr-${APR_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "mv /usr/local/apr-${APR_VERSION} /usr/local/apr-${APR_VERSION}.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log echo "mv /usr/local/apr-${APR_VERSION} /usr/local/apr-${APR_VERSION}.${_backup_date}" >> ${_logdir}/main.log
mv /usr/local/apr-${APR_VERSION} /usr/local/apr-${APR_VERSION}.`date +%Y%m%d-%H%M` >> ${_logdir}/main.log 2>&1 mv /usr/local/apr-${APR_VERSION} /usr/local/apr-${APR_VERSION}.${_backup_date} >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
@ -1208,8 +1235,8 @@ else
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echo "## - Move (backup) existing source directory apr-util-$APR_UTIL_VERSIO.." >> ${_logdir}/main.log echo "## - Move (backup) existing source directory apr-util-$APR_UTIL_VERSIO.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "mv ${_srcdir}/apr-util-$APR_UTIL_VERSION ${_srcdir}/apr-util-$APR_UTIL_VERSION.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log echo "mv ${_srcdir}/apr-util-$APR_UTIL_VERSION ${_srcdir}/apr-util-$APR_UTIL_VERSION.${_backup_date}" >> ${_logdir}/main.log
mv ${_srcdir}/apr-util-$APR_UTIL_VERSION ${_srcdir}/apr-util-$APR_UTIL_VERSION.`date +%Y%m%d-%H%M` mv ${_srcdir}/apr-util-$APR_UTIL_VERSION ${_srcdir}/apr-util-$APR_UTIL_VERSION.${_backup_date}
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
@ -1299,8 +1326,8 @@ EOF
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echo "## - Move (backup) existing install directory apr-util-${APR_UTIL_VERSION}.." >> ${_logdir}/main.log echo "## - Move (backup) existing install directory apr-util-${APR_UTIL_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "mv /usr/local/apr-util-${APR_UTIL_VERSION} /usr/local/apr-util-${APR_UTIL_VERSION}.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log echo "mv /usr/local/apr-util-${APR_UTIL_VERSION} /usr/local/apr-util-${APR_UTIL_VERSION}.${_backup_date}" >> ${_logdir}/main.log
mv /usr/local/apr-util-${APR_UTIL_VERSION} /usr/local/apr-util-${APR_UTIL_VERSION}.`date +%Y%m%d-%H%M` >> ${_logdir}/main.log 2>&1 mv /usr/local/apr-util-${APR_UTIL_VERSION} /usr/local/apr-util-${APR_UTIL_VERSION}.${_backup_date} >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
@ -1369,8 +1396,8 @@ if [ -d "$_builddir" ];then
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "mv $_builddir $_builddir.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log echo "mv $_builddir $_builddir.${_backup_date}" >> ${_logdir}/main.log
mv $_builddir $_builddir.`date +%Y%m%d-%H%M` >> ${_logdir}/main.log 2>&1 mv $_builddir $_builddir.${_backup_date} >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
@ -1546,8 +1573,8 @@ if [ -d "$PREFIX" ];then
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echo "## - Backup existing installation directory.." >> ${_logdir}/main.log echo "## - Backup existing installation directory.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "mv $PREFIX $PREFIX.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log echo "mv $PREFIX $PREFIX.${_backup_date}" >> ${_logdir}/main.log
mv $PREFIX $PREFIX.`date +%Y%m%d-%H%M` >> ${_logdir}/main.log 2>&1 mv $PREFIX $PREFIX.${_backup_date} >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
@ -1564,7 +1591,7 @@ if $START_AT_BOOTTIME && $APACHE_WEBSERVICE_RUNNING ; then
echo "## - Stop Apache Webservice.." >> ${_logdir}/main.log echo "## - Stop Apache Webservice.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
if $SYSTEMD_EXISTS ; then if $SYSTEMD_SUPPORTED ; then
echo "systemctl stop apache2" >> ${_logdir}/main.log echo "systemctl stop apache2" >> ${_logdir}/main.log
systemctl stop apache2 >> ${_logdir}/main.log 2>&1 systemctl stop apache2 >> ${_logdir}/main.log 2>&1
else else
@ -1577,11 +1604,129 @@ if $START_AT_BOOTTIME && $APACHE_WEBSERVICE_RUNNING ; then
echo_failed echo_failed
error "Stopping Apache Webservice failed!" error "Stopping Apache Webservice failed!"
fi fi
sleep 5
declare -i i=0
PIDS="$(ps aux | grep "$(realpath "$_httpd_binary")" | grep -v grep | awk '{print$2}')"
while [[ "X$PIDS" != "X" ]]; do
if [[ $i -eq 0 ]]; then
warn "Stopping Apache Webservice failed. Going to kill remaining httpd-processes.."
fi
if [[ $i -gt 10 ]]; then
error "Killing remaining httpd-processes failed !"
break
fi
for _PID in $PIDS ; do
kill -9 $_PID > /dev/null 2>&1
done
sleep 2
PIDS="$(ps aux | grep "$(realpath "$_httpd_binary")" | grep -v grep | awk '{print$2}')"
i=i+1
done
else else
echo_skipped echo_skipped
fi fi
# - Remove start script and/or systemd service file
# -
if `ls /etc/rc2.d/ | grep apache2 > /dev/null 2>&1` ; then
echo "" >> ${_logdir}/main.log
echononl "\tRemove init script links"
echo "## - Remove init script links" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "update-rc.d -f apache2 remove" >> ${_logdir}/main.log
update-rc.d -f apache2 remove >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Removing existing init script links failed."
fi
fi
if [[ -h "/etc/init.d/apache2" ]]; then
echo "" >> ${_logdir}/main.log
echo "## - Remove existing symlink /etc/init.d/apache2.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "rm /etc/init.d/apache2" >> ${_logdir}/main.log
echononl "\tRemove existing symlink /etc/init.d/apache2.."
rm /etc/init.d/apache2 >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Remove existing symlink /usr/local/apache2 failed."
fi
fi
if [[ -f "/etc/init.d/apache2" ]]; then
echo "" >> ${_logdir}/main.log
echo "## - Remove existing file /etc/init.d/apache2.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "rm /etc/init.d/apache2.." >> ${_logdir}/main.log
echononl "\tRemove existing file /etc/init.d/apache2"
rm /etc/init.d/apache2 >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Remove existing file /usr/local/apache2 failed."
fi
fi
if [[ -f "/etc/systemd/system/apache2.service" ]]; then
echo "" >> ${_logdir}/main.log
echo "## - Disable apache2 service" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "systemctl disable apache2" >> ${_logdir}/main.log
echononl "\tDisable apache2 service.."
systemctl disable apache2 >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Disabling apache2 service failed!"
fi
echo "" >> ${_logdir}/main.log
echo "## - Remove existing file /etc/systemd/system/apache2.service.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "rm /etc/systemd/system/apache2.service" >> ${_logdir}/main.log
echononl "\tRemove existing file /etc/systemd/system/apache2.service.."
rm /etc/systemd/system/apache2.service >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Remove existing file /etc/systemd/system/apache2.service failed."
fi
echo "" >> ${_logdir}/main.log
echo "## - Reload systemd" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "systemctl daemon-reload" >> ${_logdir}/main.log
echononl "\tReload systemd.."
systemctl daemon-reload >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Reloading systemd failed!"
fi
fi
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echo "## - Install apache-${APACHE_VERSION}.." >> ${_logdir}/main.log echo "## - Install apache-${APACHE_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
@ -2591,8 +2736,8 @@ if $WITH_MOD_FCGID ; then
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "mv $_builddir_fcgid $_builddir_fcgid.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log echo "mv $_builddir_fcgid $_builddir_fcgid.${_backup_date}" >> ${_logdir}/main.log
mv $_builddir_fcgid $_builddir_fcgid.`date +%Y%m%d-%H%M` >> ${_logdir}/main.log 2>&1 mv $_builddir_fcgid $_builddir_fcgid.${_backup_date} >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
@ -2609,7 +2754,7 @@ if $WITH_MOD_FCGID ; then
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echononl "\tBackup directory ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.." echononl "\tBackup directory ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.."
mv ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION} ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.`date +%Y%m%d-%H%M` mv ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION} ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.${_backup_date}
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
@ -2764,8 +2909,8 @@ if $WITH_MOD_PERL ; then
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "mv $_builddir_perl $_builddir_perl.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log echo "mv $_builddir_perl $_builddir_perl.${_backup_date}" >> ${_logdir}/main.log
mv $_builddir_perl $_builddir_perl.`date +%Y%m%d-%H%M` >> ${_logdir}/main.log 2>&1 mv $_builddir_perl $_builddir_perl.${_backup_date} >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
@ -2782,7 +2927,7 @@ if $WITH_MOD_PERL ; then
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echononl "\tBackup directory ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.." echononl "\tBackup directory ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.."
mv ${_srcdir}/mod_perl-${MOD_PERL_VERSION} ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.`date +%Y%m%d-%H%M` mv ${_srcdir}/mod_perl-${MOD_PERL_VERSION} ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.${_backup_date}
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
@ -2917,25 +3062,28 @@ echo
if $SYMLINK_INSTALL_DIR ; then if $SYMLINK_INSTALL_DIR ; then
if [ -h "/usr/local/apache2" ]; then echononl "\tRemove Symlink /usr/local/apache2.."
if [[ -h "/usr/local/apache2" ]]; then
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echo "## - Remove existing symlink /usr/local/apache2.." >> ${_logdir}/main.log echo "## - Remove Symlink /usr/local/apache2" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "rm /usr/local/apache2" >> ${_logdir}/main.log echo "rm -f /usr/local/apache2" >> ${_logdir}/main.log
echononl "\tRemove existing symlink /usr/local/apache2.." rm -f /usr/local/apache2 >> ${_logdir}/main.log
rm /usr/local/apache2 >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
echo_failed echo_failed
warn "Remove existing symlink /usr/local/apache2 failed." warn "Removing symlink /usr/local/apache2 failed"
fi fi
else
echo_skipped
fi fi
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echo "## - Set Symlink /usr/local/apache2.." >> ${_logdir}/main.log echo "## - Set Symlink /usr/local/apache2.." >> ${_logdir}/main.log
echo "## - ln -s `basename $PREFIX` /usr/local/apache2" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log echo "ln -s `basename $PREFIX` /usr/local/apache2" >> ${_logdir}/main.log
echononl "\tSet Symlink /usr/local/apache2.." echononl "\tSet Symlink /usr/local/apache2.."
ln -s `basename $PREFIX` /usr/local/apache2 >> ${_logdir}/main.log 2>&1 ln -s `basename $PREFIX` /usr/local/apache2 >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
@ -2946,24 +3094,26 @@ if $SYMLINK_INSTALL_DIR ; then
fi fi
fi fi
## - Priovide LSB - Add Block for run-time dependencies to apachectl
## -
_backup_apachectl=`mktemp`
_failed=false
echo "" >> ${_logdir}/main.log if $INIT_SCRIPT_SUPPORTED ; then
echo "## - Priovide LSB - Add Block for run-time dependencies to apachectl.." >> ${_logdir}/main.log ## - Priovide LSB - Add Block for run-time dependencies to apachectl
echo "## -" >> ${_logdir}/main.log ## -
_backup_apachectl=`mktemp`
_failed=false
echononl "\tAdd Block for run-time dependencies to apachectl.." echo "" >> ${_logdir}/main.log
echo "## - Priovide LSB - Add Block for run-time dependencies to apachectl.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "cp $PREFIX/bin/apachectl $_backup_apachectl" >> ${_logdir}/main.log echononl "\tAdd Block for run-time dependencies to apachectl.."
cp $PREFIX/bin/apachectl $_backup_apachectl >> ${_logdir}/main.log 2>&1
if [ "$?" != "0" ]; then
_failed=true
fi
echo "cat << EOF >$PREFIX/bin/apachectl echo "cp $PREFIX/bin/apachectl $_backup_apachectl" >> ${_logdir}/main.log
cp $PREFIX/bin/apachectl $_backup_apachectl >> ${_logdir}/main.log 2>&1
if [ "$?" != "0" ]; then
_failed=true
fi
echo "cat << EOF >$PREFIX/bin/apachectl
#!/bin/sh #!/bin/sh
### BEGIN INIT INFO ### BEGIN INIT INFO
# Provides: apache2 # Provides: apache2
@ -2976,7 +3126,7 @@ echo "cat << EOF >$PREFIX/bin/apachectl
### END INIT INFO ### END INIT INFO
EOF" >> ${_logdir}/main.log EOF" >> ${_logdir}/main.log
cat << EOF >$PREFIX/bin/apachectl cat << EOF >$PREFIX/bin/apachectl
#!/bin/sh #!/bin/sh
### BEGIN INIT INFO ### BEGIN INIT INFO
# Provides: apache2 # Provides: apache2
@ -2988,26 +3138,29 @@ cat << EOF >$PREFIX/bin/apachectl
# Short-Description: Start/stop apache2 web server # Short-Description: Start/stop apache2 web server
### END INIT INFO ### END INIT INFO
EOF EOF
if [ "$?" != "0" ]; then
_failed=true
fi
echo "tail -n +2 "$_backup_apachectl" >> $PREFIX/bin/apachectl" >> ${_logdir}/main.log if [ "$?" != "0" ]; then
tail -n +2 "$_backup_apachectl" >> $PREFIX/bin/apachectl _failed=true
if [ "$?" != "0" ]; then fi
_failed=true
fi
echo "rm $_backup_apachectl" >> ${_logdir}/main.log echo "tail -n +2 "$_backup_apachectl" >> $PREFIX/bin/apachectl" >> ${_logdir}/main.log
rm $_backup_apachectl >> ${_logdir}/main.log 2>&1 tail -n +2 "$_backup_apachectl" >> $PREFIX/bin/apachectl
if [ "$?" != "0" ]; then if [ "$?" != "0" ]; then
_failed=true _failed=true
fi fi
if $_failed ; then
echo_failed echo "rm $_backup_apachectl" >> ${_logdir}/main.log
else rm $_backup_apachectl >> ${_logdir}/main.log 2>&1
echo_ok if [ "$?" != "0" ]; then
fi _failed=true
fi
if $_failed ; then
echo_failed
else
echo_ok
fi
fi # if $INIT_SCRIPT_SUPPORTED ; then
## - Set status url ## - Set status url
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
@ -3025,22 +3178,7 @@ else
fi fi
if $SYMLINK_INITSCRIPT ; then if $INIT_SCRIPT_SUPPORTED ; then
if [ -h "/etc/init.d/apache2" ]; then
echo "" >> ${_logdir}/main.log
echo "## - Remove existing symlink /etc/init.d/apache2.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "rm /etc/init.d/apache2.." >> ${_logdir}/main.log
echononl "\tRemove existing symlink /etc/init.d/apache2.."
rm /etc/init.d/apache2 >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Remove existing symlink /usr/local/apache2 failed."
fi
fi
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echo "## - Set Symlink /etc/init.d/apache2.." >> ${_logdir}/main.log echo "## - Set Symlink /etc/init.d/apache2.." >> ${_logdir}/main.log
@ -3074,28 +3212,82 @@ EOF
fi fi
if $SYSTEMD_SUPPORTED ; then
echo "" >> ${_logdir}/main.log
echo "## - Create systemd service file.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "cat << EOF > /etc/systemd/system/apache2.service
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment=APACHE_STARTED_BY_SYSTEMD=true
ExecStart=${PREFIX}/bin/apachectl start
ExecStop=${PREFIX}/bin/apachectl stop
ExecReload=${PREFIX}/bin/apachectl graceful
PrivateTmp=true
Restart=on-abort
[Install]
WantedBy=multi-user.target
EOF" >> ${_logdir}/main.log
echononl "\tCreate systemd service file.."
cat << EOF > /etc/systemd/system/apache2.service
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment=APACHE_STARTED_BY_SYSTEMD=true
ExecStart=${PREFIX}/bin/apachectl start
ExecStop=${PREFIX}/bin/apachectl stop
ExecReload=${PREFIX}/bin/apachectl graceful
PrivateTmp=true
Restart=on-abort
[Install]
WantedBy=multi-user.target
EOF
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Creating systemd service file '/etc/systemd/system/apache2.service' failed."
fi
fi
echononl "\tSet umask to $UMASK in \"envvars\" .."
if $SET_UMASK ; then
cat <<EOF >> ${PREFIX}/bin/envvars
umask $UMASK
EOF
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Kann \"umask\" nicht setzen (${PREFIX}/bin/envvars).."
fi
else
echo_skipped
fi
echo "" echo ""
if $START_AT_BOOTTIME ; then if $START_AT_BOOTTIME ; then
if `ls /etc/rc2.d/ | grep apache2 > /dev/null 2>&1` ; then
echo "" >> ${_logdir}/main.log
echononl "\tRemove init script links"
echo "## - Remove init script links" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "update-rc.d -f apache2 remove" >> ${_logdir}/main.log
update-rc.d -f apache2 remove >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Removing existing init script links failed."
fi
fi
echononl "\tReload systemd.." echononl "\tReload systemd.."
if $SYSTEMD_EXISTS ; then if $SYSTEMD_SUPPORTED ; then
systemctl daemon-reload > /dev/null 2>&1 systemctl daemon-reload > /dev/null 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
@ -3113,7 +3305,7 @@ if $START_AT_BOOTTIME ; then
echononl "\tMake apache start at boottime" echononl "\tMake apache start at boottime"
echo "## - Make apache start at boottime" >> ${_logdir}/main.log echo "## - Make apache start at boottime" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
if $SYSTEMD_EXISTS ; then if $SYSTEMD_SUPPORTED ; then
echo "systemctl enable apache2" >> ${_logdir}/main.log echo "systemctl enable apache2" >> ${_logdir}/main.log
systemctl enable apache2 >> ${_logdir}/main.log 2>&1 systemctl enable apache2 >> ${_logdir}/main.log 2>&1
else else
@ -3625,6 +3817,57 @@ else
echo_skipped echo_skipped
fi fi
if [[ -n "$_httpd_current_version" ]]; then
_failed=false
_done=false
echo "" >> ${_logdir}/main.log
echo "## - Try to restore vhost configurations.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echononl "\tTry to restore vhost configurations.."
if [[ "$_httpd_current_version" != $APACHE_VERSION ]]; then
if [[ -d "$(dirname "$PREFIX")/httpd-${_httpd_current_version}/conf/vhosts" ]]; then
_src_dir="$(dirname "$PREFIX")/httpd-${_httpd_current_version}/conf/vhosts"
fi
else
if [[ -d "${PREFIX}.${_backup_date}/conf/vhosts" ]]; then
_src_dir="${PREFIX}.${_backup_date}/conf/vhosts"
fi
fi
if [[ -n "$_src_dir" ]] ; then
while IFS='' read -r -d '' _name ; do
if [[ "$(basename "$_name")" =~ 00default ]]; then
continue
fi
if [[ "$(basename "$_name")" = "000-logformat.conf" ]]; then
continue
fi
echo "cp -a "$_name" "${PREFIX}/conf/vhosts"" >> ${_logdir}/main.log
cp -a "$_name" "${PREFIX}/conf/vhosts" >> ${_logdir}/main.log
if [[ $? -ne 0 ]]; then
_failed=true
fi
_done=true
done < <(find "$_src_dir" -mindepth 1 -maxdepth 1 -print0)
if $_done ; then
if $_failed ; then
echo_failed
error "Restoring vhost configuration failed!"
else
echo_ok
fi
else
echo_skipped
fi
fi # [[ -n "$_src_dir" ]] ; then
fi # if [[ -n "$_httpd_current_version" ]]
if $START_APACHE_WEBSERVICE ; then if $START_APACHE_WEBSERVICE ; then
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log
@ -3632,7 +3875,7 @@ if $START_APACHE_WEBSERVICE ; then
echo "## -" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log
echo "" echo ""
echononl "\tStarting Apache Webserver.." echononl "\tStarting Apache Webserver.."
if $SYSTEMD_EXISTS ; then if $SYSTEMD_SUPPORTED ; then
echo "systemctl start apache2" >> ${_logdir}/main.log echo "systemctl start apache2" >> ${_logdir}/main.log
systemctl start apache2 >> ${_logdir}/main.log 2>&1 systemctl start apache2 >> ${_logdir}/main.log 2>&1
else else