#!/usr/bin/env bash # httpd Apapche Webserver # ## - CHANGE PARAMETER TO PASS YOUR SITUATION-------- ## - _VSERVER_GUEST=no _APACHE_VERSION=2.4.25 _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 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 ## - __ipv4="`ifconfig | grep -e \"^\s*inet Adresse\" | grep -v \"127.0.0.1\" | awk '{print$2}' | cut -d\":\" -f2 | sort`" for _ip in $__ipv4 ; do _ipv4="$_ipv4 $_ip" done ## - Trim leading whitespaces ## - shopt -s extglob _ipv4="${_ipv4##*( )}" shopt -u extglob __ipv6="`ifconfig | grep -e \"^\s*inet6-Adresse\" | awk '{print$2}' | grep -v -e \"^::1/\" | grep -v -e \"^fe80\" | cut -d\"/\" -f1 | sort`" for _ip in $__ipv6 ; do _ipv6="$_ipv6 $_ip" done ## - Trim leading whitespaces ## - shopt -s extglob _ipv6="${_ipv6##*( )}" shopt -u extglob ## - Is PHP-FPM socket in use ## - _PHP_FPM_SOCKET="$(ls /tmp/php*.sock 2> /dev/null | head -1)" ## - substitude path "/usr/local/httpd-$APACHE_VERSION" to "/usr/local/apache2" ## - in apache configuration files ? ## - subst_base_path=false _APR_VERSION=1.5.2 _APR_UTIL_VERSION=1.5.4 _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 ---------------------------------- ## - ## - Determin httpd binary ## - _httpd_binary="`which httpd`" if [ -z "$_httpd_binary" ]; then _httpd_binary="`ps -C httpd -f | grep -e \"^root\" | awk '{print$8}'`" if [ -z "$_httpd_binary" ]; then if [ -x "/usr/local/apache2/bin/httpd" ]; then _httpd_binary="/usr/local/apache2/bin/httpd" fi fi 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 else APACHE_WEBSERVICE_RUNNING=true fi fi ## - Let make use multiple cores (-j) ## - 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 if [[ -n "$_PHP_FPM_SOCKET" ]]; then PHP_FPM_SOCKET_PRESENT=true PHP_MAJOR_VERSION=`echo $_PHP_FPM_SOCKET | cut -d '-' -f2` else PHP_FPM_SOCKET_PRESENT=false fi 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 else _SYMLINK_INSTALL_DIR=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 if $SYMLINK_INITSCRIPT ; then _START_AT_BOOTTIME=yes else _START_AT_BOOTTIME=no 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_EXISTS=false else if [ "X`which systemd`" = "X" ]; then SYSTEMD_EXISTS=false else SYSTEMD_EXISTS=true fi fi clear echo "" echo -e "\033[21G\033[32mStart Apache Webserver Installation with the following Parameters \033[m" echo "" 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 "System supports systemd.......: $SYSTEMD_EXISTS" 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 "" 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.`date +%Y%m%d-%H%M` 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 echo "## -" >> ${_logdir}/main.log echo "## - httpd version.................: $APACHE_VERSION" >> ${_logdir}/main.log echo "## - apr version................: $APR_VERSION" >> ${_logdir}/main.log echo "## - apr-uril 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 "## - System supports systemd.......: $SYSTEMD_EXISTS" >> ${_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 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 "BASE_WEBSPACE_DIR=$BASE_WEBSPACE_DIR" >> ${_logdir}/main.log echo "GLOBAL_DOC_ROOT=\"${BASE_WEBSPACE_DIR}/default\"" >> ${_logdir}/main.log echo "SUEXEC_DOC_ROOT=$BASE_WEBSPACE_DIR" >> ${_logdir}/main.log echo "HTTPD_USER=$HTTPD_GROUP" >> ${_logdir}/main.log echo "IPv4_ADDRESSES=\"$IPv4_ADDRESSES\"" >> ${_logdir}/main.log echo "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 "" >> ${_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_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}.`date +%Y%m%d-%H%M` 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}.`date +%Y%m%d-%H%M` fi fi _httpdconf=${PREFIX}/conf/httpd.conf _rel_confextra_path=conf/extra _backup_suffix=".BAK" 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 "" ## - Install dependency packages for \"mysql-server\" ## - 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 mysql-server" >> ${_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.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log mv ${_srcdir}/apr-$APR_VERSION ${_srcdir}/apr-$APR_VERSION.`date +%Y%m%d-%H%M` 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}.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log mv /usr/local/apr-${APR_VERSION} /usr/local/apr-${APR_VERSION}.`date +%Y%m%d-%H%M` >> ${_logdir}/main.log 2>&1 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.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log mv ${_srcdir}/apr-util-$APR_UTIL_VERSION ${_srcdir}/apr-util-$APR_UTIL_VERSION.`date +%Y%m%d-%H%M` 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 <> ${_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}.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log mv /usr/local/apr-util-${APR_UTIL_VERSION} /usr/local/apr-util-${APR_UTIL_VERSION}.`date +%Y%m%d-%H%M` >> ${_logdir}/main.log 2>&1 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.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log mv $_builddir $_builddir.`date +%Y%m%d-%H%M` >> ${_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-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.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log mv $PREFIX $PREFIX.`date +%Y%m%d-%H%M` >> ${_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_EXISTS ; 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 else echo_skipped 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 fatal "Installing apache-${APACHE_VERSION} failed." 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 $_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 <> ${_logdir}/main.log cat <>$_httpdconf ServerSignature Off ServerTokens ProductOnly EOF EOFLOG echononl "\thttpd.conf: Set ServerSignature / ServerTokens.." cat <>$_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 <> ${_logdir}/main.log cat <>$_httpdconf include conf/vhosts/*.conf EOF EOFLOG echononl "\thttpd.conf: \"include conf/vhosts/*.conf\".." cat <>$_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 <> ${_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 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 ${PREFIX}/conf/server-bundle.crt if [[ $? -gt 0 ]];then _failed=true fi ln -s /var/lib/dehydrated/certs/${SERVER_NAME}/privkey.pem ${PREFIX}/conf/server.key if [[ $? -gt 0 ]];then _failed=true fi if $_failed ; then echo_failed else echo_ok fi elif [ -f /etc/ssl/certs/ssl-cert-snakeoil.pem -a -f /etc/ssl/private/ssl-cert-snakeoil.key ]; then ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem ${PREFIX}/conf/server-bundle.crt if [[ $? -gt 0 ]];then _failed=true fi ln -s /etc/ssl/private/ssl-cert-snakeoil.key ${PREFIX}/conf/server.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 $PREFIX/conf/ if [[ $? -gt 0 ]];then _failed=true fi cp $_srcdir/server.key $PREFIX/conf/ 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 <> ${_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 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 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 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 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 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 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 <> ${_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 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.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log mv $_builddir_fcgid $_builddir_fcgid.`date +%Y%m%d-%H%M` >> ${_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}.`date +%Y%m%d-%H%M` 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 <> ${_logdir}/main.log perl -i.bak -n -p -e "s#^(\s*LoadModule\s+fcgid_module.+)#\1\n\n\n \# in Abstimmung mit PHP variablen\n \# upload_max_filesize = 32\n \# post_max_size = 128M\n FcgidMaxRequestLen 134217728\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\n#" \$_httpdconf EOF echononl "\thttpd.conf: Adjust mod_fcgid module.." perl -i.bak -n -p -e "s#^(\s*LoadModule\s+fcgid_module.+)#\1\n\n\n \# in Abstimmung mit PHP variablen\n \# upload_max_filesize = 32\n \# post_max_size = 128M\n FcgidMaxRequestLen 134217728\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\n#" $_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.`date +%Y%m%d-%H%M`" >> ${_logdir}/main.log mv $_builddir_perl $_builddir_perl.`date +%Y%m%d-%H%M` >> ${_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}.`date +%Y%m%d-%H%M` 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 <> ${_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 if [ -h "/usr/local/apache2" ]; then echo "" >> ${_logdir}/main.log echo "## - Remove existing symlink /usr/local/apache2.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "rm /usr/local/apache2" >> ${_logdir}/main.log echononl "\tRemove existing symlink /usr/local/apache2.." rm /usr/local/apache2 >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Remove existing symlink /usr/local/apache2 failed." fi fi echo "" >> ${_logdir}/main.log echo "## - Set Symlink /usr/local/apache2.." >> ${_logdir}/main.log echo "## - ln -s `basename $PREFIX` /usr/local/apache2" >> ${_logdir}/main.log echo "" >> ${_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 ## - 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 ## - 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 $SYMLINK_INITSCRIPT ; then if [ -h "/etc/init.d/apache2" ]; then echo "" >> ${_logdir}/main.log echo "## - Remove existing symlink /etc/init.d/apache2.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "rm /etc/init.d/apache2.." >> ${_logdir}/main.log echononl "\tRemove existing symlink /etc/init.d/apache2.." rm /etc/init.d/apache2 >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Remove existing symlink /usr/local/apache2 failed." fi fi echo "" >> ${_logdir}/main.log echo "## - 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 <> ${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 echo "" if $START_AT_BOOTTIME ; then if `ls /etc/rc2.d/ | grep apache2 > /dev/null 2>&1` ; then echo "" >> ${_logdir}/main.log echononl "\tRemove init script links" echo "## - Remove init script links" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "update-rc.d -f apache2 remove" >> ${_logdir}/main.log update-rc.d -f apache2 remove >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Removing existing init script links failed." fi fi ## - 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_EXISTS ; 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 00default.conf ## - echo "" >> ${_logdir}/main.log echo "## - Add default vhost configuration file 00default.conf.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "" echononl "\tAdd default vhost configuration file 00default.conf.." cat < ${PREFIX}/conf/vhosts/00default.conf ## - initial konfiguration -- ## ## - ipv4: $IPv4_FIRST EOF if [ -n "$IPv6_FIRST" ];then cat <> ${PREFIX}/conf/vhosts/00default.conf ## - ipv6: $IPv6_FIRST EOF fi cat <> ${PREFIX}/conf/vhosts/00default.conf SSLCompression off SSLStrictSNIVHostCheck off DirectoryIndex index.html index.htm index.php index.php5 Options FollowSymLinks AllowOverride All Require all granted ## - 127.0.0.1 (used by apachectl status) -- # ServerName localhost.localdomain ServerAlias localhost DocumentRoot "$GLOBAL_DOC_ROOT" EOF if $PHP_FPM_SOCKET_PRESENT ; then cat <> ${PREFIX}/conf/vhosts/00default.conf ## - Make PHP-FPM status page and PHP-FPM ping available ## - SetHandler "proxy:unix:${_PHP_FPM_SOCKET}|fcgi://127.0.0.1" EOF else cat <> ${PREFIX}/conf/vhosts/00default.conf ## - Make PHP-FPM status page and PHP-FPM ping available ## - #|ping-)$"> # SetHandler "proxy:unix:|fcgi://127.0.0.1" # EOF fi cat <> ${PREFIX}/conf/vhosts/00default.conf CustomLog /var/log/apache2/localhost.log combined ErrorLog /var/log/apache2/localhost.error # -- dummy.${_DOMAIN}.$_TLD -- # EOF if $SEPARATE_LISTEN_DIRECTIVES ; then cat <> ${PREFIX}/conf/vhosts/00default.conf EOF else cat <> ${PREFIX}/conf/vhosts/00default.conf EOF fi cat <> ${PREFIX}/conf/vhosts/00default.conf 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 EOF if $SEPARATE_LISTEN_DIRECTIVES ; then cat <> ${PREFIX}/conf/vhosts/00default.conf EOF else cat <> ${PREFIX}/conf/vhosts/00default.conf EOF fi cat <> ${PREFIX}/conf/vhosts/00default.conf 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 EOF if [[ -n "$IPv6_FIRST" ]] && $SEPARATE_LISTEN_DIRECTIVES ; then cat <> ${PREFIX}/conf/vhosts/00default.conf ## - ## - IPv6 ## - # -- dummy.oopen.de -- # 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 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 EOF fi if [ -d "${PREFIX}/conf/vhosts/0" ] ; then echo "" >> ${PREFIX}/conf/vhosts/00default.conf echo "Include conf/vhosts/0/*.conf" >> ${PREFIX}/conf/vhosts/00default.conf fi if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Adding vhost configfile 000default.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 ' HTTP Error 404 / Http Fehler 404

HTTP Error 404

The site you have requested was not found on this Server

Please check your spelling and try again.

Thank You very much!

HTTP Fehler 404

Die von Ihnen aufgerufene Seite gibt es leider nicht - Sorry

Bitte prüfen Sie die Adresse und versuchen es nochmals.

Vielen Dank für Ihr Verständnis!

EOF ' >> ${_logdir}/main.log cat << EOF > ${GLOBAL_DOC_ROOT}/index.html HTTP Error 404 / Http Fehler 404

HTTP Error 404

The site you have requestet was not found on that Server

Please check your spelling and try again.

Thank You very much!

HTTP Fehler 404

Die von Ihnen aufgerufene Seite gibt es leider nicht - Sorry

Bitte prüfen Sie die Adresse und versuchen es nochmals.

Vielen Dank für Ihr Verständnis!

EOF if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Creating ${GLOBAL_DOC_ROOT}/index.html (Error 404 page) failed." fi if $START_APACHE_WEBSERVICE ; then 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_EXISTS ; 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 fi cd $pwd echo exit 0