apache2/install_httpd-2.4.sh

4048 lines
130 KiB
Bash
Executable File

#!/usr/bin/env bash
_backup_suffix=".BAK"
_backup_date="$(date +%Y%m%d-%H%M)"
# httpd Apapche Webserver
#
## - CHANGE PARAMETER TO PASS YOUR SITUATION--------
## -
_VSERVER_GUEST=no
_APACHE_VERSION=2.4.33
_WITH_MOD_PROXY_FCGI=true
_WITH_MOD_FCGID=true
_MOD_FCGID_VERSION=2.3.9
_WITH_MOD_PERL=true
_MOD_PERL_VERSION=2.0.10
_SEPARATE_LISTEN_DIRECTIVES=false
_SSL_SNAKEOIL_CERT="/etc/ssl/certs/ssl-cert-snakeoil.pem"
_SSL_SNAKEOIL_KEY="/etc/ssl/private/ssl-cert-snakeoil.key"
_CRONTAB_BAKUP_FILE="$(mktemp)"
if $_WITH_MOD_FCGID -o $_WITH_MOD_PROXY_FCGI ; then
_WITH_MOD_PHP=false
else
_WITH_MOD_PHP=true
fi
_SSL_Cipher_Suite='ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'
_PHP_VERSION=7.1.2
## - Determin IP-Adresses
## -
if ifconfig | grep -i -q -E "inet [address|Adresse]" ; then
__ipv4="`ifconfig | grep -E \"^\s*inet [address|Adresse]\" | grep -v \"127.0.0.1\" | awk '{print$2}' | cut -d\":\" -f2 | sort`"
__ipv6="`ifconfig | grep -e \"^\s*inet6-Adresse\" | awk '{print$2}' | grep -v -e \"^::1/\" | grep -v -e \"^fe80\" | cut -d\"/\" -f1 | sort`"
else
__ipv4="`ifconfig | grep -e \"^\s*inet \" | grep -v \"127.0.0.1\" | awk '{print$2}' | sort`"
__ipv6="`ifconfig | grep -e \"^\s*inet6 \" | awk '{print$2}' | grep -v \"^::1\" | grep -v -e \"^fe80\" | sort`"
fi
for _ip in $__ipv4 ; do
_ipv4="$_ipv4 $_ip"
done
for _ip in $__ipv6 ; do
_ipv6="$_ipv6 $_ip"
done
## - Trim leading whitespaces
## -
shopt -s extglob
_ipv4="${_ipv4##*( )}"
_ipv6="${_ipv6##*( )}"
shopt -u extglob
## - Is PHP-FPM socket in use
## -
declare -a _php_socket_arr=()
while IFS='' read -r -d '' _socket ; do
echo "socket: $_socket"
_php_major_version="$(echo "$_socket" | cut -d '-' -f2)"
_php_socket_arr+=("${_php_major_version}:$_socket")
done < <(find "/tmp" -type s -name "php*" -print0 | sort -z)
## - substitude path "/usr/local/httpd-$APACHE_VERSION" to "/usr/local/apache2"
## - in apache configuration files ?
## -
subst_base_path=false
_APR_VERSION=1.6.3
_APR_UTIL_VERSION=1.6.1
_HTTPD_USER=www-data
_HTTPD_PORT=80
_HTTPD_SSL_PORT=443
_SERVER_NAME=`hostname -f`
_SERVER_ADMIN="admin@oopen.de"
_srcdir=$(dirname $(realpath $0))
_START_AT_BOOTTIME=yes
APACHE_LOG_DIR=/var/log/apache2
DIRECTORY_INDEX="index.html index.htm index.php"
_BASE_WEBSPACE_DIR="/var/www"
#_GLOBAL_DOC_ROOT="${_BASE_WEBSPACE_DIR}/default"
#_SUEXEC_DOC_ROOT=$_BASE_WEBSPACE_DIR
#_PROXY_PATH_MATH_LINE="#ProxyPassMatch ^/(status|ping)$ unix:${_PHP_FPM_SOCKET}|fcgi://localhost/${_BASE_WEBSPACE_DIR}/default"
## - DO NOT CHANGE ----------------------------------
## -
# - systemd supported by OS ?
# -
_systemd="$(which systemd)"
_systemctl="$(which systemctl)"
if [[ -z "$_systemd" ]] && [[ -z "$_systemctl" ]]; then
SYSTEMD_SUPPORTED=false
else
SYSTEMD_SUPPORTED=true
fi
## - Determin httpd binary
## -
_httpd_binary="$(which httpd)"
if [ -z "$_httpd_binary" ]; then
_httpd_binary="$(ps -axu | grep httpd | grep -e "^root" | grep -v grep | awk '{print$11}')"
if [ -z "$_httpd_binary" ]; then
if [ -x "/usr/local/apache2/bin/httpd" ]; then
_httpd_binary="/usr/local/apache2/bin/httpd"
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
APACHE_WEBSERVICE_RUNNING=false
if [ -x "$_httpd_binary" ];then
## - Determin websever user
## -
_pass_web_user=false
web_user="`$_httpd_binary -t -D DUMP_RUN_CFG | grep -i -e "^User" | awk '{print$2}' | cut -d\"=\" -f2 | tr -d '"'`"
web_group="`$_httpd_binary -t -D DUMP_RUN_CFG | grep -i -e "^Group" | awk '{print$2}' | cut -d\"=\" -f2 | tr -d '"'`"
if [ -z "$web_user" -o -z "$web_group" ]; then
_HTTPD_USER=www-data
else
_HTTPD_USER=$web_user
_HTTPD_GROUP=$web_group
fi
## - Is Apache Webservice running?
## -
PID=$(ps aux | grep "$(realpath $_httpd_binary)" | grep -e "^root" | grep -v grep | awk '{print$2}')
if [[ "X${PID}X" = "XX" ]] ;then
APACHE_WEBSERVICE_RUNNING=false
START_APACHE_WEBSERVICE=false
else
APACHE_WEBSERVICE_RUNNING=true
START_APACHE_WEBSERVICE=true
fi
fi
## - Let make use multiple cores (-j<number of cores +1>)
## -
export MAKEFLAGS=-j$(expr `grep "^processor" /proc/cpuinfo | sort -u | wc -l` + 1)
# : ${_arch:=i686}
# : ${_arch:=athlon}
: ${_arch:=k8} ## --> x86-64 instructionset
#_cflags="-O2 -march=$_arch "
## --- some functions
## ---
echononl(){
echo X\\c > /tmp/shprompt$$
if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then
echo -e -n "$*\\c" 1>&2
else
echo -e -n "$*" 1>&2
fi
rm /tmp/shprompt$$
}
fatal(){
echo ""
echo -e "[ \033[31m\033[1mError\033[m ]: $*"
echo ""
echo -e "\t\033[31m\033[1mInstalllation wird abgebrochen\033[m\033[m"
echo ""
exit 1
}
warn (){
echo ""
echo -e "\t[ \033[33m\033[1mWarning\033[m ]: $*"
echo ""
}
error (){
echo ""
echo -e "\t[ \033[31m\033[1mError\033[m ]: $*"
echo ""
}
echo_ok() {
echo -e "\033[75G[ \033[32mok\033[m ]"
}
echo_failed(){
echo -e "\033[75G[ \033[1;31mfailed\033[m ]"
}
echo_skipped() {
echo -e "\033[75G[ \033[33m\033[1mskipped\033[m ]"
}
## ---
## --- END: functions
clear
echo
echo -e "\033[21G\033[32mInstallation script apache webserver \033[m"
echo
echo
echo
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo "Insert version numbers apache (httpd) apr and apr-util."
echo ""
echo ""
APACHE_VERSION=
while [ "X$APACHE_VERSION" = "X" ]
do
echononl "apache version [$_APACHE_VERSION]: "
read APACHE_VERSION
if [ "X$APACHE_VERSION" = "X" ]; then
APACHE_VERSION=$_APACHE_VERSION
fi
done
APR_VERSION=
while [ "X$APR_VERSION" = "X" ]
do
echononl "apr version [$_APR_VERSION]: "
read APR_VERSION
if [ "X$APR_VERSION" = "X" ]; then
APR_VERSION=$_APR_VERSION
fi
done
if [ -d "/usr/local/apr-$APR_VERSION" ]; then
APR_INSTALLED=true
else
APR_INSTALLED=false
fi
APR_UTIL_VERSION=
while [ "X$APR_UTIL_VERSION" = "X" ]
do
echononl "apr-util version [$_APR_UTIL_VERSION]: "
read APR_UTIL_VERSION
if [ "X$APR_UTIL_VERSION" = "X" ]; then
APR_UTIL_VERSION=$_APR_UTIL_VERSION
fi
done
if [ -d "/usr/local/apr-util-$APR_UTIL_VERSION" ]; then
APR_UTIL_INSTALLED=true
else
APR_UTIL_INSTALLED=false
fi
echo ""
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo "Base Directory contains the webspaces.."
echo ""
echo ""
BASE_WEBSPACE_DIR=
while [ "X$BASE_WEBSPACE_DIR" = "X" ]
do
echononl "Webspace base directory [${_BASE_WEBSPACE_DIR}]: "
read BASE_WEBSPACE_DIR
if [ "X$BASE_WEBSPACE_DIR" = "X" ]; then
BASE_WEBSPACE_DIR=$_BASE_WEBSPACE_DIR
fi
done
GLOBAL_DOC_ROOT="${BASE_WEBSPACE_DIR}/default"
SUEXEC_DOC_ROOT=$BASE_WEBSPACE_DIR
echo ""
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo "Insert User/Group for apache daemon (httpd)."
echo ""
echo ""
HTTPD_USER=
while [ "X$HTTPD_USER" = "X" ]
do
echononl "apache user [${_HTTPD_USER}]: "
read HTTPD_USER
if [ "X$HTTPD_USER" = "X" ]; then
HTTPD_USER=$_HTTPD_USER
fi
done
if [ -z "$_HTTPD_GROUP" ]; then
if [ "$HTTPD_USER" = "nobody" ]; then
_HTTPD_GROUP="nogroup"
else
_HTTPD_GROUP=$HTTPD_USER
fi
fi
while [ "X$HTTPD_GROUP" = "X" ]
do
echononl "apache group [$_HTTPD_GROUP]: "
read HTTPD_GROUP
if [ "X$HTTPD_GROUP" = "X" ]; then
HTTPD_GROUP=$_HTTPD_GROUP
fi
done
echo ""
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo "Insert default ServerName / ServerAdmin ."
echo ""
echo ""
SERVER_NAME=
while [ "X$SERVER_NAME" = "X" ]
do
echononl "default SeverName [${_SERVER_NAME}]: "
read SERVER_NAME
if [ "X$SERVER_NAME" = "X" ]; then
SERVER_NAME=$_SERVER_NAME
fi
done
if [ -z "`echo $SERVER_NAME | cut -s -d"." -f 3`" ];then
_HOST=""
_DOMAIN=`echo $SERVER_NAME | cut -s -d"." -f 1`
_TLD=`echo $SERVER_NAME | cut -s -d"." -f 2`
else
_HOST=`echo $SERVER_NAME | cut -s -d"." -f 1`
_DOMAIN=`echo $SERVER_NAME | cut -s -d"." -f 2`
_TLD=`echo $SERVER_NAME | cut -s -d"." -f 3`
fi
SERVER_ADMIN=
while [ "X$SERVER_ADMIN" = "X" ]
do
echononl "default SeverAdmin [${_SERVER_ADMIN}]: "
read SERVER_ADMIN
if [ "X$SERVER_ADMIN" = "X" ]; then
SERVER_ADMIN=$_SERVER_ADMIN
fi
done
echo ""
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo "Insert the IP-Addresses the webserver should listen for."
echo " Note:"
echo " Put in a blank seperated list of ip-addresses"
echo ""
echo -e " \033[33m\"127.0.0.1\"\033[m will be added automatically "
echo ""
echo ""
_IPv4_ADDRESSES=
while [ "X$_IPv4_ADDRESSES" = "X" ]
do
echononl "Ipv4 addresses [$_ipv4]: "
read _IPv4_ADDRESSES
if [ "X$_IPv4_ADDRESSES" = "X" ]; then
_IPv4_ADDRESSES=$_ipv4
#echononl "Must NOT be empty. Insert again: "
fi
done
IPv4_FIRST=`echo $_IPv4_ADDRESSES | cut -d " " -f1`
HTTPD_INFO_ADDRESSES="$_IPv4_ADDRESSES"
IPv4_ADDRESSES="127.0.0.1 $_IPv4_ADDRESSES"
echo ""
echo "Type:"
echo -e "\t\033[33mNone\033[m if IPv6 is not suppoerted"
echo ""
IPv6_ADDRESSES=
while [ "X$IPv6_ADDRESSES" = "X" ]
do
echononl "Ipv6 addresses [$_ipv6]: "
read IPv6_ADDRESSES
if [ "X$IPv6_ADDRESSES" = "Xnone" -o "X$IPv6_ADDRESSES" = "XNone" ]; then
warn "Disable support for IPv6.."
IPv6_ADDRESSES="disbled"
#echononl "Must NOT be empty. Insert again: "
elif [ "X$IPv6_ADDRESSES" = "X" ]; then
IPv6_ADDRESSES=$_ipv6
fi
done
if [ "$IPv6_ADDRESSES" != "disbled" ]; then
IPv6_FIRST=`echo $IPv6_ADDRESSES | cut -d " " -f1`
else
IPv6_FIRST=""
fi
IP_ADDRESSES="$IPv4_ADDRESSES"
if [ "$IPv6_ADDRESSES" != "disbled" ]; then
for _ipv6 in $IPv6_ADDRESSES ; do
IP_ADDRESSES="$IP_ADDRESSES [$_ipv6]"
HTTPD_INFO_ADDRESSES="$HTTPD_INFO_ADDRESSES $_ipv6"
done
fi
echo ""
echo ""
echo -e "\tUse Separate \"Listen\" Directives for each IP-Address?"
echo ""
SEPARATE_LISTEN_DIRECTIVES=
while [ "X$SEPARATE_LISTEN_DIRECTIVES" = "X" ]
do
if $_SEPARATE_LISTEN_DIRECTIVES ; then
echononl "Separate \"Listen\" Directives (yes/no) [yes]: "
else
echononl "Separate \"Listen\" Directives (yes/no) [no]: "
fi
read SEPARATE_LISTEN_DIRECTIVES
if [ "X$SEPARATE_LISTEN_DIRECTIVES" = "X" ]; then
SEPARATE_LISTEN_DIRECTIVES=$_SEPARATE_LISTEN_DIRECTIVES
fi
done
SEPARATE_LISTEN_DIRECTIVES=`echo $SEPARATE_LISTEN_DIRECTIVES | tr '[:upper:]' '[:lower:]'`
if [ "$SEPARATE_LISTEN_DIRECTIVES" = "yes" ] || $SEPARATE_LISTEN_DIRECTIVES ; then
SEPARATE_LISTEN_DIRECTIVES=true
_STATUS_URL="http://localhost:80/server-status"
else
SEPARATE_LISTEN_DIRECTIVES=false
_STATUS_URL="http://127.0.0.1:80/server-status"
fi
echo ""
echo ""
echo -e "\tInsert the URL used to access the status report"
echo ""
echo " Example:"
echo " http://localhost:80/server-status"
echo " http://127.0.0.1:80/server-status"
echo ""
STATUS_URL=
while [ "X$STATUS_URL" = "X" ]
do
if [[ -n $_STATUS_URL ]] ; then
echononl "Status URL [$_STATUS_URL]: "
else
echononl "Status URL: "
fi
read STATUS_URL
if [ "X$STATUS_URL" = "X" ]; then
STATUS_URL=$_STATUS_URL
fi
done
echo ""
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo "Insert Ports for standard non-ssl and ssl connections"
echo ""
echo ""
HTTPD_PORT=
while [ "X$HTTPD_PORT" = "X" ]
do
echononl "port for standard (non-ssl) connections [${_HTTPD_PORT}]: "
read HTTPD_PORT
if [ "X$HTTPD_PORT" = "X" ]; then
HTTPD_PORT=$_HTTPD_PORT
fi
done
HTTPD_SSL_PORT=
while [ "X$HTTPD_SSL_PORT" = "X" ]
do
echononl "port for ssl connections [${_HTTPD_SSL_PORT}]: "
read HTTPD_SSL_PORT
if [ "X$HTTPD_SSL_PORT" = "X" ]; then
HTTPD_SSL_PORT=$_HTTPD_SSL_PORT
fi
done
echo ""
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo "Some server configuration"
echo ""
#echo " - Sysmlink for initscript (/etc/init.d/apache2)"
echo " - Sysmlink for installation directory (/usr/local/apache2)"
echo " - Start at boot time"
echo ""
#if [[ ! -f "/etc/init.d/apache2" ]] ; then
# _SYMLINK_INITSCRIPT=yes
#else
# _SYMLINK_INITSCRIPT=no
#fi
#__SYMLINK_INITSCRIPT=
#while [ "X$__SYMLINK_INITSCRIPT" = "X" ]
#do
# echononl "Sysmlink for initscript (yes/no) [${_SYMLINK_INITSCRIPT}]: "
# read __SYMLINK_INITSCRIPT
# if [ "X$__SYMLINK_INITSCRIPT" = "X" ]; then
# __SYMLINK_INITSCRIPT=$_SYMLINK_INITSCRIPT
# fi
#done
#__SYMLINK_INITSCRIPT=`echo $__SYMLINK_INITSCRIPT | tr '[:upper:]' '[:lower:]'`
#if [ "$__SYMLINK_INITSCRIPT" = "yes" ] ; then
# SYMLINK_INITSCRIPT=true
# START_APACHE_WEBSERVICE=true
#else
# SYMLINK_INITSCRIPT=false
# START_APACHE_WEBSERVICE=false
#fi
if [[ ! -f "/usr/local/apache2" ]]; then
_SYMLINK_INSTALL_DIR=yes
_START_AT_BOOTTIME=yes
else
_SYMLINK_INSTALL_DIR=no
_START_AT_BOOTTIME=no
fi
__SYMLINK_INSTALL_DIR=
while [ "X$__SYMLINK_INSTALL_DIR" = "X" ]
do
echononl "Sysmlink for installation directory (yes/no) [${_SYMLINK_INSTALL_DIR}]: "
read __SYMLINK_INSTALL_DIR
if [ "X$__SYMLINK_INSTALL_DIR" = "X" ]; then
__SYMLINK_INSTALL_DIR=$_SYMLINK_INSTALL_DIR
fi
done
__SYMLINK_INSTALL_DIR=`echo $__SYMLINK_INSTALL_DIR | tr '[:upper:]' '[:lower:]'`
if [ "$__SYMLINK_INSTALL_DIR" = "yes" ] ; then
SYMLINK_INSTALL_DIR=true
else
SYMLINK_INSTALL_DIR=false
fi
__START_AT_BOOTTIME=
while [ "X$__START_AT_BOOTTIME" = "X" ]
do
echononl "Start at boot time (yes/no) [${_START_AT_BOOTTIME}]: "
read __START_AT_BOOTTIME
if [ "X$__START_AT_BOOTTIME" = "X" ]; then
__START_AT_BOOTTIME=$_START_AT_BOOTTIME
fi
done
__START_AT_BOOTTIME=`echo $__START_AT_BOOTTIME | tr '[:upper:]' '[:lower:]'`
if [ "$__START_AT_BOOTTIME" = "yes" ] ; then
START_AT_BOOTTIME=true
else
START_AT_BOOTTIME=false
fi
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo ""
OK=""
echononl "Set \"umask\" to \"0002\" ? [no]: "
read OK
while [ "X$OK" != "Xyes" -a "X$OK" != "XYes" -a "X$OK" != "Xno" -a "X$OK" != "XNo" -a "X$OK" != "X" ]; do
echononl "falsche Angabe! [no]: "
read OK
done
if [ "$OK" = "yes" -o "$OK" = "Yes" ]; then
SET_UMASK=true
UMASK=0002
else
SET_UMASK=false
fi
echo ""
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo "Support for apache modules"
echo ""
echo ""
__WITH_MOD_PROXY_FCGI=
while [ "X$__WITH_MOD_PROXY_FCGI" = "X" ]
do
echononl "Include \"mod_proxy_cgi\" [${_WITH_MOD_PROXY_FCGI}]: "
read __WITH_MOD_PROXY_FCGI
if [ "X$__WITH_MOD_PROXY_FCGI" = "X" ]; then
__WITH_MOD_PROXY_FCGI=$_WITH_MOD_PROXY_FCGI
fi
done
if [ "$__WITH_MOD_PROXY_FCGI" = "true" ] ; then
WITH_MOD_PROXY_FCGI=true
else
WITH_MOD_PROXY_FCGI=false
fi
echo ""
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo "Support for third party modules"
echo ""
echo ""
__WITH_MOD_FCGID=
while [ "X$__WITH_MOD_FCGID" = "X" ]
do
echononl "Include \"mod_fcgid\" [${_WITH_MOD_FCGID}]: "
read __WITH_MOD_FCGID
if [ "X$__WITH_MOD_FCGID" = "X" ]; then
__WITH_MOD_FCGID=$_WITH_MOD_FCGID
fi
done
if [ "$__WITH_MOD_FCGID" = "true" ] ; then
WITH_MOD_FCGID=true
MOD_FCGID_VERSION=
while [ "X$MOD_FCGID_VERSION" = "X" ]
do
echononl "mod_fcgid version [$_MOD_FCGID_VERSION]: "
read MOD_FCGID_VERSION
if [ "X$MOD_FCGID_VERSION" = "X" ]; then
MOD_FCGID_VERSION=$_MOD_FCGID_VERSION
fi
done
else
WITH_MOD_FCGID=false
fi
echo
__WITH_MOD_PERL=
while [ "X$__WITH_MOD_PERL" = "X" ]
do
echononl "Include \"mod_perl\" [${_WITH_MOD_PERL}]: "
read __WITH_MOD_PERL
if [ "X$__WITH_MOD_PERL" = "X" ]; then
__WITH_MOD_PERL=$_WITH_MOD_PERL
fi
done
if [ "$__WITH_MOD_PERL" = "true" ] ; then
WITH_MOD_PERL=true
MOD_PERL_VERSION=
while [ "X$MOD_PERL_VERSION" = "X" ]
do
echononl "mod_perl version [$_MOD_PERL_VERSION]: "
read MOD_PERL_VERSION
if [ "X$MOD_PERL_VERSION" = "X" ]; then
MOD_PERL_VERSION=$_MOD_PERL_VERSION
fi
done
else
WITH_MOD_PERL=false
fi
echo
__WITH_MOD_PHP=
while [ "X$__WITH_MOD_PHP" = "X" ]
do
echononl "Include \"mod_php\" [${_WITH_MOD_PHP}]: "
read __WITH_MOD_PHP
if [ "X$__WITH_MOD_PHP" = "X" ]; then
__WITH_MOD_PHP=$_WITH_MOD_PHP
fi
done
if [ "$__WITH_MOD_PHP" = "true" ] ; then
WITH_MOD_PHP=true
PHP_VERSION=
while [ "X$PHP_VERSION" = "X" ]
do
echononl "php version [$_PHP_VERSION]: "
read PHP_VERSION
if [ "X$PHP_VERSION" = "X" ]; then
PHP_VERSION=$_PHP_VERSION
fi
done
else
WITH_MOD_PHP=false
fi
if [ -n "$PHP_VERSION" ] ; then
_builddir=${_srcdir}/httpd-${APACHE_VERSION}_php-${PHP_VERSION}
PREFIX=/usr/local/httpd-${APACHE_VERSION}_php-${PHP_VERSION}
_logdir=${_srcdir}/log_httpd-${APACHE_VERSION}_php-${PHP_VERSION}_build
else
_builddir=${_srcdir}/httpd-${APACHE_VERSION}
PREFIX=/usr/local/httpd-${APACHE_VERSION}
_logdir=${_srcdir}/log_httpd-${APACHE_VERSION}
fi
## - Is this a system with "systemd" ?
## -
OK=
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo "Are you installing on a VServer guest system?"
echo ""
echononl "VServer Gastsystem (yes/no) [$_VSERVER_GUEST]: "
read OK
if [ "X$OK" = "X" ]; then
OK=$_VSERVER_GUEST
fi
OK=`echo "$OK" | tr '[:upper:]' '[:lower:]'`
while [ "X$OK" != "Xyes" -a "X$OK" != "Xno" ]; do
echo ""
echononl "\twrong entry! [yes/no]: "
read OK
OK=`echo "$OK" | tr '[:upper:]' '[:lower:]'`
done
if [ "$OK" = "yes" ]; then
SYSTEMD_SUPPORTED=false
fi
if $SYSTEMD_SUPPORTED ; then
INIT_SCRIPT_SUPPORTED=false
else
INIT_SCRIPT_SUPPORTED=true
fi
clear
echo ""
echo -e "\033[21G\033[32mStart Apache Webserver Installation with the following Parameters \033[m"
echo ""
if [[ -n "$_httpd_current_version" ]]; then
echo ""
echo -e "--- Update form apache version \033[33m$_httpd_current_version\033[m ---"
echo ""
fi
echo "httpd version.................: $APACHE_VERSION"
echo " apr version................: $APR_VERSION"
echo " apr-uril version...........: $APR_UTIL_VERSION"
echo ""
echo "apache user...................: $HTTPD_USER"
echo "apache group..................: $HTTPD_GROUP"
echo ""
echo "Installation directory........: $PREFIX"
echo ""
echo "Base directory for webspaces..: $BASE_WEBSPACE_DIR"
echo "Global DocumentRoot directory.: $GLOBAL_DOC_ROOT"
echo ""
echo "default ServerName............: $SERVER_NAME"
echo "default ServerAdmin...........: $SERVER_ADMIN"
echo ""
echo "IPv4 addresses................: $IPv4_ADDRESSES"
echo "IPv6 addresses................: $IPv6_ADDRESSES"
echo ""
echo "Separate Listen Directives....: $SEPARATE_LISTEN_DIRECTIVES"
echo "URL to access status report...: $STATUS_URL"
echo ""
echo "standard (non-ssl) port.......: $HTTPD_PORT"
echo "ssl port......................: $HTTPD_SSL_PORT"
echo ""
#echo "Symlink /etc/init.d/apache2...: $SYMLINK_INITSCRIPT"
echo "Symlink /usr/local/apache2....: $SYMLINK_INSTALL_DIR"
echo "Start at boot time............: $START_AT_BOOTTIME"
echo ""
echo "Set umask to \"0002\"...........: $SET_UMASK"
echo ""
echo "Install start init script.....: $INIT_SCRIPT_SUPPORTED"
echo "System supports systemd.......: $SYSTEMD_SUPPORTED"
echo ""
echo "Include mod_proxy_cgi.........: $WITH_MOD_PROXY_FCGI"
echo ""
echo "Include mod_php...............: $WITH_MOD_PHP"
if $WITH_MOD_PHP ; then
echo " php version................: $PHP_VERSION"
fi
echo ""
echo "Include mod_fcgid.............: $WITH_MOD_FCGID"
if $WITH_MOD_FCGID ; then
echo " mod_fcgid version..........: $MOD_FCGID_VERSION"
fi
echo "Include mod_perl..............: $WITH_MOD_PERL"
if $WITH_MOD_PERL ; then
echo " mod_perl version...........: $MOD_PERL_VERSION"
fi
echo ""
if [[ ${#_php_socket_arr[@]} -gt 0 ]] ; then
echo -n "PHP FPM versions found........:"
for _val in ${_php_socket_arr[@]} ; do
IFS=':' read -a _val_arr <<< "${_val}"
echo -n " ${_val_arr[0]}"
done
echo
fi
echo ""
echononl "start with that configuration? [yes/no]: "
read OK
while [ "X$OK" != "Xyes" -a "X$OK" != "XYes" -a "X$OK" != "XNo" -a "X$OK" != "Xno" ]
do
echononl "wrong entry! [yes/no] :"
read OK
done
[ $OK = "Yes" -o $OK = "yes" ] || fatal "Change parameters and restart script: `basename $0`"
echo ""
echo ""
if [ -d "$_logdir" ];then
echononl "\tVerschiebe exitierendes Logverzeichnis ..."
mv $_logdir $_logdir.${_backup_date}
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Kann Logverzeichnis \"${_logdir}\" nicht verschieben.."
fi
fi
echononl "\tErstelle Logverzeichnis \"`basename ${_logdir}`\".."
mkdir -p $_logdir > /dev/null 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Kann Logverzeichnis \"${_logdir}\" nicht erstellen.."
fi
touch ${_logdir}/main.log
echo "## -----------" >> ${_logdir}/main.log
echo "## - Start Apache Webserver installation with the following Parameters" >> ${_logdir}/main.log
echo "## -----------" >> ${_logdir}/main.log
if [[ -n "$_httpd_current_version" ]]; then
echo "## -" >> ${_logdir}/main.log
echo "## --- Update form apache version $_httpd_current_version ---" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
fi
echo "## -" >> ${_logdir}/main.log
echo "## - httpd version.................: $APACHE_VERSION" >> ${_logdir}/main.log
echo "## - apr version................: $APR_VERSION" >> ${_logdir}/main.log
echo "## - apr-util version...........: $APR_UTIL_VERSION" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - apache user...................: $HTTPD_USER" >> ${_logdir}/main.log
echo "## - apache group..................: $HTTPD_GROUP" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - Installation directory........: $PREFIX" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - Base directory for webspaces..: $BASE_WEBSPACE_DIR" >> ${_logdir}/main.log
echo "## - Global DocumentRoot directory.: $GLOBAL_DOC_ROOT" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - default ServerName............: $SERVER_NAME" >> ${_logdir}/main.log
echo "## - default ServerAdmin...........: $SERVER_ADMIN" >> ${_logdir}/main.log
echo "## - " >> ${_logdir}/main.log
echo "## - IPv4 addresses................: $IPv4_ADDRESSES" >> ${_logdir}/main.log
echo "## - IPv6 addresses................: $IPv6_ADDRESSES" >> ${_logdir}/main.log
echo "## - " >> ${_logdir}/main.log
echo "## - Separate Listen Directives....: $SEPARATE_LISTEN_DIRECTIVES" >> ${_logdir}/main.log
echo "## - URL to access status report...: $STATUS_URL" >> ${_logdir}/main.log
echo "## - " >> ${_logdir}/main.log
echo "## - standard (non-ssl) port.......: $HTTPD_PORT" >> ${_logdir}/main.log
echo "## - ssl port......................: $HTTPD_SSL_PORT" >> ${_logdir}/main.log
echo "## -" >> ${_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 "## - Start at boot time............: $START_AT_BOOTTIME" >> ${_logdir}/main.log
echo "## -" >> ${_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 "## - Include mod_php...............: $WITH_MOD_PHP" >> ${_logdir}/main.log
if $WITH_MOD_PHP ; then
echo "## - php version................: $PHP_VERSION" >> ${_logdir}/main.log
fi
echo "## -" >> ${_logdir}/main.log
echo "## - Include mod_proxy_cgi.........: $WITH_MOD_PROXY_FCGI" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - Include mod_fcgid.............: $WITH_MOD_FCGID" >> ${_logdir}/main.log
if $WITH_MOD_FCGID ; then
echo "## - mod_fcgid version..........: $MOD_FCGID_VERSION" >> ${_logdir}/main.log
fi
echo "## - Include mod_perl..............: $WITH_MOD_PERL" >> ${_logdir}/main.log
if $WITH_MOD_PERL ; then
echo "## - mod_perl version...........: $MOD_PERL_VERSION" >> ${_logdir}/main.log
fi
echo "## -" >> ${_logdir}/main.log
if [[ ${#_php_socket_arr[@]} -gt 0 ]] ; then
echo -n "PHP FPM versions found........:" >> ${_logdir}/main.log
for _val in ${_php_socket_arr[@]} ; do
IFS=':' read -a _val_arr <<< "${_val}"
echo -n " ${_val_arr[0]}" >> ${_logdir}/main.log
done
echo "## -" >> ${_logdir}/main.log
fi
echo "## -" >> ${_logdir}/main.log
echo "## - log directory installation....: $_logdir" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
echo "APACHE_VERSION=$APACHE_VERSION" >> ${_logdir}/main.log
echo "APR_VERSION=$APR_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 "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 "IPv4_ADDRESSES=\"$IPv4_ADDRESSES\"" >> ${_logdir}/main.log
echo "IPv6_ADDRESSES=\"$IPv6_ADDRESSES\"" >> ${_logdir}/main.log
echo "IP_ADDRESSES=\"$IP_ADDRESSES\"" >> ${_logdir}/main.log
echo "SEPARATE_LISTEN_DIRECTIVES=$SEPARATE_LISTEN_DIRECTIVES" >> ${_logdir}/main.log
echo "STATUS_URL=\"$STATUS_URL\"" >> ${_logdir}/main.log
echo "HTTPD_PORT=$HTTPD_PORT" >> ${_logdir}/main.log
echo "HTTPD_SSL_PORT=$HTTPD_SSL_PORT" >> ${_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
if $WITH_MOD_PHP ; then
echo "PHP_VERSION=$PHP_VERSION" >> ${_logdir}/main.log
fi
echo "WITH_MOD_PROXY_FCGI=$WITH_MOD_PROXY_FCGI" >> ${_logdir}/main.log
echo "WITH_MOD_FCGID=$WITH_MOD_FCGID" >> ${_logdir}/main.log
if $WITH_MOD_FCGID ; then
echo "MOD_FCGID_VERSION=$MOD_FCGID_VERSION" >> ${_logdir}/main.log
fi
echo "WITH_MOD_PERL=$WITH_MOD_PERL" >> ${_logdir}/main.log
if $WITH_MOD_PERL ; then
echo "MOD_PERL_VERSION=$MOD_PERL_VERSION" >> ${_logdir}/main.log
fi
echo "" >> ${_logdir}/main.log
_pwd=`pwd`
if $WITH_MOD_FCGID ; then
APXS="$PREFIX/bin/apxs"
_builddir_fcgid=${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}_httpd-${APACHE_VERSION}
if [ -d "$_builddir_fcgid" ]; then
mv $_builddir_fcgid ${_builddir_fcgid}.${_backup_date}
fi
fi
if $WITH_MOD_PERL ; then
APXS="$PREFIX/bin/apxs"
_builddir_perl=${_srcdir}/mod_perl-${MOD_PERL_VERSION}_httpd-${APACHE_VERSION}
if [ -d "$_builddir_perl" ]; then
mv $_builddir_perl ${_builddir_perl}.${_backup_date}
fi
fi
_httpdconf=${PREFIX}/conf/httpd.conf
_rel_confextra_path=conf/extra
echo "PREFIX=$PREFIX" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
echo "APXS=\"$PREFIX/bin/apxs\"" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
echo "_logdir=$_logdir" >> ${_logdir}/main.log
echo "_builddir=$_builddir" >> ${_logdir}/main.log
echo "_builddir_fcgid=$_builddir_fcgid" >> ${_logdir}/main.log
echo "_httpdconf=$_httpdconf" >> ${_logdir}/main.log
echo "_rel_confextra_path=$_rel_confextra_path" >> ${_logdir}/main.log
echo "_backup_suffix=$_backup_suffix" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
echo ""
## - Disable crontab for user root
## -
_crontab_found=false
echononl "\tBackup crontab"
echo "" >> ${_logdir}/main.log
echo "## - Backup crontab" >> ${_logdir}/main.log
echo "## - " >> ${_logdir}/main.log
echo "crontab -u root -l > $_CRONTAB_BAKUP_FILE" >> ${_logdir}/main.log
crontab -u root -l >> $_CRONTAB_BAKUP_FILE 2>> ${_logdir}/main.log
if [ "$?" = "0" ]; then
echo_ok
_crontab_found=true
else
if [[ ! -s "$_CRONTAB_BAKUP_FILE" ]] ; then
echo_skipped
warn "No crontab for user 'root'found."
else
echo_failed
error "Backup crontab failed"
fi
fi
if $_crontab_found ; then
echononl "\tDisable crontab for user root"
echo "" >> ${_logdir}/main.log
echo "## - Disable crontab for user root" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "crontab -r -u root" >> ${_logdir}/main.log
crontab -r -u root >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fi
fi
echo ""
## - Install dependency packages for \"apache2\"
## -
#echononl "\tInstalling dependency packages for \"apache2\""
#
#echo "" >> ${_logdir}/main.log
#echo "## - Install dependency packages for \"apache2\"" >> ${_logdir}/main.log
#echo "## -" >> ${_logdir}/main.log
#echo "DEBIAN_FRONTEND=noninteractive apt-get -q -y build-dep apache2" >> ${_logdir}/main.log
#
#DEBIAN_FRONTEND=noninteractive apt-get -q -y build-dep apache2 >> ${_logdir}/main.log 2>&1
#if [ "$?" = 0 ]; then
# echo_ok
#else
# echo_failed
# fatal "Installing dependency packages for \"apache2\" failed!"
#fi
## - get sources..
## -
echo "" >> ${_logdir}/main.log
echo "cd $_srcdir" >> ${_logdir}/main.log
cd $_srcdir
echononl "\tGet source httpd-${APACHE_VERSION}.tar.gz.."
if [ ! -f httpd-${APACHE_VERSION}.tar.gz ]; then
echo "" >> ${_logdir}/main.log
echo "## - Get source httpd-${APACHE_VERSION}.tar.gz.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "wget ftp://ftp.fu-berlin.de/unix/www/apache/httpd/httpd-${APACHE_VERSION}.tar.gz" >> ${_logdir}/main.log
wget ftp://ftp.fu-berlin.de/unix/www/apache/httpd/httpd-${APACHE_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
echononl "\tTry to get source httpd-${APACHE_VERSION}.tar.gz from \"archive.apache.org\" .."
echo "## - Get source httpd-${APACHE_VERSION}.tar.gz.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "wget https://archive.apache.org/dist/httpd/httpd-${APACHE_VERSION}.tar.gz" >> ${_logdir}/main.log
wget https://archive.apache.org/dist/httpd/httpd-${APACHE_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot Download httpd-${APACHE_VERSION}.tar.gz"
fi
fi
else
echo_skipped
fi
echononl "\tGet source apr-${APR_VERSION}.tar.gz.."
if $APR_INSTALLED ; then
echo_skipped
else
if [ ! -f apr-${APR_VERSION}.tar.gz ]; then
echo "" >> ${_logdir}/main.log
echo "## - Get source apr-${APR_VERSION}.tar.gz.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "wget ftp://ftp.fu-berlin.de/unix/www/apache/apr/apr-${APR_VERSION}.tar.gz" >> ${_logdir}/main.log
wget ftp://ftp.fu-berlin.de/unix/www/apache/apr/apr-${APR_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot Download apr-${APR_VERSION}.tar.gz"
fi
else
echo_skipped
fi
fi
echononl "\tGet source apr-util-${APR_UTIL_VERSION}.tar.gz.."
if $APR_UTIL_INSTALLED ; then
echo_skipped
else
if [ ! -f apr-util-${APR_UTIL_VERSION}.tar.gz ]; then
echo "" >> ${_logdir}/main.log
echo "## -Get source apr-util-${APR_UTIL_VERSION}.tar.gz.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "wget ftp://ftp.fu-berlin.de/unix/www/apache/apr/apr-util-${APR_UTIL_VERSION}.tar.gz" >> ${_logdir}/main.log
wget ftp://ftp.fu-berlin.de/unix/www/apache/apr/apr-util-${APR_UTIL_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot Download apr-util-${APR_UTIL_VERSION}.tar.gz"
fi
else
echo_skipped
fi
fi
echo
## - install apr and apr-util
if $APR_INSTALLED ; then
echononl "\tapr v $APR_VERSION is already installed.."
echo_ok
else
echo "" >> ${_logdir}/main.log
echo "cd $_srcdir" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
cd $_srcdir
## - Move (backup) apr source directory
## -
echononl "\tMove (backup) existing source directory apr-$APR_VERSION ..."
if [ -d "${_srcdir}/apr-$APR_VERSION" ];then
echo "" >> ${_logdir}/main.log
echo "## - Move (backup) existing source directory apr-$APR_VERSION ..." >> ${_logdir}/main.log
echo "## -" >> ${_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.${_backup_date}
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot move (backup) existing source directory \"apr-${APR_VERSION.}\" .."
fi
else
echo_skipped
fi
## - unpack apr
## -
echononl "\tUnpack apr-$APR_VERSION.tar.gz .."
echo "" >> ${_logdir}/main.log
echo "## - Unpack apr-$APR_VERSION.tar.gz .." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "gunzip < ${_srcdir}/apr-$APR_VERSION.tar.gz | tar -xpf -" >> ${_logdir}/main.log
gunzip < ${_srcdir}/apr-$APR_VERSION.tar.gz | tar -xpf -
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot unpack mod_fcgid-${MOD_FCGID_VERSION}.tar.gz"
fi
echo "" >> ${_logdir}/main.log
echo "chown -R root.root apr-$APR_VERSION" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
chown -R root.root apr-$APR_VERSION || fatal "Changing permissions of \"apr-$APR_VERSION\" failed"
## - build and install apr
## -
echo "" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
echo "cd apr-$APR_VERSION" >> ${_logdir}/main.log
cd apr-$APR_VERSION
echo "" >> ${_logdir}/main.log
echo "## - Configure apr-${APR_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/apr-configure.log for more details" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "LDFLAGS=\"-s\" ./configure --prefix=/usr/local/apr-$APR_VERSION > ${_logdir}/apr-configure.log 2>&1" >> ${_logdir}/main.log
echononl "\tConfigure apr-${APR_VERSION}.."
LDFLAGS="-s" ./configure --prefix=/usr/local/apr-$APR_VERSION > ${_logdir}/apr-configure.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot configure apr-${APR_VERSION}."
fi
echo "" >> ${_logdir}/main.log
echo "## - Compile apr-${APR_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/apr-make.log for more details" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "make > ${_logdir}/apr-make.log 2>&1" >> ${_logdir}/main.log
echononl "\tCompile apr-${APR_VERSION}.."
make > ${_logdir}/apr-make.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Compiling apr-${APR_VERSION} failed."
fi
echononl "\tMove (backup) existing install directory apr-${APR_VERSION}.."
if [ -d "/usr/local/apr-${APR_VERSION}" ];then
echo "" >> ${_logdir}/main.log
echo "## - Move (backup) existing install directory apr-${APR_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_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}.${_backup_date} >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot move (backup) install directory \"/usr/local/apr-${APR_VERSION}\" .."
fi
else
echo_skipped
fi
echo "" >> ${_logdir}/main.log
echo "## - Install apr-${APR_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/apr-make_install.log for more details" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "make install > ${_logdir}/apr-make_install.log 2>&1" >> ${_logdir}/main.log
echononl "\tInstall apr-${APR_VERSION}.."
make install > ${_logdir}/apr-make_install.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Installing apr-${APR_VERSION} failed."
fi
if [ -h /usr/local/apr ]; then
echononl "\tRemove Symlink /usr/local/apr.."
echo "" >> ${_logdir}/main.log
echo "## - Remove Symlink /usr/local/apr.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "rm /usr/local/apr" >> ${_logdir}/main.log
rm /usr/local/apr >> ${_logdir}/main.log
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Removing Symlink /usr/local/apr failed."
fi
fi
echo "" >> ${_logdir}/main.log
echo "## - Symlink /usr/local/apr --> apr-${APR_VERSION}" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "ln -s apr-${APR_VERSION} /usr/local/apr" >> ${_logdir}/main.log
echononl "\tSymlink /usr/local/apr --> apr-${APR_VERSION}"
ln -s apr-${APR_VERSION} /usr/local/apr >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot symlink /usr/local/apr to apr-${APR_VERSION}."
fi
echo "" >> ${_logdir}/main.log
echo ""
fi
if $APR_UTIL_INSTALLED ; then
echononl "\tapr-util v $APR_UTIL_VERSION is already installed.."
echo_ok
else
echo "" >> ${_logdir}/main.log
echo "cd $_srcdir" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
cd $_srcdir
## - Move (backup) apr-util source directory
## -
echononl "\tMove (backup) existing source directory apr-util-$APR_UTIL_VERSION.."
if [ -d "${_srcdir}/apr-util-$APR_UTIL_VERSION" ];then
echo "" >> ${_logdir}/main.log
echo "## - Move (backup) existing source directory apr-util-$APR_UTIL_VERSIO.." >> ${_logdir}/main.log
echo "## -" >> ${_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.${_backup_date}
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot move (backup) existing source directory \"apr-util-$APR_UTIL_VERSIONN.}\" .."
fi
else
echo_skipped
fi
## - unpack apr-util
## -
echo "" >> ${_logdir}/main.log
echo "## - Unpack apr-util-$APR_UTIL_VERSION.tar.gz.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "gunzip < ${_srcdir}/apr-util-$APR_UTIL_VERSION.tar.gz | tar -xpf -" >> ${_logdir}/main.log
echononl "\tUnpack apr-util-$APR_UTIL_VERSION.tar.gz.."
gunzip < ${_srcdir}/apr-util-$APR_UTIL_VERSION.tar.gz | tar -xpf -
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot unpack apr-util-$APR_UTIL_VERSION.tar.gz"
fi
echo "" >> ${_logdir}/main.log
echo "chown -R root.root apr-util-$APR_UTIL_VERSION" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
chown -R root.root apr-util-$APR_UTIL_VERSION || fatal "Changing permissions of \"apr-util-$APR_UTIL_VERSION\" failed."
## - build and install apr-util
## -
echo "" >> ${_logdir}/main.log
echo "cd apr-util-$APR_UTIL_VERSION" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
cd apr-util-$APR_UTIL_VERSION
cat <<EOF >> ${_logdir}/main.log
## - Configure apr-util-${APR_UTIL_VERSION}..
## -
## - See ${_logdir}/apr-util-configure.log for more details
## -
LDFLAGS="-s" \
./configure --prefix=/usr/local/apr-util-$APR_UTIL_VERSION \
--with-ldap \
--with-openssl \
--with-crypto \
--with-gdbm \
--with-apr=/usr/local/apr > ${_logdir}/apr-util-configure.log 2>&1
EOF
echononl "\tConfigure apr-util-${APR_UTIL_VERSION}.."
LDFLAGS="-s" \
./configure --prefix=/usr/local/apr-util-$APR_UTIL_VERSION \
--with-ldap \
--with-openssl \
--with-crypto \
--with-gdbm \
--with-apr=/usr/local/apr > ${_logdir}/apr-util-configure.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot configure apr-util-${APR_UTIL_VERSION}."
fi
echo "" >> ${_logdir}/main.log
echo "## - Compile apr-util-${APR_UTIL_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/apr-util-make.log for more details" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "make > ${_logdir}/apr-util-make.log 2>&1" >> ${_logdir}/main.log
echononl "\tCompile apr-util-${APR_UTIL_VERSION}.."
make > ${_logdir}/apr-util-make.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Compiling apr-util-${APR_UTIL_VERSION} failed."
fi
echononl "\tMove (backup) existing install directory apr-util-${APR_UTIL_VERSION}.."
if [ -d "/usr/local/apr-util-${APR_UTIL_VERSION}" ];then
echo "" >> ${_logdir}/main.log
echo "## - Move (backup) existing install directory apr-util-${APR_UTIL_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_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}.${_backup_date} >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot move (backup) install directory \"/usr/local/apr-util-${APR_UTIL_VERSION}\" .."
fi
else
echo_skipped
fi
echo "" >> ${_logdir}/main.log
echo "## - Install apr-util-${APR_UTIL_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/apr-util-make_install.log for more details" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "make install > ${_logdir}/apr-util-make_install.log 2>&1" >> ${_logdir}/main.log
echononl "\tInstall apr-util-${APR_UTIL_VERSION}.."
make install > ${_logdir}/apr-util-make_install.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Installing apr-util-${APR_UTIL_VERSION} failed."
fi
if [ -h /usr/local/apr-util ]; then
echononl "\tRemove Symlink /usr/local/apr-util.."
echo "" >> ${_logdir}/main.log
echo "## - Remove Symlink /usr/local/apr-util.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "rm /usr/local/apr-util" >> ${_logdir}/main.log
rm /usr/local/apr-util >> ${_logdir}/main.log
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Removing Symlink /usr/local/apr-util failed."
fi
fi
echo "" >> ${_logdir}/main.log
echo "## - Symlink /usr/local/apr-util --> apr-util-${APR_UTIL_VERSION}" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "ln -s apr-util-${APR_UTIL_VERSION} /usr/local/apr-util >> ${_logdir}/main.log 2>&1" >> ${_logdir}/main.log
ln -s apr-util-${APR_UTIL_VERSION} /usr/local/apr-util >> ${_logdir}/main.log 2>&1
echononl "\tSymlink /usr/local/apr-util --> apr-util-${APR_UTIL_VERSION}"
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot symlink /usr/local/apr-util to apr-util-${APR_UTIL_VERSION}."
fi
fi
echo
echo -e "\t---"
echo -e "\t--- Installation Apache ${APACHE_VERSION}"
echo -e "\t---"
echo""
echononl "\tMove (backup) existing source directory ..."
if [ -d "$_builddir" ];then
echo "" >> ${_logdir}/main.log
echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "mv $_builddir $_builddir.${_backup_date}" >> ${_logdir}/main.log
mv $_builddir $_builddir.${_backup_date} >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot move (backup) source directory \"${_builddir}\" .."
fi
else
echo_skipped
fi
## - unpack apache
## -
cd $_srcdir
echo "" >> ${_logdir}/main.log
echo "## - Unpack httpd-$APACHE_VERSION.tar.gz.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "gunzip < ${_srcdir}/httpd-$APACHE_VERSION.tar.gz | tar -xpf -" >> ${_logdir}/main.log
echononl "\tUnpack httpd-$APACHE_VERSION.tar.gz.."
gunzip < ${_srcdir}/httpd-$APACHE_VERSION.tar.gz | tar -xpf - >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot unpack httpd-$APACHE_VERSION.tar.gz"
fi
echo "" >> ${_logdir}/main.log
echo "chown -R root.root httpd-$APACHE_VERSION" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
chown -R root.root httpd-$APACHE_VERSION || fatal "Changing permissions of \"httpd-$APACHE_VERSION\" failed."
if [ "httpd-$APACHE_VERSION" != "`basename $_builddir`" ]; then
echo "" >> ${_logdir}/main.log
echo "## - Rename source directory to `basename $_builddir`.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "mv httpd-$APACHE_VERSION ${_builddir} > ${_logdir}/main.log 2>&1" >> ${_logdir}/main.log
echononl "\tRename source directory to `basename $_builddir`.."
mv httpd-$APACHE_VERSION ${_builddir}
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot rename httpd-$APACHE_VERSION to $_builddir"
fi
fi
echo "" >> ${_logdir}/main.log
echo "cd $_builddir" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
cd $_builddir || fatal "Changing Directory (cd) to \"${_builddir}\" failed"
## - LDFLAGS="-s" --> Remove all symbol table and relocation information from the executable.
## -
echo "" >> ${_logdir}/main.log
echo "## - Configure apache-${APACHE_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/httpd-configure.log for more details" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
echononl "\tConfigure apache-${APACHE_VERSION}.."
config_params="--prefix=$PREFIX \
--enable-ssl=static \
--enable-info=static \
--enable-rewrite=static \
--enable-cache=static \
--enable-cache-disk=static \
--enable-so=static \
--enable-cgid=static \
--enable-cgi=static \
--with-mpm=event \
--enable-suexec=static --with-suexec-caller=$HTTPD_USER --with-suexec-logfile=${APACHE_LOG_DIR}/suexec_log --with-suexec-docroot=$SUEXEC_DOC_ROOT --with-suexec-bin=$PREFIX/bin/suexec \
--enable-include=static \
--enable-xml2enc \
--enable-authnz-ldap \
--enable-proxy=static \
--enable-proxy-connect=static \
--enable-proxy-http=static \
--enable-proxy-fdpass=static \
--enable-proxy-fcgi=statuc \
--enable-proxy-wstunnel=static \
--enable-proxy-html=static \
--enable-slotmem-shm \
--with-apr=/usr/local/apr/bin/apr-1-config \
--with-apr-util=/usr/local/apr-util/bin/apu-1-config"
if $WITH_MOD_PROXY_FCGI ; then
config_params="$config_params \
--enable-proxy-fcgi=static"
fi
cat << EOF >> ${_logdir}/main.log
LDFLAGS="-s" \
./configure $config_params
EOF
LDFLAGS="-s" \
./configure $config_params > ${_logdir}/httpd-configure.log 2>&1
#LDFLAGS="-s" \
# ./configure --prefix=$PREFIX \
# --with-ssl=/usr/local/openssl \
# --enable-ssl=static \
# --enable-info=static \
# --enable-rewrite=static \
# --enable-cache=static \
# --enable-cache-disk=static \
# --enable-so=static \
# --enable-cgid=static \
# --enable-cgi=static \
# --with-mpm=event \
# --enable-suexec=static --with-suexec-caller=$HTTPD_USER --with-suexec-logfile=${APACHE_LOG_DIR}/suexec_log --with-suexec-docroot=$SUEXEC_DOC_ROOT --with-suexec-bin=$PREFIX/bin/suexec \
# --enable-include=static \
# --with-apr=/usr/local/apr/bin/apr-1-config \
# --with-apr-util=/usr/local/apr-util/bin/apu-1-config \
# > ${_logdir}/httpd-configure.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Configuring apache-${APACHE_VERSION} failed."
fi
#--enable-dav \
#--enable-dav-fs \
#--enable-deflate \
#--enable-socache-memcache=static \
#--enable-asis \
#--enable-proxy \
#--enable-proxy-connect \
#--enable-proxy-ftp \
#--enable-proxy-http \
#--enable-proxy-balancer \
## --enable-authz-dbm \
## --enable-authn-dbm \
## --with-berkeley-db=/usr/local/BerkeleyDB.4.4.20 \
## --target=i686-pc-linux-gnu \
## --build=i686-pc-linux-gnu | tee ../httpd-$APACHE_VERSION-install.log
## --disable-nls \
## --with-included-apr \
## --with-dbm=db4 \
## --enable-mem-cache \
## --enable-headers \
## --with-berkeley-db=/usr \
echo "" >> ${_logdir}/main.log
echo "## - Compile apache-${APACHE_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/httpd-make.log for more details" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "make > ${_logdir}/httpd-make.log 2>&1" >> ${_logdir}/main.log
echononl "\tCompile apache-${APACHE_VERSION}.."
make > ${_logdir}/httpd-make.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Compiling apache-${APACHE_VERSION} failed."
fi
echononl "\tBackup existing installation directory.."
if [ -d "$PREFIX" ];then
echo "" >> ${_logdir}/main.log
echo "## - Backup existing installation directory.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "mv $PREFIX $PREFIX.${_backup_date}" >> ${_logdir}/main.log
mv $PREFIX $PREFIX.${_backup_date} >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot move (backup) existing install directory \"${_builddir}\" .."
fi
else
echo_skipped
fi
echononl "\tStop Apache Webservice (if running).."
if $START_AT_BOOTTIME && $APACHE_WEBSERVICE_RUNNING ; then
echo "" >> ${_logdir}/main.log
echo "## - Stop Apache Webservice.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
if $SYSTEMD_SUPPORTED ; then
echo "systemctl stop apache2" >> ${_logdir}/main.log
systemctl stop apache2 >> ${_logdir}/main.log 2>&1
else
echo "/etc/init.d/apache2 stop" >> ${_logdir}/main.log
/etc/init.d/apache2 stop >> ${_logdir}/main.log 2>&1
fi
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
error "Stopping Apache Webservice failed!"
fi
PIDS="$(ps aux | grep -E "(bin/apache2 |bin/httpd )" | grep -v grep | awk '{print$2}')"
declare -i i=0
while [[ -n "${PIDS}" ]]; do
if [[ $i -eq 0 ]]; then
warn "Stopping Apache Webservice failed."
echononl "\tGoing to kill remaining httpd-processes .."
echo "" >> ${_logdir}/main.log
echo "## - Going to kill remaining httpd-processes" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
fi
if [[ $i -gt 10 ]]; then
echo_failed
erro "Killing remaining httpd-processes failed !"
break
fi
sleep 2
for _PID in $PIDS ; do
echo "kill -9 $_PID" >> ${_logdir}/main.log
kill -9 $_PID >> ${_logdir}/main.log 2>&1
done
PIDS="$(ps aux | grep -E "(bin/apache2 |bin/httpd )" | grep -v grep | awk '{print$2}')"
(( i++ ))
[[ $i -le 10 ]] && echo_ok
done
else
echo_skipped
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 "## - Install apache-${APACHE_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/httpd-make_install.log for more details" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "make install > ${_logdir}/httpd-make_install.log 2>&1" >> ${_logdir}/main.log
echononl "\tInstall apache-${APACHE_VERSION}.."
make install > ${_logdir}/httpd-make_install.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
error "Installing apache-${APACHE_VERSION} failed."
echononl "\tTrying again..."
echo "## - Trying to install apache-${APACHE_VERSION} again.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/httpd-make_install_again.log for more details" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "make install > ${_logdir}/httpd-make_install_again.log 2>&1" >> ${_logdir}/main.log
make install > ${_logdir}/httpd-make_install_again.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
fi
fi
echo ""
## - do some post-installatin tasks..
## -
echo ""
echo -e "\t---"
echo -e "\t--- post installation tasks"
echo -e "\t---"
echo ""
if [ -f $_httpdconf ];then
cp -a $_httpdconf $_httpdconf.ORIG
if $subst_base_path ; then
## - set BasePath to httpd.conf
## -
echo ""
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Substitute \"$PREFIX\" with \"/usr/local/apache2\".." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -e \"s#$PREFIX#/usr/local/apache2#g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.confSubstitute \"$PREFIX\" with \"/usr/local/apache2\".."
sed -i$_backup_suffix -e "s#$PREFIX#/usr/local/apache2#g" $_httpdconf >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm -f $_httpdconf$_backup_suffix
else
echo_failed
fi
## - set BasePath to all conf files in conf/extra
## -
if [ -d $PREFIX/$_rel_confextra_path ]; then
cd $PREFIX/$_rel_confextra_path
_files=`ls *.conf`
for _file in $_files ;do
echo ""
echo "" >> ${_logdir}/main.log
echo "## - ${file}: Substitute \"$PREFIX\" with \"/usr/local/apache2\".." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -e \"s#$PREFIX#/usr/local/apache2#g\" $_file" >> ${_logdir}/main.log
echononl "\t${_file}: Substitute \"$PREFIX\" with \"/usr/local/apache2\""
sed -i$_backup_suffix -e "s#$PREFIX#/usr/local/apache2#g" $_file >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm -f $_file$_backup_suffix
else
echo_failed
fi
done
fi
fi
## - set User
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Set User to \"$HTTPD_USER\".." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*User ).*)$&## \1\n\2${HTTPD_USER}&g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Set User to \"$HTTPD_USER\".."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*User ).*)$&## \1\n\2${HTTPD_USER}&g" \
$_httpdconf
if [ "0" = $? ]; then
echo_ok
rm -f $_httpdconf$_backup_suffix
else
echo_failed
fi
## - set Group
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Set Group to \"$HTTPD_GROUP\".." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*Group ).*)$&## \1\n\2${HTTPD_GROUP}&g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Set Group to \"$HTTPD_GROUP\".."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*Group ).*)$&## \1\n\2${HTTPD_GROUP}&g" \
$_httpdconf
if [ "0" = $? ]; then
echo_ok
rm -f $_httpdconf$_backup_suffix
else
echo_failed
fi
## - set ServerAdmin
## -
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Set ServerAdmin to \"$SERVER_ADMIN\".." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*)#?(ServerAdmin ).*)$&## \1\n\2\3${SERVER_ADMIN}&g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Set ServerAdmin to \"$SERVER_ADMIN\".."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*)#?(ServerAdmin ).*)$&## \1\n\2\3${SERVER_ADMIN}&g" \
$_httpdconf
if [ "0" = $? ]; then
echo_ok
rm -f $_httpdconf$_backup_suffix
else
echo_failed
fi
## - Set ServerName
## -
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Set ServerName to \"$SERVER_NAME\".." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*)#?(ServerName ).*)$&## \1\n\2\3${SERVER_NAME}&g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Set ServerName to \"$SERVER_NAME\".."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*)#?(ServerName ).*)$&## \1\n\2\3${SERVER_NAME}&g" \
$_httpdconf
if [ "0" = $? ]; then
echo_ok
rm -f $_httpdconf$_backup_suffix
else
echo_failed
fi
## - Set DocumentRoot
## -
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Set (global) DocumentRoot.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^([ ^t]*)(DocumentRoot )(.*)$&\1## \2\3\n\1\2\\\"${GLOBAL_DOC_ROOT}\\\"&g\" _httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Set (global) DocumentRoot.."
sed -i$_backup_suffix -r \
-e "s&^([ ^t]*)(DocumentRoot )(.*)$&\1## \2\3\n\1\2\"${GLOBAL_DOC_ROOT}\"&g" \
$_httpdconf
if [ "0" = $? ]; then
echo_ok
rm -f $_httpdconf$_backup_suffix
else
echo_failed
fi
## - Set DirectoryIndex
## -
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Set (global) DirectoryIndex.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^([ ^t]*)(DirectoryIndex )(.*)$&\1## \2\3\n\1\2${DIRECTORY_INDEX}&g\" _httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Set (global) DirectoryIndex.."
sed -i$_backup_suffix -r \
-e "s&^([ ^t]*)(DirectoryIndex )(.*)$&\1## \2\3\n\1\2${DIRECTORY_INDEX}&g" \
$_httpdconf
if [ "0" = $? ]; then
echo_ok
rm -f $_httpdconf$_backup_suffix
else
echo_failed
fi
## - Set log-directory and concerning entries
## -
echo "" >> ${_logdir}/main.log
echo "## - Create $APACHE_LOG_DIR\" (if not exists).." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "mkdir -p $APACHE_LOG_DIR" >> ${_logdir}/main.log
echononl "\tCreate $APACHE_LOG_DIR\" (if not exists).."
mkdir -p $APACHE_LOG_DIR >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Adjust ErrorLog entry.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*ErrorLog ).*)$&## \1\n\2${APACHE_LOG_DIR}/error_log&g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Adjust ErrorLog entry.."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*ErrorLog ).*)$&## \1\n\2${APACHE_LOG_DIR}/error_log&g" \
$_httpdconf >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Set CustomLog entry.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^([ ^t]*)(CustomLog )(.*)$&\1## \2\3\n\1\2${APACHE_LOG_DIR}/access_log combined&g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Set CustomLog entry.."
sed -i$_backup_suffix -r \
-e "s&^([ ^t]*)(CustomLog )(.*)$&\1## \2\3\n\1\2${APACHE_LOG_DIR}/access_log combined&g" \
$_httpdconf >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm -f $_httpdconf$_backup_suffix
else
echo_failed
fi
else
echo_failed
fi
else
echo_failed
fi
fi
echo "" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - httpd.conf: Set ServerSignature / ServerTokens.." >> ${_logdir}/main.log
cat <<EOFLOG >> ${_logdir}/main.log
cat <<EOF >>$_httpdconf
ServerSignature Off
ServerTokens ProductOnly
EOF
EOFLOG
echononl "\thttpd.conf: Set ServerSignature / ServerTokens.."
cat <<EOF >>$_httpdconf
ServerSignature Off
ServerTokens ProductOnly
EOF
if [ "0" = $? ]; then
echo_ok
else
echo_failed
fi
echo "" >> ${_logdir}/main.log
echo "## - Create vhosts configuration directory $PREFIX/conf/vhosts.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "mkdir -p $PREFIX/conf/vhosts" >> ${_logdir}/main.log
echononl "\tCreate vhosts configuration directory /conf/vhosts.."
mkdir -p $PREFIX/conf/vhosts >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
else
echo_failed
fi
echo "" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - httpd.conf: \"include conf/vhosts/*.conf\".." >> ${_logdir}/main.log
cat <<EOFLOG >> ${_logdir}/main.log
cat <<EOF >>$_httpdconf
include conf/vhosts/*.conf
EOF
EOFLOG
echononl "\thttpd.conf: \"include conf/vhosts/*.conf\".."
cat <<EOF >>$_httpdconf
include conf/vhosts/*.conf
EOF
if [ "0" = $? ]; then
echo_ok
else
echo_failed
fi
## - Listen on certain ip(s) ?
## -
if [[ -n "$IP_ADDRESSES" ]] && $SEPARATE_LISTEN_DIRECTIVES ; then
_substitute=""
for _ip in $IP_ADDRESSES ; do
_substitute="$_substitute\nListen $_ip:${HTTPD_PORT}"
done
echo "" >> ${_logdir}/main.log
cat <<EOF >> ${_logdir}/main.log
_substitute=""
for _ip in i\$IP_ADDRESSES ; do
_substitute="\$_substitute\nListen \$_ip:\${HTTPD_PORT}"
done
EOF
echo "" >> ${_logdir}/main.log
echo "## - Insert Listen directive(s) Port ${HTTPD_PORT} for given ip-addresses.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s#^(Listen 80.*)#\#\# \1\n\$_substitute#g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\tInsert Listen directive(s) Port ${HTTPD_PORT} for given ip-addresses"
sed -i$_backup_suffix -r -e "s#^(Listen 80.*)#\#\# \1\n$_substitute#g" $_httpdconf >> ${_logdir}/main.log 2>&1
if [ "0" = "$?" ];then
echo_ok
rm ${_httpdconf}$_backup_suffix
else
echo_failed
warn "Inserting Listen directive(s) Port ${HTTPD_PORT} failed"
fi
else
warn "No ip-addresses given. Omitting insertion of \"Listen\" directive(s) Port ${HTTPD_PORT} !"
fi
## ---
## --- SSL
## ---
## - include httpd-ssl.conf
## -
_file=httpd-ssl.conf
if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ]; then
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: include file \"$_file\".." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
echononl "\thttpd.conf: include file \"$_file\".."
sed -i$_backup_suffix -r \
-e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \
$_httpdconf > /dev/null 2>&1
if [ "0" = "$?" ];then
rm $_httpdconf$_backup_suffix
echo_ok
else
echo_failed
fi
#notice=""
## - copy certification files if present..
_failed=false
_DEFAULT_SSL_CERT="${PREFIX}/conf/server-bundle.crt"
_DEFAULT_SSL_KEY="${PREFIX}/conf/server.key"
echo "" >> ${_logdir}/main.log
echo "## - Set Symlinks for default Server Key/Cert" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echononl "\tSet Symlinks for default Server Key/Cert.."
if [ -f "/var/lib/dehydrated/certs/${SERVER_NAME}/fullchain.pem" -a -f "/var/lib/dehydrated/certs/${SERVER_NAME}/privkey.pem" ]; then
ln -s /var/lib/dehydrated/certs/${SERVER_NAME}/fullchain.pem $_DEFAULT_SSL_CERT
if [[ $? -gt 0 ]];then
_failed=true
fi
ln -s /var/lib/dehydrated/certs/${SERVER_NAME}/privkey.pem $_DEFAULT_SSL_KEY
if [[ $? -gt 0 ]];then
_failed=true
fi
if $_failed ; then
echo_failed
else
echo_ok
fi
elif [ -f $_SSL_SNAKEOIL_CERT -a -f $_SSL_SNAKEOIL_KEY ]; then
ln -s $_SSL_SNAKEOIL_CERT $_DEFAULT_SSL_CERT
if [[ $? -gt 0 ]];then
_failed=true
fi
ln -s $_SSL_SNAKEOIL_KEY $_DEFAULT_SSL_KEY
if [[ $? -gt 0 ]];then
_failed=true
fi
if $_failed ; then
echo_failed
else
echo_ok
fi
elif [ -f $_srcdir/server-bundle.crt -a -f $_srcdir/server.key ];then
cp $_srcdir/server-bundle.crt $_DEFAULT_SSL_CERT
if [[ $? -gt 0 ]];then
_failed=true
fi
cp $_srcdir/server.key $_DEFAULT_SSL_KEY
if [[ $? -gt 0 ]];then
_failed=true
fi
if $_failed ; then
echo_failed
else
echo_ok
fi
else
echo_skipped
warn "SSL Connections are enabled but no (default) certificates\n\t are present. So the webserver will not start."
fi
if [[ -n "$IP_ADDRESSES" ]] && $SEPARATE_LISTEN_DIRECTIVES ; then
_substitute_ssl=""
for _ip in $IP_ADDRESSES ; do
_substitute_ssl="$_substitute_ssl\nListen $_ip:${HTTPD_SSL_PORT}"
done
echo "" >> ${_logdir}/main.log
cat <<EOF >> ${_logdir}/main.log
_substitute_ssl=""
for _ip in \$IP_ADDRESSES ; do
_substitute_ssl="\$_substitute_ssl\nListen \$_ip:\${HTTPD_SSL_PORT}"
done
EOF
echo "" >> ${_logdir}/main.log
echo "## - Insert Listen directive(s) Port ${HTTPD_SSL_PORT} for given ip-addresses" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s#^(Listen 443.*)#\#\# \1\n\$_substitute_ssl#g\" \\" >> ${_logdir}/main.log
echo " ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
echononl "\tInsert Listen directive(s) Port ${HTTPD_SSL_PORT} for given ip-addresses"
sed -i$_backup_suffix -r -e "s#^(Listen 443.*)#\#\# \1\n$_substitute_ssl#g" \
${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1
if [ "0" = "$?" ];then
echo_ok
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
else
echo_failed
warn "Inserting Listen directive(s) Port ${HTTPD_SSL_PORT} failed"
fi
else
warn "No ip-addresses given. Omitting insertion of \"Listen\" directive(s) Port ${HTTPD_SSL_PORT} !"
fi # if [[ -n "$IP_ADDRESSES" ]] && $separate_listen_directives
## - Uncomment "LoadModule" for reqired additional modules..
## -
for module in log_config mod_setenvif socache_shmcb_module ; do
echo "" >> ${_logdir}/main.log
echo "## - Uncomment LoadModule $module.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\tUncomment LoadModule $module.."
sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Including \"LoadModule $module\" failed.."
fi
done
## - Set SSLCipherSuite
## -
echo "" >> ${_logdir}/main.log
echo "## - $_file: Set SSLCipherSuite.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*SSLCipherSuite ).*)$&## \1\n\2${_SSL_Cipher_Suite}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
echononl "\t$_file: Set SSLCipherSuite.."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*SSLCipherSuite ).*)$&## \1\n\2${_SSL_Cipher_Suite}&g" \
${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
else
echo_failed
fi
## - Set SSLCertificateFile
## -
echo "" >> ${_logdir}/main.log
echo "## - $_file: Set SSLCertificateFile.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*SSLCertificateFile ).*)$&## \1\n\2\\\"${PREFIX}/conf/server-bundle.crt\\\"&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
echononl "\t$_file: Set SSLCertificateFile.."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*SSLCertificateFile ).*)$&## \1\n\2\"${PREFIX}/conf/server-bundle.crt\"&g" \
${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
else
echo_failed
fi
## - Set SSLProxyCipherSuite
## -
echo "" >> ${_logdir}/main.log
echo "## - $_file: Set SSLProxyCipherSuite.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*SSLProxyCipherSuite ).*)$&## \1\n\2${_SSL_Cipher_Suite}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
echononl "\t$_file: Set SSLProxyCipherSuite.."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*SSLProxyCipherSuite ).*)$&## \1\n\2${_SSL_Cipher_Suite}&g" \
${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
else
echo_failed
fi
## - Set SSLProtocol
## -
echo "" >> ${_logdir}/main.log
echo "## - $_file: Set SSLProtocol.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*SSLProtocol ).*)$&## \1\n\2ALL -SSLv3 -SSLv2&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
echononl "\t$_file: Set SSLProtocol.."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*SSLProtocol ).*)$&## \1\n\2all -SSLv3 -SSLv2&g" \
${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
else
echo_failed
fi
## - Set SSLProxyProtocol
## -
echo "" >> ${_logdir}/main.log
echo "## - $_file: Set SSLProxyProtocol.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*SSLProxyProtocol ).*)$&## \1\n\2ALL -SSLv3 -SSLv2&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
echononl "\t$_file: Set SSLProxyProtocol.."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*SSLProxyProtocol ).*)$&## \1\n\2all -SSLv3 -SSLv2&g" \
${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
else
echo_failed
fi
## - Set SSLHonorCipherOrder
## -
echo "" >> ${_logdir}/main.log
echo "## - $_file: Set SSLHonorCipherOrder.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*#*[ ^t]*SSLHonorCipherOrder ).*)$&##\1\nSSLHonorCipherOrder on&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
echononl "\t$_file: Set SSLHonorCipherOrder.."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*#*[ ^t]*SSLHonorCipherOrder ).*)$&##\1\nSSLHonorCipherOrder on&g" \
${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
else
echo_failed
fi
## - Set ServerName
## -
echo "" >> ${_logdir}/main.log
echo "## - $_file: Set ServerName.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*ServerName ).*)$&## \1\n\2${SERVER_NAME}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
echononl "\t$_file: Set ServerName.."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*ServerName ).*)$&## \1\n\2${SERVER_NAME}&g" \
${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
else
echo_failed
fi
## - Set ServerAdmin
## -
echo "" >> ${_logdir}/main.log
echo "## -$_file: Set ServerAdmin.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*ServerAdmin ).*)$&## \1\n\2${SERVER_ADMIN}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
echononl "\t$_file: Set ServerAdmin.."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*ServerAdmin ).*)$&## \1\n\2${SERVER_ADMIN}&g" \
${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
else
echo_failed
fi
## - Set DocumentRoot
## -
echo "" >> ${_logdir}/main.log
echo "## - $_file: Set DocumentRoot.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*DocumentRoot ).*)$&## \1\n\2\\\"${GLOBAL_DOC_ROOT}\\\"&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
echononl "\t$_file: Set DocumentRoot.."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*DocumentRoot ).*)$&## \1\n\2\"${GLOBAL_DOC_ROOT}\"&g" \
${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
else
echo_failed
fi
## - Set log entries
## -
echo "" >> ${_logdir}/main.log
echo "## - $_file: Set ErrorLog.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*ErrorLog ).*)$&## \1\n\2\\\"${APACHE_LOG_DIR}/error_log\\\"&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
echononl "\t$_file: Set ErrorLog.."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*ErrorLog ).*)$&## \1\n\2\"${APACHE_LOG_DIR}/error_log\"&g" \
${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
else
echo_failed
fi
echo "" >> ${_logdir}/main.log
echo "## - $_file. Set TransferLog.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*TransferLog ).*)$&## \1\n\2\\\"${APACHE_LOG_DIR}/access_log\\\"&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
echononl "\t$_file. Set TransferLog.."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*TransferLog ).*)$&## \1\n\2\"${APACHE_LOG_DIR}/access_log\"&g" \
${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
else
echo_failed
fi
echo "" >> ${_logdir}/main.log
echo "## - $_file: Set CustomLog.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
cat <<EOF >> ${_logdir}/main.log
sed -i$_backup_suffix -r \\
-e "s&^(([ ^t]*CustomLog ).*)$&## \1\n\2\"${APACHE_LOG_DIR}/ssl_request_log\" \\\\\&g" \\
${PREFIX}/${_rel_confextra_path}/${_file} > /dev/null 2>&1
EOF
echononl "\t$_file: Set CustomLog.."
sed -i$_backup_suffix -r \
-e "s&^(([ ^t]*CustomLog ).*)$&## \1\n\2\"${APACHE_LOG_DIR}/ssl_request_log\" \\\&g" \
${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
else
echo_failed
fi
else
warn "Cannot enable SSL. \"$_file\" not found."
fi
## - include conf files from conf/extra
## -
_file=httpd-default.conf
if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ];then
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Include $_file.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Include $_file.."
sed -i$_backup_suffix -r \
-e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \
$_httpdconf >> ${_logdir}/main.log 2>&1
if [ "0" = "$?" ];then
rm $_httpdconf$_backup_suffix
echo_ok
else
echo_failed
fi
fi
_file=httpd-info.conf
if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ];then
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Include $_file.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Include $_file.."
sed -i$_backup_suffix -r \
-e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \
$_httpdconf >> ${_logdir}/main.log 2>&1
if [ "0" = "$?" ];then
rm $_httpdconf$_backup_suffix
echo_ok
else
echo_failed
fi
_localhost="127.0.0.0/8"
[ "X" != "X$HTTPD_INFO_ADDRESSES" ] && _localhost="$_localhost $HTTPD_INFO_ADDRESSES"
echo "" >> ${_logdir}/main.log
echo "## - Setup \"$_file\" to allow urls \"server-status\"" >> ${_logdir}/main.log
echo "## - and \"server-info\" from localhost.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^([ ^t]*Require[ ^t]?ip).*$&\1 $_localhost&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
echo -e "\tSetup \"$_file\" to allow urls \"server-status\""
echo -n -e "\t and server-info from localhost.."
sed -i$_backup_suffix -r \
-e "s&^([ ^t]*Require[ ^t]?ip).*$&\1 $_localhost&g" \
${PREFIX}/${_rel_confextra_path}/${_file} > /dev/null 2>&1
if [ "0" = "$?" ];then
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
echo_ok
else
echo_failed
fi
## - Set ExtendedStatus On
## -
echo "" >> ${_logdir}/main.log
echo "## - Setup \"$_file\": set \"ExtendedStatus On\"" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&^([ ^t]*#*[ ^t]*ExtendedStatus[ ^t]?[Oo].+)$&#\1\nExtendedStatus On&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
echononl "\tSetup \"$_file\": set \"ExtendedStatus On\""
sed -i$_backup_suffix -r \
-e "s&^([ ^t]*#*[ ^t]*ExtendedStatus[ ^t]?[Oo].+)$&#\1\nExtendedStatus On&g" \
${PREFIX}/${_rel_confextra_path}/${_file} > /dev/null 2>&1
if [ "0" = "$?" ];then
rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix
echo_ok
else
echo_failed
fi
## - Uncomment "LoadModule" for needed additional modules..
## -
for module in mod_authz_core mod_authz_host mod_info mod_status ; do
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Uncomment LoadModule $module.."
sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Including \"LoadModule $module\" failed.."
fi
done
fi
_file=httpd-languages.conf
if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ];then
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Include $_file.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Include $_file.."
sed -i$_backup_suffix -r \
-e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \
$_httpdconf >> ${_logdir}/main.log 2>&1
if [ "0" = "$?" ];then
rm $_httpdconf$_backup_suffix
echo_ok
else
echo_failed
fi
## - Uncomment "LoadModule" for needed additional modules..
## -
for module in mod_mime mod_negotiation ; do
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Uncomment LoadModule $module.."
sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Including \"LoadModule $module\" failed.."
fi
done
## - Uncomment "LoadModule" for needed additional modules..
## -
## - New in version 2.4.23 (needed for proxy functionality)
## -
for module in mod_slotmem_shm ; do
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Uncomment LoadModule $module.."
sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Including \"LoadModule $module\" failed.."
fi
done
fi
_file=httpd-multilang-errordoc.conf
if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ];then
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Include $_file.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Include $_file.."
sed -i$_backup_suffix -r \
-e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \
$_httpdconf >> ${_logdir}/main.log 2>&1
if [ "0" = "$?" ];then
rm $_httpdconf$_backup_suffix
echo_ok
else
echo_failed
fi
## - Uncomment "LoadModule" for needed additional modules..
## -
for module in mod_alias mod_authz_core mod_authz_host mod_include mod_negotiation ; do
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Uncomment LoadModule $module.."
sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Including \"LoadModule $module\" failed.."
fi
done
## - Set "LanguagePriority"
_failed=false
echononl "\t${_file}: Set LanguagePriority"
echo "" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - ${_file}: Set LanguagePriority" >> ${_logdir}/main.log
echo "sed -i -r -e \"s/^(\s*)(LanguagePriority.*)de\ *(.*)$/\1\2\3/g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
sed -i -r -e "s/^(\s*)(LanguagePriority.*)de\ *(.*)$/\1\2\3/g" ${PREFIX}/${_rel_confextra_path}/${_file}
if [ "$?" != "0" ]; then
_failed=true
fi
echo "sed -i -r -e \"s/^(\s*)(LanguagePriority)(.*)$/\1\2 de\3/g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
sed -i -r -e "s/^(\s*)(LanguagePriority)(.*)$/\1\2 de\3/g" ${PREFIX}/${_rel_confextra_path}/${_file}
if [ "$?" != "0" ]; then
_failed=true
fi
if ! $_failed ; then
echo_ok
else
echo_failed
warn "Setting LanguagePriority in file \"${_file}\" failed.."
fi
fi
_file=httpd-mpm.conf
if [ -f ${PREFIX}/${_rel_confextra_path}/${_file} ];then
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Include $_file.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i$_backup_suffix -r -e \"s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Include $_file.."
sed -i$_backup_suffix -r \
-e "s&[ ^t]*#([ ^t]*#*[ ^t]*)*(Include $_rel_confextra_path/$_file).*$&\2&g" \
$_httpdconf >> ${_logdir}/main.log 2>&1
if [ "0" = "$?" ];then
rm $_httpdconf$_backup_suffix
echo_ok
else
echo_failed
warn "Including file \"${_file}\" failed.."
fi
## - Set MaxConnectionsPerChild
## -
echononl "\t${_file}: Set MaxConnectionsPerChild"
echo "" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - ${_file}: Set MaxConnectionsPerChild" >> ${_logdir}/main.log
_key="MaxConnectionsPerChild"
_val="5000"
echo "sed -i -r -e \"s/^(\s*)($_key)(.*)$/\1\2 $_val/g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log
sed -i -r -e "s/^(\s*)($_key)(.*)$/\1\2 $_val/g" ${PREFIX}/${_rel_confextra_path}/${_file}
if [ "$?" != "0" ]; then
_failed=true
fi
if ! $_failed ; then
echo_ok
else
echo_failed
warn "Setting MaxConnectionsPerChild in file \"${_file}\" failed.."
fi
fi
## - Enable Module mod_expires
## -
## - Uncomment "LoadModule" for mod_expires
module=mod_expires
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Uncomment LoadModule $module.."
sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Including \"LoadModule $module\" failed.."
fi
## - Enable Module xml2enc_module (needed for proxy_html_module
## -
## - Uncomment "LoadModule" for xml2enc_module
module=xml2enc_module
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Uncomment LoadModule $module.."
sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Including \"LoadModule $module\" failed.."
fi
## - Uncomment "LoadModule" for deflate_module dav_module dav_fs_module
## -
for module in deflate_module dav_module dav_fs_module ; do
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Uncomment LoadModule $module.."
sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Including \"LoadModule $module\" failed.."
fi
done
## - Uncomment "LoadModule" for http2_module
## -
module=http2_module
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Uncomment LoadModule $module.."
sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Including \"LoadModule $module\" failed.."
fi
## - Uncomment "LoadModule" for LDAP support
## -
for module in authnz_ldap_module ldap_module ; do
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log
echononl "\thttpd.conf: Uncomment LoadModule $module.."
sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Including \"LoadModule $module\" failed.."
fi
done
if $WITH_MOD_FCGID ; then
## - Install Apache Module mod_fcgid
## -
echo
echo
echo -e "\t---"
echo -e "\t--- Install mod_fcgid $MOD_FCGID_VERSION --"
echo -e "\t---"
echo
echo "" >> ${_logdir}/main.log
echo "cd $_srcdir" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
cd $_srcdir
echononl "\tGet source mod_fcgid-${MOD_FCGID_VERSION}.tar.gz.."
if [ ! -f mod_fcgid-${MOD_FCGID_VERSION}.tar.gz ]; then
echo "" >> ${_logdir}/main.log
echo "## - Get source mod_fcgid-${MOD_FCGID_VERSION}.tar.gz.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "wget ftp://ftp.fu-berlin.de/unix/www/apache/httpd/mod_fcgid/mod_fcgid-${MOD_FCGID_VERSION}.tar.gz" >> ${_logdir}/main.log
wget ftp://ftp.fu-berlin.de/unix/www/apache/httpd/mod_fcgid/mod_fcgid-${MOD_FCGID_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot Download mod_fcgid-${MOD_FCGID_VERSION}"
fi
else
echo_skipped
fi
echononl "\tMove (backup) existing source directory ..."
if [ -d "$_builddir_fcgid" ];then
echo "" >> ${_logdir}/main.log
echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "mv $_builddir_fcgid $_builddir_fcgid.${_backup_date}" >> ${_logdir}/main.log
mv $_builddir_fcgid $_builddir_fcgid.${_backup_date} >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot move (backup) source directory \"${_builddir_fcgid}\" .."
fi
else
echo_skipped
fi
if [ -d "${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}" ]; then
echo "" >> ${_logdir}/main.log
echo "## - Backup directory ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
echononl "\tBackup directory ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.."
mv ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION} ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.${_backup_date}
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot move (backup) source directory \"${_builddir_fcgid}\" .."
fi
fi
## - Unpack mod_fcgid
## -
echo "" >> ${_logdir}/main.log
echo "## - Unpack mod_fcgid-${MOD_FCGID_VERSION}.tar.gz.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "gunzip < ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.tar.gz | tar -xpf -" >> ${_logdir}/main.log
echononl "\tUnpack mod_fcgid-${MOD_FCGID_VERSION}.tar.gz.."
gunzip < ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.tar.gz | tar -xpf - >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot unpack mod_fcgid-${MOD_FCGID_VERSION}.tar.gz"
fi
echo "" >> ${_logdir}/main.log
echo "chown -R root.root mod_fcgid-${MOD_FCGID_VERSION}" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
chown -R root.root mod_fcgid-${MOD_FCGID_VERSION} || fatal "Changing permissions of \"mod_fcgid-${MOD_FCGID_VERSION}\" failed"
echo "" >> ${_logdir}/main.log
echo "## - Rename mod_fcgid-${MOD_FCGID_VERSION} to `basename $_builddir_fcgid` .." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "mv mod_fcgid-${MOD_FCGID_VERSION} $_builddir_fcgid" >> ${_logdir}/main.log
echononl "\tRename mod_fcgid-${MOD_FCGID_VERSION} to `basename $_builddir_fcgid` .."
mv mod_fcgid-${MOD_FCGID_VERSION} $_builddir_fcgid
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot rename mod_fcgid-${MOD_FCGID_VERSION} to $_builddir_fcgid"
fi
echo "" >> ${_logdir}/main.log
echo "cd $_builddir_fcgid" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
cd $_builddir_fcgid || fatal "Changing Directory (cd) to \"${_builddir_fcgid}\" failed"
## - Build and install mod_fcgid
## -
[ -f "$APXS" ] || fatal "Cannot find \"$APXS\""
echo "" >> ${_logdir}/main.log
echo "## - Configure (configure.apxs) mod_fcgid.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/mod_fcgid-configure.apxs.log" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "APXS=$APXS ./configure.apxs > ${_logdir}/mod_fcgid-configure.apxs.log 2>&1" >> ${_logdir}/main.log
echononl "\tConfigure (configure.apxs) mod_fcgid .."
APXS=$APXS ./configure.apxs > ${_logdir}/mod_fcgid-configure.apxs.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot configure (configure.apxs) mod_fcgid. See ${_logdir}/mod_fcgid-configure.apxs.log"
fi
echo "" >> ${_logdir}/main.log
echo "## - Build (make) mod_fcgid.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/mod_fcgid-make.log" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "make > ${_logdir}/mod_fcgid-make.log 2>&1" >> ${_logdir}/main.log
echononl "\tBuild (make) mod_fcgid.."
make > ${_logdir}/mod_fcgid-make.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot build (make) mod_fcgid. See ${_logdir}/mod_fcgid-make.log."
fi
echo "" >> ${_logdir}/main.log
echo "## - Install (make install) mod_fcgid .." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/mod_fcgid-make_install.log" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "make install > ${_logdir}/mod_fcgid-make_install.log 2>&1" >> ${_logdir}/main.log
echononl "\tInstall (make install) mod_fcgid .."
make install > ${_logdir}/mod_fcgid-make_install.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot install (make install) mod_fcgid. See ${_logdir}/mod_fcgid-make_install.log"
fi
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Adjust mod_fcgid module.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
cat <<EOF >> ${_logdir}/main.log
perl -i.bak -n -p -e "s#^(\s*LoadModule\s+fcgid_module.+)#\1\n<IfModule mod_fcgid.c>\n\n \# in Abstimmung mit PHP variablen\n \# upload_max_filesize = 128M\n \# post_max_size = 512M\n FcgidMaxRequestLen 536870912\n\n \# By default, PHP FastCGI processes exit after handling 500 requests,\n \# and they may exit after this module has already connected to the\n \# application and sent the next request. When that occurs, an error\n \# will be logged and 500 Internal Server Error will be returned to\n \# the client. This PHP behavior can be disabled by setting\n \# PHP_FCGI_MAX_REQUESTS to 0, but that can be a problem if the PHP\n \# application leaks resources. Alternatively, PHP_FCGI_MAX_REQUESTS\n \# can be set to a much higher value than the default to reduce the\n \# frequency of this problem. FcgidMaxRequestsPerProcess can be set to\n \# a value less than or equal to PHP_FCGI_MAX_REQUESTS to resolve the\n \# roblem.\n FcgidMaxRequestsPerProcess 500\n\n \# in Abstimmung mit PHP Variablen\n \# max_execution_time = 180\n \#\n \# Default: 40\n \#\n \#FcgidIOTimeout 181\n FcgidIOTimeout 600\n FcgidIdleTimeout 600\n FcgidProcessLifeTime 600\n FcgidConnectTimeout 600\n\n</IfModule>#" \$_httpdconf
EOF
echononl "\thttpd.conf: Adjust mod_fcgid module.."
perl -i.bak -n -p -e "s#^(\s*LoadModule\s+fcgid_module.+)#\1\n<IfModule mod_fcgid.c>\n\n \# in Abstimmung mit PHP variablen\n \# upload_max_filesize = 128M\n \# post_max_size = 512M\n FcgidMaxRequestLen 536870912\n\n \# By default, PHP FastCGI processes exit after handling 500 requests,\n \# and they may exit after this module has already connected to the\n \# application and sent the next request. When that occurs, an error\n \# will be logged and 500 Internal Server Error will be returned to\n \# the client. This PHP behavior can be disabled by setting\n \# PHP_FCGI_MAX_REQUESTS to 0, but that can be a problem if the PHP\n \# application leaks resources. Alternatively, PHP_FCGI_MAX_REQUESTS\n \# can be set to a much higher value than the default to reduce the\n \# frequency of this problem. FcgidMaxRequestsPerProcess can be set to\n \# a value less than or equal to PHP_FCGI_MAX_REQUESTS to resolve the\n \# roblem.\n FcgidMaxRequestsPerProcess 500\n\n \# in Abstimmung mit PHP Variablen\n \# max_execution_time = 180\n \#\n \# Default: 40\n \#\n \#FcgidIOTimeout 181\n FcgidIOTimeout 600\n FcgidIdleTimeout 600\n FcgidProcessLifeTime 600\n FcgidConnectTimeout 600\n\n</IfModule>#" $_httpdconf
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Adjusting mod_fcgid (file: /usr/local/apache2/conf/httpd.conf) failed"
fi
fi
if $WITH_MOD_PERL ; then
## - Install Apache Module mod_perl
## -
echo
echo
echo -e "\t---"
echo -e "\t--- Install mod_perl $MOD_PERL_VERSION --"
echo -e "\t---"
echo
echo "" >> ${_logdir}/main.log
echo "cd $_srcdir" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
cd $_srcdir
echononl "\tGet source mod_perl-${MOD_PERL_VERSION}.tar.gz.."
if [ ! -f mod_perl-${MOD_PERL_VERSION}.tar.gz ]; then
echo "" >> ${_logdir}/main.log
echo "## - Get source mod_perl-${MOD_PERL_VERSION}.tar.gz.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "wget https://www.apache.org/dist/perl/mod_perl-${MOD_PERL_VERSION}.tar.gz" >> ${_logdir}/main.log
wget https://www.apache.org/dist/perl/mod_perl-${MOD_PERL_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot Download mod_perl-${MOD_PERL_VERSION}"
fi
else
echo_skipped
fi
echononl "\tMove (backup) existing source directory ..."
if [ -d "$_builddir_perl" ];then
echo "" >> ${_logdir}/main.log
echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "mv $_builddir_perl $_builddir_perl.${_backup_date}" >> ${_logdir}/main.log
mv $_builddir_perl $_builddir_perl.${_backup_date} >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot move (backup) source directory \"${_builddir_perl}\" .."
fi
else
echo_skipped
fi
if [ -d "${_srcdir}/mod_perl-${MOD_PERL_VERSION}" ]; then
echo "" >> ${_logdir}/main.log
echo "## - Backup directory ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
echononl "\tBackup directory ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.."
mv ${_srcdir}/mod_perl-${MOD_PERL_VERSION} ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.${_backup_date}
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot move (backup) source directory \"${_builddir_perl}\" .."
fi
fi
## - Unpack mod_perl
## -
echo "" >> ${_logdir}/main.log
echo "## - Unpack mod_perl-${MOD_PERL_VERSION}.tar.gz.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "gunzip < ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.tar.gz | tar -xpf -" >> ${_logdir}/main.log
echononl "\tUnpack mod_perl-${MOD_PERL_VERSION}.tar.gz.."
gunzip < ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.tar.gz | tar -xpf - >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot unpack mod_perl-${MOD_PERL_VERSION}.tar.gz"
fi
echo "" >> ${_logdir}/main.log
echo "chown -R root.root mod_perl-${MOD_PERL_VERSION}" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
chown -R root.root mod_perl-${MOD_PERL_VERSION} || fatal "Changing permissions of \"mod_perl-${MOD_PERL_VERSION}\" failed"
echo "" >> ${_logdir}/main.log
echo "## - Rename mod_perl-${MOD_PERL_VERSION} to `basename $_builddir_perl` .." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "mv mod_perl-${MOD_PERL_VERSION} $_builddir_perl" >> ${_logdir}/main.log
echononl "\tRename mod_perl-${MOD_PERL_VERSION} to `basename $_builddir_perl` .."
mv mod_perl-${MOD_PERL_VERSION} $_builddir_perl
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot rename mod_perl-${MOD_PERL_VERSION} to $_builddir_perl"
fi
echo "" >> ${_logdir}/main.log
echo "cd $_builddir_perl" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
cd $_builddir_perl || fatal "Changing Directory (cd) to \"${_builddir_perl}\" failed"
## - Build and install mod_perl
## -
[ -f "$APXS" ] || fatal "Cannot find \"$APXS\""
echo "" >> ${_logdir}/main.log
echo "## - Configure mod_perl.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/mod_perl-configure.log" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "perl Makefile.PL MP_AP_PREFIX=$PREFIX > ${_logdir}/mod_perl-configure.log 2>&1" >> ${_logdir}/main.log
echononl "\tConfigure mod_perl .."
perl Makefile.PL MP_AP_PREFIX=$PREFIX > ${_logdir}/mod_perl-make.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot configure (configure.apxs) mod_perl. See ${_logdir}/mod_perl-configure.apxs.log"
fi
echo "" >> ${_logdir}/main.log
echo "## - Build (make) mod_perl.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/mod_perl-make.log" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "make > ${_logdir}/mod_perl-make.log 2>&1" >> ${_logdir}/main.log
echononl "\tBuild (make) mod_perl.."
make > ${_logdir}/mod_perl-make.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot build (make) mod_perl. See ${_logdir}/mod_perl-make.log."
fi
echo "" >> ${_logdir}/main.log
echo "## - Install (make install) mod_perl .." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - See ${_logdir}/mod_perl-make_install.log" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "make install > ${_logdir}/mod_perl-make_install.log 2>&1" >> ${_logdir}/main.log
echononl "\tInstall (make install) mod_perl .."
make install > ${_logdir}/mod_perl-make_install.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Cannot install (make install) mod_perl. See ${_logdir}/mod_perl-make_install.log"
fi
echo "" >> ${_logdir}/main.log
echo "## - httpd.conf: Load perl module.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
cat <<EOF >> ${_logdir}/main.log
## - Linenumber last occurrence of "LoadModule .."
_lineNumber=`perl -ne '{$n=$. if /^LoadModule/} END {print "$n\n"}' $_httpdconf`
sed -i "$_lineNumber s/^\(\s*LoadModule\s.*$\)/LoadModule perl_module modules\/mod_perl.so\n\1/g" $_httpdconf
EOF
echononl "\thttpd.conf: Load perl module.."
## - Linenumber of last occurrence of "LoadModule .." line
_lineNumber=`perl -ne '{$n=$. if /^LoadModule/} END {print "$n\n"}' $_httpdconf`
#sed -i "$_lineNumber s/^\(\s*LoadModule\s.*$\)/LoadModule perl_module modules\/mod_perl.so\n\1/g" $_httpdconf >> ${_logdir}/main.log 2>&1
perl -pi -e "s/^(\s*LoadModule\s.*$)/LoadModule perl_module modules\/mod_perl.so\n\1/ if $. == $_lineNumber" $_httpdconf >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fatal "Loading perl module (file: /usr/local/apache2/conf/httpd.conf) failed"
fi
fi
## - Some final tasks
## -
echo
echo
echo -e "\t---"
echo -e "\t--- Some final tasks --"
echo -e "\t---"
echo
if $SYMLINK_INSTALL_DIR ; then
echononl "\tRemove Symlink /usr/local/apache2.."
if [[ -h "/usr/local/apache2" ]]; then
echo "" >> ${_logdir}/main.log
echo "## - Remove Symlink /usr/local/apache2" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "rm -f /usr/local/apache2" >> ${_logdir}/main.log
rm -f /usr/local/apache2 >> ${_logdir}/main.log
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Removing symlink /usr/local/apache2 failed"
fi
else
echo_skipped
fi
echo "" >> ${_logdir}/main.log
echo "## - Set Symlink /usr/local/apache2.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "ln -s `basename $PREFIX` /usr/local/apache2" >> ${_logdir}/main.log
echononl "\tSet Symlink /usr/local/apache2.."
ln -s `basename $PREFIX` /usr/local/apache2 >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Setting symlink /usr/local/apache2 failed"
fi
fi
if $INIT_SCRIPT_SUPPORTED ; then
## - Priovide LSB - Add Block for run-time dependencies to apachectl
## -
_backup_apachectl=`mktemp`
_failed=false
echo "" >> ${_logdir}/main.log
echo "## - Priovide LSB - Add Block for run-time dependencies to apachectl.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echononl "\tAdd Block for run-time dependencies to 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
### BEGIN INIT INFO
# Provides: apache2
# Required-Start: \\\$local_fs \\\$remote_fs \\\$network \\\$syslog \\\$named
# Required-Stop: \\\$local_fs \\\$remote_fs \\\$network \\\$syslog \\\$named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Start/stop apache2 web server
### END INIT INFO
EOF" >> ${_logdir}/main.log
cat << EOF >$PREFIX/bin/apachectl
#!/bin/sh
### BEGIN INIT INFO
# Provides: apache2
# Required-Start: \$local_fs \$remote_fs \$network \$syslog \$named
# Required-Stop: \$local_fs \$remote_fs \$network \$syslog \$named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Start/stop apache2 web server
### END INIT INFO
EOF
if [ "$?" != "0" ]; then
_failed=true
fi
echo "tail -n +2 "$_backup_apachectl" >> $PREFIX/bin/apachectl" >> ${_logdir}/main.log
tail -n +2 "$_backup_apachectl" >> $PREFIX/bin/apachectl
if [ "$?" != "0" ]; then
_failed=true
fi
echo "rm $_backup_apachectl" >> ${_logdir}/main.log
rm $_backup_apachectl >> ${_logdir}/main.log 2>&1
if [ "$?" != "0" ]; then
_failed=true
fi
if $_failed ; then
echo_failed
else
echo_ok
fi
fi # if $INIT_SCRIPT_SUPPORTED ; then
## - Set status url
echo "" >> ${_logdir}/main.log
echo "## - apachectl: Set STATUSURL=\"$STATUS_URL\".." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "perl -i -n -p -e \"s#^(\s*STATUSURL=.*)#STATUSURL=\\\"$STATUS_URL\\\"#\" $PREFIX/bin/apachectl" > /dev/null 2<&1
echononl "\tapachectl: Set STATUSURL=\"$STATUS_URL\".."
perl -i -n -p -e "s#^(\s*STATUSURL=.*)#STATUSURL=\"$STATUS_URL\"#" $PREFIX/bin/apachectl > /dev/null 2<&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Setting STATUSURL in script apachectl failed!"
fi
if $INIT_SCRIPT_SUPPORTED ; then
echo "" >> ${_logdir}/main.log
echo "## - Set Symlink /etc/init.d/apache2.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
#echo "ln -s $PREFIX/bin/apachectl /etc/init.d/apache2" >> ${_logdir}/main.log
echo "ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache2" >> ${_logdir}/main.log
echononl "\tSet Symlink /etc/init.d/apache2.."
ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache2 >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Setting symlink /usr/local/apache2 failed."
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
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=false
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=false
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 ""
if $START_AT_BOOTTIME ; then
echononl "\tReload systemd.."
if $SYSTEMD_SUPPORTED ; then
systemctl daemon-reload > /dev/null 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Reloading systemd.. failed!"
fi
else
echo_skipped
fi
## - Make apache start at boottime
## -
echo "" >> ${_logdir}/main.log
echononl "\tMake apache start at boottime"
echo "## - Make apache start at boottime" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
if $SYSTEMD_SUPPORTED ; then
echo "systemctl enable apache2" >> ${_logdir}/main.log
systemctl enable apache2 >> ${_logdir}/main.log 2>&1
else
echo "update-rc.d apache2 defaults" >> ${_logdir}/main.log
update-rc.d apache2 defaults >> ${_logdir}/main.log 2>&1
fi
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Making apache2 start at boottime failed."
fi
fi
echo ""
## - special for debian. set manpath entries
## -
if [ -f /etc/manpath.config ];then
echo "" >> ${_logdir}/main.log
echo "## - Set manpath entries in /etc/manpath.config" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echononl "\tSet manpath entries in /etc/manpath.config"
if ! grep /usr/local/apache2/man /etc/manpath.config > /dev/null 2<&1 ; then
echo "echo >> /etc/manpath.config" >> ${_logdir}/main.log
echo "echo \"MANDATORY_MANPATH /usr/local/apache2/man /var/cache/man\" >> /etc/manpath.config" >> ${_logdir}/main.log
echo "echo \"MANPATH_MAP /usr/local/apache2/bin /usr/local/apache2/man\" >> /etc/manpath.config" >> ${_logdir}/main.log
echo "echo \"MANDB_MAP /usr/local/apache2/man /var/cache/man\" >> /etc/manpath.config" >> ${_logdir}/main.log
echo >> /etc/manpath.config
echo "MANDATORY_MANPATH /usr/local/apache2/man /var/cache/man" >> /etc/manpath.config
echo "MANPATH_MAP /usr/local/apache2/bin /usr/local/apache2/man" >> /etc/manpath.config
echo "MANDB_MAP /usr/local/apache2/man /var/cache/man" >> /etc/manpath.config
echo_ok
else
echo_skipped
fi
elif [ -f /etc/man.conf];then
echo "" >> ${_logdir}/main.log
echo "## - Set manpath entries in /etc/man.conf" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echononl "\tSet manpath entries in /etc/man.conf"
if ! grep /opt/apache2/man /etc/man.conf > /dev/null 2<&1 ; then
echo >> /etc/man.conf
echo "MANPATH /opt/apache2/man /var/cache/man" >> /etc/man.conf
echo "MANPATH_MAP /opt/apache2/bin /opt/apache2/man" >> /etc/man.conf
echo_ok
else
echo_skipped
fi
fi
## - Add /usr/local/apache/bin to the systems PATH variable
## -
_checkdir=`dirname $PREFIX`/apache2/bin
if [ -f /etc/profile ]; then
echo "" >> ${_logdir}/main.log
echo "## - Add /usr/local/apache/bin to the systems PATH variable.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echononl "\tAdd /usr/local/apache/bin to the systems PATH variable.."
if ! grep -e "$_checkdir" /etc/profile > /dev/null 2<&1 ; then
echo "perl -i -n -p -e \"s#^([ ]*export[ ]*PATH.*$)#check_dir=$_checkdir\nif [ -d \\\"\\\\\$check_dir\\\" ];then\n PATH=\\\\\${check_dir}:\\\\\$PATH\nfi\n\n\1#\" /etc/profile > /dev/null 2<&1" >> ${_logdir}/main.log
perl -i -n -p -e "s#^([ ]*export[ ]*PATH.*$)#check_dir=$_checkdir\nif [ -d \"\\\$check_dir\" ];then\n PATH=\\\${check_dir}:\\\$PATH\nfi\n\n\1#" /etc/profile > /dev/null 2<&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Adding /usr/local/apache/bin to the systems PATH variable failed."
fi
else
echo_skipped
fi
fi
## - Add default vhost configuration file 000-default.conf
## -
echo "" >> ${_logdir}/main.log
echo "## - Add default vhost configuration file 000-default.conf.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo ""
echononl "\tAdd default vhost configuration file 000-default.conf.."
cat <<EOF > ${PREFIX}/conf/vhosts/000-default.conf
## - initial konfiguration -- ##
## - ipv4: $IPv4_FIRST
EOF
if [ -n "$IPv6_FIRST" ];then
cat <<EOF >> ${PREFIX}/conf/vhosts/000-default.conf
## - ipv6: $IPv6_FIRST
EOF
fi
cat <<EOF >> ${PREFIX}/conf/vhosts/000-default.conf
SSLCompression off
SSLStrictSNIVHostCheck off
DirectoryIndex index.html index.htm index.php index.php5
<Directory "${BASE_WEBSPACE_DIR}">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
## - 127.0.0.1 (used by apachectl status) -- #
<VirtualHost 127.0.0.1:80>
ServerName localhost.localdomain
ServerAlias localhost
DocumentRoot "$GLOBAL_DOC_ROOT"
EOF
if [[ ${#_php_socket_arr[@]} -gt 0 ]] ; then
cat <<EOF >> ${PREFIX}/conf/vhosts/000-default.conf
## - Make PHP-FPM status page and PHP-FPM ping available
## -
EOF
for _val in ${_php_socket_arr[@]} ; do
IFS=':' read -a _val_arr <<< "${_val}"
cat <<EOF >> ${PREFIX}/conf/vhosts/000-default.conf
<FilesMatch "^(status-${_val_arr[0]}|ping-${_val_arr[0]})">
SetHandler "proxy:unix:${_val_arr[1]}|fcgi://127.0.0.1"
</FilesMatch>
EOF
done
else
cat <<EOF >> ${PREFIX}/conf/vhosts/000-default.conf
## - Make PHP-FPM status page and PHP-FPM ping available
## -
#<FilesMatch "^(status-<PHP-FPM-VERSION>|ping-<PHP-FPM-VERSION>)$">
# SetHandler "proxy:unix:<PHP-FPM-SOCKET>|fcgi://127.0.0.1"
#</FilesMatch>
EOF
fi
cat <<EOF >> ${PREFIX}/conf/vhosts/000-default.conf
CustomLog /var/log/apache2/localhost.log combined
ErrorLog /var/log/apache2/localhost.error
</VirtualHost>
EOF
_default_ipv4=false
_default_ipv6=false
if [[ -n "${IPv4_FIRST}" ]]; then
_default_ipv4=true
fi
if [[ -n "${IPv6_FIRST}" ]]; then
_default_ipv6=true
fi
_vhost_default_80="<VirtualHost"
_vhost_default_443="<VirtualHost"
#if $_default_ipv4 && $_default_ipv6 ; then
# for _ipv4 in $IPv4_ADDRESSESa; do
# _vhost_default_80="$_vhost_default_80 $IPv4_ADDRESSES:80"
# _vhost_default_443="$_vhost_default_443 $IPv4_ADDRESSES:443"
# done
# for _ipv6 in $IPv6_ADDRESSES ; do
# _vhost_default_80="$_vhost_default_80 [${_ipv6}]:80"
# _vhost_default_443="$_vhost_default_80 [${_ipv6}]:443"
# done
#elif $_default_ipv4 ; then
# for _ipv4 in $IPv4_ADDRESSESa; do
# _vhost_default_80="$_vhost_default_80 $IPv4_ADDRESSES:80"
# _vhost_default_443="$_vhost_default_443 $IPv4_ADDRESSES:443"
# done
#elif $_default_ipv6 ; then
# for _ipv6 in $IPv6_ADDRESSES ; do
# _vhost_default_80="$_vhost_default_80 [${_ipv6}]:80"
# _vhost_default_443="$_vhost_default_443 [${_ipv6}]:443"
# done
#fi
if $_default_ipv4 ; then
for _ipv4 in $IPv4_ADDRESSES; do
[[ "$_ipv4" = "127.0.0.1" ]] && continue
_vhost_default_80="$_vhost_default_80 $_ipv4:80"
_vhost_default_443="$_vhost_default_443 $_ipv4:443"
done
fi
if $_default_ipv6 ; then
for _ipv6 in $IPv6_ADDRESSES ; do
_vhost_default_80="$_vhost_default_80 [${_ipv6}]:80"
_vhost_default_443="$_vhost_default_443 [${_ipv6}]:443"
done
fi
_vhost_default_80="$_vhost_default_80>"
_vhost_default_443="$_vhost_default_443>"
if $_default_ipv4 || $_default_ipv6 ; then
cat <<EOF >> ${PREFIX}/conf/vhosts/000-default.conf
$_vhost_default_80
ServerName dummy.${_DOMAIN}.$_TLD
RewriteEngine On
RewriteCond %{HTTP_HOST} ^autoconfig\. [NC]
RewriteRule ^/(.*) http://autoconfig.${_DOMAIN}.${_TLD}/\$1 [L,R=301,NE]
#RewriteCond %{HTTP_HOST} !^autoconfig\. [NC]
#RewriteRule ^/(.*) http://www.${_DOMAIN}.${_TLD} [L,R=301,NE]
DocumentRoot "$GLOBAL_DOC_ROOT"
CustomLog /var/log/apache2/dummy.${_DOMAIN}.${_TLD}.log combined
ErrorLog /var/log/apache2/dummy.${_DOMAIN}.${_TLD}.error
</VirtualHost>
$_vhost_default_443
ServerName dummy.${_DOMAIN}.$_TLD
DocumentRoot "$GLOBAL_DOC_ROOT"
SSLEngine on
## - don't support weak ciphers
SSLHonorCipherOrder On
SSLCompression Off
SSLProtocol ALL -SSLv2 -SSLv3
SSLCertificateFile /usr/local/apache2/conf/server-bundle.crt
SSLCertificateKeyFile /usr/local/apache2/conf/server.key
CustomLog /var/log/apache2/dummy.${_DOMAIN}.${_TLD}.log combined
ErrorLog /var/log/apache2/dummy.${_DOMAIN}.${_TLD}.error
</VirtualHost>
EOF
fi
if [ -d "${PREFIX}/conf/vhosts/0" ] ; then
echo "" >> ${PREFIX}/conf/vhosts/000-default.conf
echo "Include conf/vhosts/0/*.conf" >> ${PREFIX}/conf/vhosts/000-default.conf
fi
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Adding vhost configfile 0000-default.conf failed."
fi
## - Add configuration for custom log format file: 000-logformat.conf
## -
echo "## - Add configuration for custom log format file: 000-logformat.conf.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo ""
echononl "\tAdd configuration for custom log format file: 000-logformat.conf.."
cat << EOF > ${PREFIX}/conf/vhosts/000-logformat.conf
## - %a remote IP-address
## - %v ServerName of requested site
## - %{%T %Y-%m-%d}t date time - custom
## - %t date time - apache default
## - %{User-Agent}i user agent
## - %U requested URL
## - %r First line of request.
## - %>s real status code
## - \$T The time taken to serve the request, in seconds
## -
LogFormat "%a %v %p %t %r %>s \"%{User-Agent}i\" %T" base_requests
EOF
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Adding config file 000-logformat.conf failed."
fi
echo "" >> ${_logdir}/main.log
echo "## - Create directory ${GLOBAL_DOC_ROOT}.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "mkdir -p ${GLOBAL_DOC_ROOT}" >> ${_logdir}/main.log
echononl "\tCreate ${GLOBAL_DOC_ROOT}.."
mkdir -p $GLOBAL_DOC_ROOT >> ${_logdir}/main.log 2>&1
if [ "0" = $? ]; then
echo_ok
else
echo_failed
fi
## - Create ${GLOBAL_DOC_ROOT}/index.html (Error 404 page)
## -
echo "" >> ${_logdir}/main.log
echo "## - Create ${GLOBAL_DOC_ROOT}/index.html (Error 404 page).." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo ""
echononl "\tCreate ${GLOBAL_DOC_ROOT}/index.html (Error 404 page).."
echo "cat << EOF > ${GLOBAL_DOC_ROOT}/index.html" >> ${_logdir}/main.log
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HTTP Error 404 / Http Fehler 404</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
body {
background: #eee;
font: normal normal 16px/140% Arial, Helvetica, Trebuchet MS, Geneva, sans-serif;
word-wrap: break-word;
}
h1 {
font-size: 30px;
font-weight: bold;
line-height: 100%;
}
h2 {
font-size: 18px;
font-weight: bold;
line-height: 100%;
}
.Container {
background: #fff;
width: 825px;
}
.Content {
background: #fff;
font-size: 12px;
height: 400px;
line-height: 16px;
padding: 10px 20px;
}
</style>
<link rel="shortcut icon" href="/favicon.ico" />
</head>
<body>
<div class="Container">
<div class="Logo"></div>
<div class="Content">
<h1>HTTP Error 404</h1>
<h2>The site you have requested was not found on this Server</h2>
<p>Please check your spelling and try again.</p>
<p>Thank You very much!</p>
<h1>HTTP Fehler 404</h1>
<h2>Die von Ihnen aufgerufene Seite gibt es leider nicht - Sorry</h2>
<p>Bitte pr&uuml;fen Sie die Adresse und versuchen es nochmals.</p>
<p>Vielen Dank f&uuml;r Ihr Verst&auml;ndnis!</p>
</div><!-- .Content -->
</div><!-- .Container -->
</body>
</html>
EOF
' >> ${_logdir}/main.log
cat << EOF > ${GLOBAL_DOC_ROOT}/index.html
<!doctype html>
<html>
<head>
<title>HTTP Error 404 / Http Fehler 404</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
body {
background: #eee;
font: normal normal 16px/140% Arial, Helvetica, Trebuchet MS, Geneva, sans-serif;
word-wrap: break-word;
}
h1 {
font-size: 30px;
font-weight: bold;
line-height: 100%;
}
h2 {
font-size: 18px;
font-weight: bold;
line-height: 100%;
}
.Container {
background: #fff;
width: 825px;
}
.Content {
background: #fff;
font-size: 12px;
height: 400px;
line-height: 16px;
padding: 10px 20px;
}
</style>
<link rel="shortcut icon" href="/favicon.ico" />
</head>
<body>
<div class="Container">
<div class="Logo"></div>
<div class="Content">
<h1>HTTP Error 404</h1>
<h2>The site you have requestet was not found on this Server</h2>
<p>Please check your spelling and try again.</p>
<p>Thank You very much!</p>
<h1>HTTP Fehler 404</h1>
<h2>Die von Ihnen aufgerufene Seite gibt es leider nicht - Sorry</h2>
<p>Bitte pr&uuml;fen Sie die Adresse und versuchen es nochmals.</p>
<p>Vielen Dank f&uuml;r Ihr Verst&auml;ndnis!</p>
</div><!-- .Content -->
</div><!-- .Container -->
</body>
</html>
EOF
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Creating ${GLOBAL_DOC_ROOT}/index.html (Error 404 page) failed."
fi
echo "" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "## - Configure logrotation.." >> ${_logdir}/main.log
echononl "\tConfigure logrotation...."
if [ ! -f "/etc/logrotate.d/apache2" ]; then
cat <<EOF > /etc/logrotate.d/apache2
/var/log/apache2/*log
/var/log/apache2/*error
/var/www/*/logs/*log
/var/www/*/logs/*error {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 644 root adm
sharedscripts
postrotate
if ls /var/www/*/logs/php_errors.log > /dev/null 2>&1 ; then
chown ${HTTPD_USER}:${HTTPD_GROUP} /var/www/*/logs/php_errors.log
fi
if [ -f "/var/log/apache2/php_errors.log" ] ; then
chown ${HTTPD_USER}:${HTTPD_GROUP} /var/log/apache2/php_errors.log
fi
if [ -x "/usr/local/apache2/bin/apachectl" ]; then
APACHECTL="/usr/local/apache2/bin/apachectl"
else
APACHECTL="\$(which apachectl)"
fi
if [ -z "\$APACHECTL" ] ; then
if [ -f "/etc/init.d/apache2" ]; then
/etc/init.d/apache2 reload > /dev/null
else
echo "Reloading apache service failed!"
fi
else
\$APACHECTL graceful > /dev/null
fi
endscript
}
EOF
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fi
else
echo_skipped
fi
# - Try to restote vhost configuration from (current) installation
# -
echononl "\tTry to restore vhost configurations from current installation.."
if [[ -n "$_httpd_current_version" ]]; then
_failed=false
_done=false
echo "" >> ${_logdir}/main.log
echo "## - Try to restore vhost configurations from (current) installation.." >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
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-default ]]; 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
else
echo_skipped
fi # if [[ -n "$_httpd_current_version" ]]
# ---
# - Start apache webservice
# ---
echo "" >> ${_logdir}/main.log
echo "" >> ${_logdir}/main.log
echo "## - Start Apache Webserver" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo ""
echononl "\tStarting Apache Webserver.."
if $SYSTEMD_SUPPORTED ; then
echo "systemctl start apache2" >> ${_logdir}/main.log
systemctl start apache2 >> ${_logdir}/main.log 2>&1
else
echo "/etc/init.d/apache2 start" >> ${_logdir}/main.log
/etc/init.d/apache2 start >> ${_logdir}/main.log 2>&1
fi
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
warn "Starting Apache Webservice failed!."
fi
# ---
# - Reenable crontab for user root
# ---
echo
echononl "\tReenable crontab for user root .."
echo "" >> ${_logdir}/main.log
echo "Reenable crontab for user root" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "crontab -u root $_CRONTAB_BAKUP_FILE" >> ${_logdir}/main.log
crontab -u root $_CRONTAB_BAKUP_FILE >> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fi
echononl "\tRemove crontab backup file .."
echo "" >> ${_logdir}/main.log
echo "## - Remove crontab backup file" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "rm $_CRONTAB_BAKUP_FILE" >> ${_logdir}/main.log
rm -f $_CRONTAB_BAKUP_FILE
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
fi
## -----
## - Rename /etc/mysql/my.cnf if MySQL is not installed from debian package system
## -----
if [[ -d "/usr/local/mysql" ]]; then
if [[ -f "/etc/mysql/my.cnf" ]] && [[ ! -h "/etc/mysql/my.cnf" ]]; then
echononl "\tRename '/etc/mysql/my.cnf' to '/etc/mysql/my.cnf.DEBIAN' .."
echo "" >> ${_logdir}/main.log
echo "## - Rename '/etc/mysql/my.cnf' to '/etc/mysql/my.cnf.DEBIAN'" >> ${_logdir}/main.log
echo "## -" >> ${_logdir}/main.log
echo "mv \"/etc/mysql/my.cnf\" \"/etc/mysql/my.cnf.DEBIAN\"" >> ${_logdir}/main.log
mv "/etc/mysql/my.cnf" "/etc/mysql/my.cnf.DEBIAN" > ${_logdir}/main.log 2>&1
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
fi
fi
fi
cd $pwd
echo
exit 0