#!/usr/bin/env bash _backup_suffix=".BAK" _backup_date="$(date +%Y%m%d-%H%M)" # httpd Apapche Webserver # ## - CHANGE PARAMETER TO PASS YOUR SITUATION-------- ## - _VSERVER_GUEST=no _APACHE_VERSION=2.4.63 _APR_VERSION=1.7.5 _APR_UTIL_VERSION=1.6.3 _WITH_MOD_PROXY_FCGI=true _WITH_MOD_DUMPIO=false _WITH_MOD_FCGID=true _MOD_FCGID_VERSION=2.3.9 _WITH_MOD_PERL=true _MOD_PERL_VERSION=2.0.13 _SEPARATE_LISTEN_DIRECTIVES=false _SSL_SNAKEOIL_CERT="/etc/ssl/certs/ssl-cert-snakeoil.pem" _SSL_SNAKEOIL_KEY="/etc/ssl/private/ssl-cert-snakeoil.key" _CRONTAB_BAKUP_FILE="$(mktemp)" if $_WITH_MOD_FCGID -o $_WITH_MOD_PROXY_FCGI ; then _WITH_MOD_PHP=false else _WITH_MOD_PHP=true _PHP_VERSION=7.4.33 fi ## - Determin IP-Adresses ## - if ifconfig | grep -i -q -E "inet [address|Adresse]" ; then __ipv4="`ifconfig | grep -E \"^\s*inet [address|Adresse]\" | grep -v \"127.0.0.1\" | awk '{print$2}' | cut -d\":\" -f2 | sort`" __ipv6="`ifconfig | grep -e \"^\s*inet6-Adresse\" | awk '{print$2}' | grep -v -e \"^::1/\" | grep -v -e \"^fe80\" | cut -d\"/\" -f1 | sort`" else __ipv4="`ifconfig | grep -e \"^\s*inet \" | grep -v \"127.0.0.1\" | awk '{print$2}' | sort`" __ipv6="`ifconfig | grep -e \"^\s*inet6 \" | awk '{print$2}' | grep -v \"^::1\" | grep -v -e \"^fe80\" | sort`" fi for _ip in $__ipv4 ; do _ipv4="$_ipv4 $_ip" done for _ip in $__ipv6 ; do _ipv6="$_ipv6 $_ip" done ## - Trim leading whitespaces ## - shopt -s extglob _ipv4="${_ipv4##*( )}" _ipv6="${_ipv6##*( )}" shopt -u extglob ## - Is PHP-FPM socket in use ## - declare -a _php_socket_arr=() while IFS='' read -r -d '' _socket ; do #echo "socket: $_socket" _php_major_version="$(echo "$_socket" | cut -d '-' -f2)" _php_socket_arr+=("${_php_major_version}:$_socket") done < <(find "/tmp" -type s -name "php*" -print0 | sort -z) if [[ -d "/run/php" ]] ; then while IFS='' read -r -d '' _socket ; do _php_major_version="$(echo "$_socket" | cut -d '-' -f2)" _php_socket_arr+=("${_php_major_version}:$_socket") done < <(find "/run/php" -type s -name "php*" -print0 | sort -z) fi ## - substitude path "/usr/local/httpd-$APACHE_VERSION" to "/usr/local/apache2" ## - in apache configuration files ? ## - subst_base_path=false _HTTPD_USER=www-data _HTTPD_PORT=80 _HTTPD_SSL_PORT=443 _SERVER_NAME=`hostname -f` _SERVER_ADMIN="admin@oopen.de" _HTTPD_OLD_CONF_FILE="$(realpath "/usr/local/apache2/conf/httpd.conf")" if [[ -f "${_HTTPD_OLD_CONF_FILE}" ]] && $(grep -q -i -E "^\s*timeout\s+" "${_HTTPD_OLD_CONF_FILE}") ; then _TIMEOUT="$(grep -i -E "^\s*timeout\s+" "${_HTTPD_OLD_CONF_FILE}"| awk '{print$2}' | head -1)" else _TIMEOUT=360 fi if [[ -f "${_HTTPD_OLD_CONF_FILE}" ]] && $(grep -q -i -E "^\s*ProxyTimeout\s+" "${_HTTPD_OLD_CONF_FILE}") ; then _PROXY_TIMEOUT="$(grep -i -E "^\s*ProxyTimeout\s+" "${_HTTPD_OLD_CONF_FILE}"| awk '{print$2}' | head -1)" else _PROXY_TIMEOUT=${_TIMEOUT} fi _srcdir=$(dirname $(realpath $0)) _START_AT_BOOTTIME=yes APACHE_LOG_DIR=/var/log/apache2 DIRECTORY_INDEX="index.html index.htm index.php" MUTEX_DIR="${APACHE_LOG_DIR}/ssl_mutex" #_SSL_Cipher_Suite='ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-CCM8:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-ARIA256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-CCM8:ECDHE-ECDSA-AES128-CCM:ECDHE-ECDSA-ARIA128-GCM-SHA256' # see: https://ssl-config.mozilla.org # _SSL_Cipher_Suite='ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384' _SSL_HONOR_CIPHER_ORDER="off" _SSL_COMPRESSION="off" _SSL_SESSION_TICKETS="off" _SSL_USE_STAPLING="on" _SSL_STAPLING_CACHE="shmcb:${APACHE_LOG_DIR}/ssl_stapling(32768)" _BASE_WEBSPACE_DIR="/var/www" #_GLOBAL_DOC_ROOT="${_BASE_WEBSPACE_DIR}/default" #_SUEXEC_DOC_ROOT=$_BASE_WEBSPACE_DIR #_PROXY_PATH_MATH_LINE="#ProxyPassMatch ^/(status|ping)$ unix:${_PHP_FPM_SOCKET}|fcgi://localhost/${_BASE_WEBSPACE_DIR}/default" ## - DO NOT CHANGE ---------------------------------- ## - # - systemd supported by OS ? # - _systemd="$(which systemd)" _systemctl="$(which systemctl)" if [[ -z "$_systemd" ]] && [[ -z "$_systemctl" ]]; then SYSTEMD_SUPPORTED=false else SYSTEMD_SUPPORTED=true fi ## - Determin httpd binary ## - _httpd_binary="$(ps -axu | grep httpd \ | grep -e "^root" \ | grep -v grep \ | grep -v vim \ | grep -v bash \ | awk '{print$11}' | head -1)" if [ -z "$_httpd_binary" ]; then _httpd_binary="$(which httpd)" if [ -z "$_httpd_binary" ]; then if [ -x "/usr/local/apache2/bin/httpd" ]; then _httpd_binary="/usr/local/apache2/bin/httpd" fi fi fi _httpd_current_version= if [ -n "$_httpd_binary" ]; then _httpd_current_version="$($_httpd_binary -v | grep -i version | awk '{print$3}' | cut -d'/' -f2)" fi APACHE_WEBSERVICE_RUNNING=false if [ -x "$_httpd_binary" ];then ## - Determin websever user ## - _pass_web_user=false web_user="`$_httpd_binary -t -D DUMP_RUN_CFG | grep -i -e "^User" | awk '{print$2}' | cut -d\"=\" -f2 | tr -d '"'`" web_group="`$_httpd_binary -t -D DUMP_RUN_CFG | grep -i -e "^Group" | awk '{print$2}' | cut -d\"=\" -f2 | tr -d '"'`" if [ -z "$web_user" -o -z "$web_group" ]; then if [[ -f "/usr/local/apache2/conf/httpd.conf" ]] ; then _HTTPD_USER="$(grep -E "^\s*User\s" "/usr/local/apache2/conf/httpd.conf" | awk '{print$2}')" _HTTPD_GROUP="$(grep -E "^\s*Group\s" "/usr/local/apache2/conf/httpd.conf" | awk '{print$2}')" fi [[ -z "$_HTTPD_USER" ]] && _HTTPD_USER=www-data else _HTTPD_USER=$web_user _HTTPD_GROUP=$web_group fi ## - Is Apache Webservice running? ## - PID=$(ps aux | grep "$(realpath $_httpd_binary)" | grep -e "^root" | grep -v grep | awk '{print$2}') if [[ "X${PID}X" = "XX" ]] ;then APACHE_WEBSERVICE_RUNNING=false START_APACHE_WEBSERVICE=false else APACHE_WEBSERVICE_RUNNING=true START_APACHE_WEBSERVICE=true fi fi ## - Let make use multiple cores (-j) ## - 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 ## --- clean_up() { # Perform program exit housekeeping if [[ -s "$_CRONTAB_BAKUP_FILE" ]]; then crontab -u root $_CRONTAB_BAKUP_FILE fi rm -f $_CRONTAB_BAKUP_FILE exit $1 } 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 "" clean_up 1 } info (){ echo "" echo -e "\t[ \033[32m\033[1mInfo\033[m ]: $*" echo "" } error (){ echo "" echo -e "\t[ \033[31m\033[1mError\033[m ]: $*" echo "" } 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 ]" } get_openssl_version() { OPENSSL_VERSION="$(openssl version|awk '{print $2}' | grep -o -E "[0-9]+\.[0-9]+\.[0-9]+[a-zA-Z]?")" OPENSSL_MAIN_VERSION=`echo $OPENSSL_VERSION | cut -d '.' -f1,2` OPENSSL_MAJOR_VERSION=`echo $OPENSSL_VERSION | cut -d '.' -f1` OPENSSL_MINOR_VERSION=`echo $OPENSSL_VERSION | cut -d '.' -f2` OPENSSL_PATCH_LEVEL=`echo $OPENSSL_VERSION | cut -d '.' -f3` if [[ -n "${OPENSSL_VERSION}" ]] ; then return 0 else return 1 fi } trim() { local var="$*" var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters echo -n "$var" } detect_os_1 () { if $(which lsb_release > /dev/null 2>&1) ; then os_dist="$(lsb_release -i | awk '{print tolower($3)}')" os_version="$(lsb_release -r | awk '{print tolower($2)}')" os_codename="$(lsb_release -c | awk '{print tolower($2)}')" if [[ "$os_dist" = "debian" ]]; then if $(echo "$os_version" | grep -q '\.') ; then os_version=$(echo "$os_version" | cut --delimiter='.' -f1) fi fi elif [[ -e "/etc/os-release" ]]; then . /etc/os-release os_dist=$ID os_version=${os_version_ID} fi # remove whitespace from os_dist and os_version os_dist="${os_dist// /}" os_version="${os_version// /}" } ## --- ## --- END: functions trap clean_up SIGHUP SIGINT SIGTERM # - Set variable # - os_dist # - os_version # - os_codename # - detect_os_1 #clear # Detect OpenSSL version # get_openssl_version if [[ $? -ne 0 ]] ; then error "Cannot detect OpenSSL Version." fi echo "" echo -e "\033[21G\033[32mInstallation script apache webserver \033[m" echo "" if [[ -n "${_httpd_binary}" ]]; then echo -e " \033[1mCurrent Settings\033[m" echo -e "" echo -e " _httpd_binary: $_httpd_binary" echo -e " _httpd_current_version: $_httpd_current_version" echo -e "" echo -e " _HTTPD_USER: $_HTTPD_USER" echo -e " _HTTPD_GROUP: $_HTTPD_GROUP" echo -e "" echo -e " APACHE_WEBSERVICE_RUNNING: $APACHE_WEBSERVICE_RUNNING" echo -e " START_APACHE_WEBSERVICE: $START_APACHE_WEBSERVICE" echo -e "" else echo -e "" echo -e " \033[1mNo current installation of apache2 webservice found!\033[m" echo -e "" fi echononl "continue [yes]: " read OK [[ -z "$(trim "${OK}")" ]] && OK="yes" OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')" while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do echononl "Wrong entry! - repeat [yes/no]: " read OK done [[ $OK = "yes" ]] || fatal "Abbruch durch User" echo "" echo -e "\033[32m--\033[m" echo "" echo "Insert version numbers apache (httpd) apr and apr-util." echo "" echo "" APACHE_VERSION= while [ "X$APACHE_VERSION" = "X" ] do echononl "apache version [$_APACHE_VERSION]: " read APACHE_VERSION if [ "X$APACHE_VERSION" = "X" ]; then APACHE_VERSION=$_APACHE_VERSION fi done APR_VERSION= while [ "X$APR_VERSION" = "X" ] do echononl "apr version [$_APR_VERSION]: " read APR_VERSION if [ "X$APR_VERSION" = "X" ]; then APR_VERSION=$_APR_VERSION fi done if [ -d "/usr/local/apr-$APR_VERSION" ]; then APR_INSTALLED=true else APR_INSTALLED=false fi APR_UTIL_VERSION= while [ "X$APR_UTIL_VERSION" = "X" ] do echononl "apr-util version [$_APR_UTIL_VERSION]: " read APR_UTIL_VERSION if [ "X$APR_UTIL_VERSION" = "X" ]; then APR_UTIL_VERSION=$_APR_UTIL_VERSION fi done if [ -d "/usr/local/apr-util-$APR_UTIL_VERSION" ]; then APR_UTIL_INSTALLED=true else APR_UTIL_INSTALLED=false fi echo "" echo "" echo -e "\033[32m--\033[m" echo "" echo "Base Directory contains the webspaces.." echo "" echo "" BASE_WEBSPACE_DIR= while [ "X$BASE_WEBSPACE_DIR" = "X" ] do echononl "Webspace base directory [${_BASE_WEBSPACE_DIR}]: " read BASE_WEBSPACE_DIR if [ "X$BASE_WEBSPACE_DIR" = "X" ]; then BASE_WEBSPACE_DIR=$_BASE_WEBSPACE_DIR fi done GLOBAL_DOC_ROOT="${BASE_WEBSPACE_DIR}/default" SUEXEC_DOC_ROOT=$BASE_WEBSPACE_DIR echo "" echo "" echo -e "\033[32m--\033[m" echo "" echo "Insert User/Group for apache daemon (httpd)." echo "" echo "" HTTPD_USER= while [ "X$HTTPD_USER" = "X" ] do echononl "apache user [${_HTTPD_USER}]: " read HTTPD_USER if [ "X$HTTPD_USER" = "X" ]; then HTTPD_USER=$_HTTPD_USER fi done if [ -z "$_HTTPD_GROUP" ]; then if [ "$HTTPD_USER" = "nobody" ]; then _HTTPD_GROUP="nogroup" else _HTTPD_GROUP=$HTTPD_USER fi fi while [ "X$HTTPD_GROUP" = "X" ] do echononl "apache group [$_HTTPD_GROUP]: " read HTTPD_GROUP if [ "X$HTTPD_GROUP" = "X" ]; then HTTPD_GROUP=$_HTTPD_GROUP fi done echo "" echo "" echo -e "\033[32m--\033[m" echo "" echo "Insert default ServerName / ServerAdmin ." echo "" echo "" SERVER_NAME= while [ "X$SERVER_NAME" = "X" ] do echononl "default SeverName [${_SERVER_NAME}]: " read SERVER_NAME if [ "X$SERVER_NAME" = "X" ]; then SERVER_NAME=$_SERVER_NAME fi done if [ -z "`echo $SERVER_NAME | cut -s -d"." -f 3`" ];then _HOST="" _DOMAIN=`echo $SERVER_NAME | cut -s -d"." -f 1` _TLD=`echo $SERVER_NAME | cut -s -d"." -f 2` else _HOST=`echo $SERVER_NAME | cut -s -d"." -f 1` _DOMAIN=`echo $SERVER_NAME | cut -s -d"." -f 2` _TLD=`echo $SERVER_NAME | cut -s -d"." -f 3` fi SERVER_ADMIN= while [ "X$SERVER_ADMIN" = "X" ] do echononl "default SeverAdmin [${_SERVER_ADMIN}]: " read SERVER_ADMIN if [ "X$SERVER_ADMIN" = "X" ]; then SERVER_ADMIN=$_SERVER_ADMIN fi done echo "" echo "" echo -e "\033[32m--\033[m" echo "" echo "Insert default Timeout / ProxyTimeout" echo "" echo " Time : The length of time Apache httpd will wait for I/O " echo " in various circumstances." echo "" echo " ProxyTimeout: Network timeout for proxied requests" echo "" echo "" TIMEOUT= while [ "X$TIMEOUT" = "X" ] do echononl "default Timeout [${_TIMEOUT}]: " read TIMEOUT if [ "X$TIMEOUT" = "X" ]; then TIMEOUT=$_TIMEOUT fi done echo "" PROXY_TIMEOUT= while [ "X$PROXY_TIMEOUT" = "X" ] do echononl "default ProxyTimeout [${_PROXY_TIMEOUT}]: " read PROXY_TIMEOUT if [ "X$PROXY_TIMEOUT" = "X" ]; then PROXY_TIMEOUT=$_PROXY_TIMEOUT fi done echo "" echo "" echo -e "\033[32m--\033[m" echo "" echo "Insert the IP-Addresses the webserver should listen for." echo " Note:" echo " Put in a blank seperated list of ip-addresses" echo "" echo -e " \033[33m\"127.0.0.1\"\033[m will be added automatically " echo "" echo "" _IPv4_ADDRESSES= while [ "X$_IPv4_ADDRESSES" = "X" ] do echononl "Ipv4 addresses [$_ipv4]: " read _IPv4_ADDRESSES if [ "X$_IPv4_ADDRESSES" = "X" ]; then _IPv4_ADDRESSES=$_ipv4 #echononl "Must NOT be empty. Insert again: " fi done IPv4_FIRST=`echo $_IPv4_ADDRESSES | cut -d " " -f1` HTTPD_INFO_ADDRESSES="$_IPv4_ADDRESSES" IPv4_ADDRESSES="127.0.0.1 $_IPv4_ADDRESSES" echo "" echo "Type:" echo -e "\t\033[33mNone\033[m if IPv6 is not suppoerted" echo "" IPv6_ADDRESSES= while [ "X$IPv6_ADDRESSES" = "X" ] do echononl "Ipv6 addresses [$_ipv6]: " read IPv6_ADDRESSES if [ "X$IPv6_ADDRESSES" = "Xnone" -o "X$IPv6_ADDRESSES" = "XNone" ]; then warn "Disable support for IPv6.." IPv6_ADDRESSES="disbled" #echononl "Must NOT be empty. Insert again: " elif [ "X$IPv6_ADDRESSES" = "X" ]; then IPv6_ADDRESSES=$_ipv6 fi done if [ "$IPv6_ADDRESSES" != "disbled" ]; then IPv6_FIRST=`echo $IPv6_ADDRESSES | cut -d " " -f1` else IPv6_FIRST="" fi IP_ADDRESSES="$IPv4_ADDRESSES" if [ "$IPv6_ADDRESSES" != "disbled" ]; then for _ipv6 in $IPv6_ADDRESSES ; do IP_ADDRESSES="$IP_ADDRESSES [$_ipv6]" HTTPD_INFO_ADDRESSES="$HTTPD_INFO_ADDRESSES $_ipv6" done fi echo "" echo "" echo -e "\tUse Separate \"Listen\" Directives for each IP-Address?" echo "" SEPARATE_LISTEN_DIRECTIVES= while [ "X$SEPARATE_LISTEN_DIRECTIVES" = "X" ] do if $_SEPARATE_LISTEN_DIRECTIVES ; then echononl "Separate \"Listen\" Directives (yes/no) [yes]: " else echononl "Separate \"Listen\" Directives (yes/no) [no]: " fi read SEPARATE_LISTEN_DIRECTIVES if [ "X$SEPARATE_LISTEN_DIRECTIVES" = "X" ]; then SEPARATE_LISTEN_DIRECTIVES=$_SEPARATE_LISTEN_DIRECTIVES fi done SEPARATE_LISTEN_DIRECTIVES=`echo $SEPARATE_LISTEN_DIRECTIVES | tr '[:upper:]' '[:lower:]'` if [ "$SEPARATE_LISTEN_DIRECTIVES" = "yes" ] || $SEPARATE_LISTEN_DIRECTIVES ; then SEPARATE_LISTEN_DIRECTIVES=true _STATUS_URL="http://localhost:80/server-status" else SEPARATE_LISTEN_DIRECTIVES=false _STATUS_URL="http://127.0.0.1:80/server-status" fi echo "" echo "" echo -e "\tInsert the URL used to access the status report" echo "" echo " Example:" echo " http://localhost:80/server-status" echo " http://127.0.0.1:80/server-status" echo "" STATUS_URL= while [ "X$STATUS_URL" = "X" ] do if [[ -n $_STATUS_URL ]] ; then echononl "Status URL [$_STATUS_URL]: " else echononl "Status URL: " fi read STATUS_URL if [ "X$STATUS_URL" = "X" ]; then STATUS_URL=$_STATUS_URL fi done echo "" echo "" echo -e "\033[32m--\033[m" echo "" echo "Insert Ports for standard non-ssl and ssl connections" echo "" echo "" HTTPD_PORT= while [ "X$HTTPD_PORT" = "X" ] do echononl "port for standard (non-ssl) connections [${_HTTPD_PORT}]: " read HTTPD_PORT if [ "X$HTTPD_PORT" = "X" ]; then HTTPD_PORT=$_HTTPD_PORT fi done HTTPD_SSL_PORT= while [ "X$HTTPD_SSL_PORT" = "X" ] do echononl "port for ssl connections [${_HTTPD_SSL_PORT}]: " read HTTPD_SSL_PORT if [ "X$HTTPD_SSL_PORT" = "X" ]; then HTTPD_SSL_PORT=$_HTTPD_SSL_PORT fi done echo "" echo "" echo -e "\033[32m--\033[m" echo "" echo "Some server configuration" echo "" #echo " - Sysmlink for initscript (/etc/init.d/apache2)" echo " - Sysmlink for installation directory (/usr/local/apache2)" echo " - Start at boot time" echo "" #if [[ ! -f "/etc/init.d/apache2" ]] ; then # _SYMLINK_INITSCRIPT=yes #else # _SYMLINK_INITSCRIPT=no #fi #__SYMLINK_INITSCRIPT= #while [ "X$__SYMLINK_INITSCRIPT" = "X" ] #do # echononl "Sysmlink for initscript (yes/no) [${_SYMLINK_INITSCRIPT}]: " # read __SYMLINK_INITSCRIPT # if [ "X$__SYMLINK_INITSCRIPT" = "X" ]; then # __SYMLINK_INITSCRIPT=$_SYMLINK_INITSCRIPT # fi #done #__SYMLINK_INITSCRIPT=`echo $__SYMLINK_INITSCRIPT | tr '[:upper:]' '[:lower:]'` #if [ "$__SYMLINK_INITSCRIPT" = "yes" ] ; then # SYMLINK_INITSCRIPT=true # START_APACHE_WEBSERVICE=true #else # SYMLINK_INITSCRIPT=false # START_APACHE_WEBSERVICE=false #fi if [[ ! -f "/usr/local/apache2" ]]; then _SYMLINK_INSTALL_DIR=yes _START_AT_BOOTTIME=yes else _SYMLINK_INSTALL_DIR=no _START_AT_BOOTTIME=no fi __SYMLINK_INSTALL_DIR= while [ "X$__SYMLINK_INSTALL_DIR" = "X" ] do echononl "Sysmlink for installation directory (yes/no) [${_SYMLINK_INSTALL_DIR}]: " read __SYMLINK_INSTALL_DIR if [ "X$__SYMLINK_INSTALL_DIR" = "X" ]; then __SYMLINK_INSTALL_DIR=$_SYMLINK_INSTALL_DIR fi done __SYMLINK_INSTALL_DIR=`echo $__SYMLINK_INSTALL_DIR | tr '[:upper:]' '[:lower:]'` if [ "$__SYMLINK_INSTALL_DIR" = "yes" ] ; then SYMLINK_INSTALL_DIR=true else SYMLINK_INSTALL_DIR=false fi __START_AT_BOOTTIME= while [ "X$__START_AT_BOOTTIME" = "X" ] do echononl "Start at boot time (yes/no) [${_START_AT_BOOTTIME}]: " read __START_AT_BOOTTIME if [ "X$__START_AT_BOOTTIME" = "X" ]; then __START_AT_BOOTTIME=$_START_AT_BOOTTIME fi done __START_AT_BOOTTIME=`echo $__START_AT_BOOTTIME | tr '[:upper:]' '[:lower:]'` if [ "$__START_AT_BOOTTIME" = "yes" ] ; then START_AT_BOOTTIME=true else START_AT_BOOTTIME=false fi echo "" echo -e "\033[32m--\033[m" echo "" echo "" OK="" echononl "Set \"umask\" to \"0002\" ? [no]: " read OK while [ "X$OK" != "Xyes" -a "X$OK" != "XYes" -a "X$OK" != "Xno" -a "X$OK" != "XNo" -a "X$OK" != "X" ]; do echononl "falsche Angabe! [no]: " read OK done if [ "$OK" = "yes" -o "$OK" = "Yes" ]; then SET_UMASK=true UMASK=0002 else SET_UMASK=false fi echo "" echo "" echo -e "\033[32m--\033[m" echo "" echo "Support for apache modules" echo "" echo "" __WITH_MOD_PROXY_FCGI= while [ "X$__WITH_MOD_PROXY_FCGI" = "X" ] do echononl "Include \"mod_proxy_cgi\" [${_WITH_MOD_PROXY_FCGI}]: " read __WITH_MOD_PROXY_FCGI if [ "X$__WITH_MOD_PROXY_FCGI" = "X" ]; then __WITH_MOD_PROXY_FCGI=$_WITH_MOD_PROXY_FCGI fi done if [ "$__WITH_MOD_PROXY_FCGI" = "true" ] ; then WITH_MOD_PROXY_FCGI=true else WITH_MOD_PROXY_FCGI=false fi echo "" echo "" echo -e "\033[32m--\033[m" echo "" echo "Enable mod_dumpio" echo "" echo " allows for the logging of all input received by Apache and/or all output " echo " sent by Apache to be logged (dumped) to the error.log file." echo "" echo " The data logging is done right after SSL decoding (for input) and right" echo " before SSL encoding (for output)." echo "" echo -e " \033[33mAs can be expected, this can produce extreme volumes of data, and should" echo -e " only be used when debugging problems.\033[m" echo "" __WITH_MOD_DUMPIO= while [ "X$__WITH_MOD_DUMPIO" = "X" ] do echononl "Include \"mod_dumpio\" [${_WITH_MOD_DUMPIO}]: " read __WITH_MOD_DUMPIO if [ "X$__WITH_MOD_DUMPIO" = "X" ]; then __WITH_MOD_DUMPIO=$_WITH_MOD_DUMPIO fi done if [ "$__WITH_MOD_DUMPIO" = "true" ] ; then WITH_MOD_DUMPIO=true else WITH_MOD_DUMPIO=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" ]] || [[ "${__WITH_MOD_PHP,,}" = 'yes' ]]; then WITH_MOD_PHP=true PHP_VERSION= while [ "X$PHP_VERSION" = "X" ] do echononl "php version [$_PHP_VERSION]: " read PHP_VERSION if [ "X$PHP_VERSION" = "X" ]; then PHP_VERSION=$_PHP_VERSION fi done else WITH_MOD_PHP=false fi if [ -n "$PHP_VERSION" ] ; then _builddir=${_srcdir}/httpd-${APACHE_VERSION}_php-${PHP_VERSION} PREFIX=/usr/local/httpd-${APACHE_VERSION}_php-${PHP_VERSION} _logdir=${_srcdir}/log_httpd-${APACHE_VERSION}_php-${PHP_VERSION}_build else _builddir=${_srcdir}/httpd-${APACHE_VERSION} PREFIX=/usr/local/httpd-${APACHE_VERSION} _logdir=${_srcdir}/log_httpd-${APACHE_VERSION} fi ## - Is this a system with "systemd" ? ## - OK= echo "" echo -e "\033[32m--\033[m" echo "" echo "Are you installing on a VServer guest system?" echo "" echononl "VServer Gastsystem (yes/no) [$_VSERVER_GUEST]: " read OK if [ "X$OK" = "X" ]; then OK=$_VSERVER_GUEST fi OK=`echo "$OK" | tr '[:upper:]' '[:lower:]'` while [ "X$OK" != "Xyes" -a "X$OK" != "Xno" ]; do echo "" echononl "\twrong entry! [yes/no]: " read OK OK=`echo "$OK" | tr '[:upper:]' '[:lower:]'` done if [ "$OK" = "yes" ]; then SYSTEMD_SUPPORTED=false fi if $SYSTEMD_SUPPORTED ; then INIT_SCRIPT_SUPPORTED=false else INIT_SCRIPT_SUPPORTED=true fi #clear echo "" echo -e "\033[21G\033[32mStart Apache Webserver Installation with the following Parameters \033[m" echo "" if [[ -n "$_httpd_current_version" ]]; then echo "" echo -e "--- Update form apache version \033[33m$_httpd_current_version\033[m ---" echo "" fi echo "httpd version.................: $APACHE_VERSION" echo " apr version................: $APR_VERSION" echo " apr-uril version...........: $APR_UTIL_VERSION" echo "" echo "apache user...................: $HTTPD_USER" echo "apache group..................: $HTTPD_GROUP" echo "" echo "Installation directory........: $PREFIX" echo "" echo "Base directory for webspaces..: $BASE_WEBSPACE_DIR" echo "Global DocumentRoot directory.: $GLOBAL_DOC_ROOT" echo "" echo "default ServerName............: $SERVER_NAME" echo "default ServerAdmin...........: $SERVER_ADMIN" echo "" echo "default timeout...............: $TIMEOUT" echo "default ProxyTimeout..........: $PROXY_TIMEOUT" echo "" echo "IPv4 addresses................: $IPv4_ADDRESSES" echo "IPv6 addresses................: $IPv6_ADDRESSES" echo "" echo "Separate Listen Directives....: $SEPARATE_LISTEN_DIRECTIVES" echo "URL to access status report...: $STATUS_URL" echo "" echo "standard (non-ssl) port.......: $HTTPD_PORT" echo "ssl port......................: $HTTPD_SSL_PORT" echo "" #echo "Symlink /etc/init.d/apache2...: $SYMLINK_INITSCRIPT" echo "Symlink /usr/local/apache2....: $SYMLINK_INSTALL_DIR" echo "Start at boot time............: $START_AT_BOOTTIME" echo "" echo "Set umask to \"0002\"...........: $SET_UMASK" echo "" echo "Install start init script.....: $INIT_SCRIPT_SUPPORTED" echo "System supports systemd.......: $SYSTEMD_SUPPORTED" echo "" echo "Include mod_proxy_cgi.........: $WITH_MOD_PROXY_FCGI" echo "" echo "Include mod_dumpio............: $WITH_MOD_DUMPIO" echo "" echo "Include mod_php...............: $WITH_MOD_PHP" if $WITH_MOD_PHP ; then echo " php version................: $PHP_VERSION" fi echo "" echo "Include mod_fcgid.............: $WITH_MOD_FCGID" if $WITH_MOD_FCGID ; then echo " mod_fcgid version..........: $MOD_FCGID_VERSION" fi echo "Include mod_perl..............: $WITH_MOD_PERL" if $WITH_MOD_PERL ; then echo " mod_perl version...........: $MOD_PERL_VERSION" fi echo "" if [[ ${#_php_socket_arr[@]} -gt 0 ]] ; then echo -n "PHP FPM versions found........:" for _val in ${_php_socket_arr[@]} ; do IFS=':' read -a _val_arr <<< "${_val}" echo -n " ${_val_arr[0]}" done echo fi echo "" echononl "start with that configuration? [yes/no]: " read OK while [ "X$OK" != "Xyes" -a "X$OK" != "XYes" -a "X$OK" != "XNo" -a "X$OK" != "Xno" ] do echononl "wrong entry! [yes/no] :" read OK done [ $OK = "Yes" -o $OK = "yes" ] || fatal "Change parameters and restart script: `basename $0`" echo "" echo "" if [ -d "$_logdir" ];then echononl "\tVerschiebe exitierendes Logverzeichnis ..." mv $_logdir $_logdir.${_backup_date} if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Kann Logverzeichnis \"${_logdir}\" nicht verschieben.." fi fi echononl "\tErstelle Logverzeichnis \"`basename ${_logdir}`\".." mkdir -p $_logdir > /dev/null 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Kann Logverzeichnis \"${_logdir}\" nicht erstellen.." fi touch ${_logdir}/main.log echo "## -----------" >> ${_logdir}/main.log echo "## - Start Apache Webserver installation with the following Parameters" >> ${_logdir}/main.log echo "## -----------" >> ${_logdir}/main.log if [[ -n "$_httpd_current_version" ]]; then echo "## -" >> ${_logdir}/main.log echo "## --- Update form apache version $_httpd_current_version ---" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log fi echo "## -" >> ${_logdir}/main.log echo "## - httpd version.................: $APACHE_VERSION" >> ${_logdir}/main.log echo "## - apr version................: $APR_VERSION" >> ${_logdir}/main.log echo "## - apr-util version...........: $APR_UTIL_VERSION" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - apache user...................: $HTTPD_USER" >> ${_logdir}/main.log echo "## - apache group..................: $HTTPD_GROUP" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - Installation directory........: $PREFIX" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - Base directory for webspaces..: $BASE_WEBSPACE_DIR" >> ${_logdir}/main.log echo "## - Global DocumentRoot directory.: $GLOBAL_DOC_ROOT" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - default ServerName............: $SERVER_NAME" >> ${_logdir}/main.log echo "## - default ServerAdmin...........: $SERVER_ADMIN" >> ${_logdir}/main.log echo "## - " >> ${_logdir}/main.log echo "## - default timeout...............: $TIMEOUT" >> ${_logdir}/main.log echo "## - default ProxyTimeout..........: $PROXY_TIMEOUT" >> ${_logdir}/main.log echo "## - " >> ${_logdir}/main.log echo "## - IPv4 addresses................: $IPv4_ADDRESSES" >> ${_logdir}/main.log echo "## - IPv6 addresses................: $IPv6_ADDRESSES" >> ${_logdir}/main.log echo "## - " >> ${_logdir}/main.log echo "## - Separate Listen Directives....: $SEPARATE_LISTEN_DIRECTIVES" >> ${_logdir}/main.log echo "## - URL to access status report...: $STATUS_URL" >> ${_logdir}/main.log echo "## - " >> ${_logdir}/main.log echo "## - standard (non-ssl) port.......: $HTTPD_PORT" >> ${_logdir}/main.log echo "## - ssl port......................: $HTTPD_SSL_PORT" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log #echo "## - Symlink /etc/init.d/apache2...: $SYMLINK_INITSCRIPT" >> ${_logdir}/main.log echo "## - Symlink /usr/local/apache2....: $SYMLINK_INSTALL_DIR" >> ${_logdir}/main.log echo "## - Start at boot time............: $START_AT_BOOTTIME" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - Install start init script.....: $INIT_SCRIPT_SUPPORTED" >> ${_logdir}/main.log echo "## - System supports systemd.......: $SYSTEMD_SUPPORTED" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - Include mod_php...............: $WITH_MOD_PHP" >> ${_logdir}/main.log if $WITH_MOD_PHP ; then echo "## - php version................: $PHP_VERSION" >> ${_logdir}/main.log fi echo "## -" >> ${_logdir}/main.log echo "## - Include mod_proxy_cgi.........: $WITH_MOD_PROXY_FCGI" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - Include mod_dumpio............: $WITH_MOD_DUMPIO" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - Include mod_fcgid.............: $WITH_MOD_FCGID" >> ${_logdir}/main.log if $WITH_MOD_FCGID ; then echo "## - mod_fcgid version..........: $MOD_FCGID_VERSION" >> ${_logdir}/main.log fi echo "## - Include mod_perl..............: $WITH_MOD_PERL" >> ${_logdir}/main.log if $WITH_MOD_PERL ; then echo "## - mod_perl version...........: $MOD_PERL_VERSION" >> ${_logdir}/main.log fi echo "## -" >> ${_logdir}/main.log if [[ ${#_php_socket_arr[@]} -gt 0 ]] ; then echo -n "PHP FPM versions found........:" >> ${_logdir}/main.log for _val in ${_php_socket_arr[@]} ; do IFS=':' read -a _val_arr <<< "${_val}" echo -n " ${_val_arr[0]}" >> ${_logdir}/main.log done echo "## -" >> ${_logdir}/main.log fi echo "## -" >> ${_logdir}/main.log echo "## - log directory installation....: $_logdir" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log echo "APACHE_VERSION=$APACHE_VERSION" >> ${_logdir}/main.log echo "APR_VERSION=$APR_VERSION" >> ${_logdir}/main.log echo "APR_UTIL_VERSION=$APR_UTIL_VERSION" >> ${_logdir}/main.log echo "HTTPD_USER=$HTTPD_USER" >> ${_logdir}/main.log echo "HTTPD_GROUP=$HTTPD_GROUP" >> ${_logdir}/main.log echo "PREFIX=$PREFIX" >> ${_logdir}/main.log echo "BASE_WEBSPACE_DIR=$BASE_WEBSPACE_DIR" >> ${_logdir}/main.log echo "GLOBAL_DOC_ROOT=$GLOBAL_DOC_ROOT" >> ${_logdir}/main.log echo "SERVER_NAME=$SERVER_NAME" >> ${_logdir}/main.log echo "SERVER_ADMIN=$SERVER_ADMIN" >> ${_logdir}/main.log echo "TIMEOUT=$TIMEOUT" >> ${_logdir}/main.log echo "PROXY_TIMEOUT=$PROXY_TIMEOUT" >> ${_logdir}/main.log echo "SUEXEC_DOC_ROOT=$BASE_WEBSPACE_DIR" >> ${_logdir}/main.log echo "IPv4_ADDRESSES=\"$IPv4_ADDRESSES\"" >> ${_logdir}/main.log echo "IPv6_ADDRESSES=\"$IPv6_ADDRESSES\"" >> ${_logdir}/main.log echo "IP_ADDRESSES=\"$IP_ADDRESSES\"" >> ${_logdir}/main.log echo "SEPARATE_LISTEN_DIRECTIVES=$SEPARATE_LISTEN_DIRECTIVES" >> ${_logdir}/main.log echo "STATUS_URL=\"$STATUS_URL\"" >> ${_logdir}/main.log echo "HTTPD_PORT=$HTTPD_PORT" >> ${_logdir}/main.log echo "HTTPD_SSL_PORT=$HTTPD_SSL_PORT" >> ${_logdir}/main.log echo "SYMLINK_INSTALL_DIR=$SYMLINK_INSTALL_DIR" >> ${_logdir}/main.log echo "START_AT_BOOTTIME=$START_AT_BOOTTIME" >> ${_logdir}/main.log echo "INIT_SCRIPT_SUPPORTED=$INIT_SCRIPT_SUPPORTED" >> ${_logdir}/main.log echo "SYSTEMD_SUPPORTED=$SYSTEMD_SUPPORTED" >> ${_logdir}/main.log echo "WITH_MOD_PHP=$WITH_MOD_PHP" >> ${_logdir}/main.log if $WITH_MOD_PHP ; then echo "PHP_VERSION=$PHP_VERSION" >> ${_logdir}/main.log fi echo "WITH_MOD_PROXY_FCGI=$WITH_MOD_PROXY_FCGI" >> ${_logdir}/main.log echo "WITH_MOD_DUMPIO=$WITH_MOD_DUMPIO" >> ${_logdir}/main.log echo "WITH_MOD_FCGID=$WITH_MOD_FCGID" >> ${_logdir}/main.log if $WITH_MOD_FCGID ; then echo "MOD_FCGID_VERSION=$MOD_FCGID_VERSION" >> ${_logdir}/main.log fi echo "WITH_MOD_PERL=$WITH_MOD_PERL" >> ${_logdir}/main.log if $WITH_MOD_PERL ; then echo "MOD_PERL_VERSION=$MOD_PERL_VERSION" >> ${_logdir}/main.log fi echo "" >> ${_logdir}/main.log _pwd=`pwd` if $WITH_MOD_FCGID ; then APXS="$PREFIX/bin/apxs" _builddir_fcgid=${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}_httpd-${APACHE_VERSION} if [ -d "$_builddir_fcgid" ]; then mv $_builddir_fcgid ${_builddir_fcgid}.${_backup_date} fi fi if $WITH_MOD_PERL ; then APXS="$PREFIX/bin/apxs" _builddir_perl=${_srcdir}/mod_perl-${MOD_PERL_VERSION}_httpd-${APACHE_VERSION} if [ -d "$_builddir_perl" ]; then mv $_builddir_perl ${_builddir_perl}.${_backup_date} fi fi _httpdconf=${PREFIX}/conf/httpd.conf _rel_confextra_path=conf/extra echo "PREFIX=$PREFIX" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log echo "APXS=\"$PREFIX/bin/apxs\"" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log echo "_logdir=$_logdir" >> ${_logdir}/main.log echo "_builddir=$_builddir" >> ${_logdir}/main.log echo "_builddir_fcgid=$_builddir_fcgid" >> ${_logdir}/main.log echo "_httpdconf=$_httpdconf" >> ${_logdir}/main.log echo "_rel_confextra_path=$_rel_confextra_path" >> ${_logdir}/main.log echo "_backup_suffix=$_backup_suffix" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log echo "" ## - Disable crontab for user root ## - _crontab_found=false echononl "\tBackup crontab" echo "" >> ${_logdir}/main.log echo "## - Backup crontab" >> ${_logdir}/main.log echo "## - " >> ${_logdir}/main.log echo "crontab -u root -l > $_CRONTAB_BAKUP_FILE" >> ${_logdir}/main.log crontab -u root -l >> $_CRONTAB_BAKUP_FILE 2>> ${_logdir}/main.log if [ "$?" = "0" ]; then echo_ok _crontab_found=true else if [[ ! -s "$_CRONTAB_BAKUP_FILE" ]] ; then echo_skipped warn "No crontab for user 'root'found." else echo_failed error "Backup crontab failed" fi fi if $_crontab_found ; then echononl "\tDisable crontab for user root" echo "" >> ${_logdir}/main.log echo "## - Disable crontab for user root" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "crontab -r -u root" >> ${_logdir}/main.log crontab -r -u root >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fi fi echo "" ## - Install dependency packages for \"apache2\" ## - #echononl "\tInstalling dependency packages for \"apache2\"" # #echo "" >> ${_logdir}/main.log #echo "## - Install dependency packages for \"apache2\"" >> ${_logdir}/main.log #echo "## -" >> ${_logdir}/main.log #echo "DEBIAN_FRONTEND=noninteractive apt-get -q -y build-dep apache2" >> ${_logdir}/main.log # #DEBIAN_FRONTEND=noninteractive apt-get -q -y build-dep apache2 >> ${_logdir}/main.log 2>&1 #if [ "$?" = 0 ]; then # echo_ok #else # echo_failed # fatal "Installing dependency packages for \"apache2\" failed!" #fi ## - get sources.. ## - echo "" >> ${_logdir}/main.log echo "cd $_srcdir" >> ${_logdir}/main.log cd $_srcdir echononl "\tGet source httpd-${APACHE_VERSION}.tar.gz.." if [ ! -f httpd-${APACHE_VERSION}.tar.gz ]; then echo "" >> ${_logdir}/main.log echo "## - Get source httpd-${APACHE_VERSION}.tar.gz.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "wget https://dlcdn.apache.org/httpd/httpd--${APACHE_VERSION}.tar.gz" >> ${_logdir}/main.log wget https://dlcdn.apache.org/httpd/httpd-${APACHE_VERSION}.tar.gz >> ${_logdir}/main 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 ttps://dlcdn.apache.org/apr/apr-${APR_VERSION}.tar.gz" >> ${_logdir}/main.log wget https://dlcdn.apache.org/apr/apr-${APR_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed echononl "\tTry to get source apr-${APR_VERSION}.tar.gz from \"archive.apache.org\" .." echo "## - Get source apr-${APR_VERSION}.tar.gz.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "wget https://archive.apache.org/dist/apr/apr-${APR_VERSION}.tar.gz" >> ${_logdir}/main.log wget https://archive.apache.org/dist/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 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 https://dlcdn.apache.org/apr/apr-util-${APR_UTIL_VERSION}.tar.gz" >> ${_logdir}/main.log wget https://dlcdn.apache.org/apr/apr-util-${APR_UTIL_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed echononl "\tTry to get source apr-util-${APR_UTIL_VERSION}.tar.gz from \"archive.apache.org\" .." echo "## - Get source apr-util-${APR_UTIL_VERSION}.tar.gz.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "wget https://archive.apache.org/apr/apr-util-${APR_UTIL_VERSION}.tar.gz" >> ${_logdir}/main.log wget https://archive.apache.org/dist/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 fi else echo_skipped fi fi echo ## - install apr and apr-util if $APR_INSTALLED ; then echononl "\tapr v $APR_VERSION is already installed.." echo_ok else echo "" >> ${_logdir}/main.log echo "cd $_srcdir" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log cd $_srcdir ## - Move (backup) apr source directory ## - echononl "\tMove (backup) existing source directory apr-$APR_VERSION ..." if [ -d "${_srcdir}/apr-$APR_VERSION" ];then echo "" >> ${_logdir}/main.log echo "## - Move (backup) existing source directory apr-$APR_VERSION ..." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mv ${_srcdir}/apr-$APR_VERSION ${_srcdir}/apr-$APR_VERSION.${_backup_date}" >> ${_logdir}/main.log mv ${_srcdir}/apr-$APR_VERSION ${_srcdir}/apr-$APR_VERSION.${_backup_date} if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot move (backup) existing source directory \"apr-${APR_VERSION.}\" .." fi else echo_skipped fi ## - unpack apr ## - echononl "\tUnpack apr-$APR_VERSION.tar.gz .." echo "" >> ${_logdir}/main.log echo "## - Unpack apr-$APR_VERSION.tar.gz .." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "gunzip < ${_srcdir}/apr-$APR_VERSION.tar.gz | tar -xpf -" >> ${_logdir}/main.log gunzip < ${_srcdir}/apr-$APR_VERSION.tar.gz | tar -xpf - if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot unpack mod_fcgid-${MOD_FCGID_VERSION}.tar.gz" fi echo "" >> ${_logdir}/main.log echo "chown -R root:root apr-$APR_VERSION" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log chown -R root:root apr-$APR_VERSION || fatal "Changing permissions of \"apr-$APR_VERSION\" failed" ## - build and install apr ## - echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log echo "cd apr-$APR_VERSION" >> ${_logdir}/main.log cd apr-$APR_VERSION echo "" >> ${_logdir}/main.log echo "## - Configure apr-${APR_VERSION}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/apr-configure.log for more details" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "LDFLAGS=\"-s\" ./configure --prefix=/usr/local/apr-$APR_VERSION > ${_logdir}/apr-configure.log 2>&1" >> ${_logdir}/main.log echononl "\tConfigure apr-${APR_VERSION}.." LDFLAGS="-s" ./configure --prefix=/usr/local/apr-$APR_VERSION > ${_logdir}/apr-configure.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot configure apr-${APR_VERSION}." fi echo "" >> ${_logdir}/main.log echo "## - Compile apr-${APR_VERSION}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/apr-make.log for more details" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "make > ${_logdir}/apr-make.log 2>&1" >> ${_logdir}/main.log echononl "\tCompile apr-${APR_VERSION}.." make > ${_logdir}/apr-make.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Compiling apr-${APR_VERSION} failed." fi echononl "\tMove (backup) existing install directory apr-${APR_VERSION}.." if [ -d "/usr/local/apr-${APR_VERSION}" ];then echo "" >> ${_logdir}/main.log echo "## - Move (backup) existing install directory apr-${APR_VERSION}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mv /usr/local/apr-${APR_VERSION} /usr/local/apr-${APR_VERSION}.${_backup_date}" >> ${_logdir}/main.log mv /usr/local/apr-${APR_VERSION} /usr/local/apr-${APR_VERSION}.${_backup_date} >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot move (backup) install directory \"/usr/local/apr-${APR_VERSION}\" .." fi else echo_skipped fi echo "" >> ${_logdir}/main.log echo "## - Install apr-${APR_VERSION}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/apr-make_install.log for more details" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "make install > ${_logdir}/apr-make_install.log 2>&1" >> ${_logdir}/main.log echononl "\tInstall apr-${APR_VERSION}.." make install > ${_logdir}/apr-make_install.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Installing apr-${APR_VERSION} failed." fi if [ -h /usr/local/apr ]; then echononl "\tRemove Symlink /usr/local/apr.." echo "" >> ${_logdir}/main.log echo "## - Remove Symlink /usr/local/apr.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "rm /usr/local/apr" >> ${_logdir}/main.log rm /usr/local/apr >> ${_logdir}/main.log if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Removing Symlink /usr/local/apr failed." fi fi echo "" >> ${_logdir}/main.log echo "## - Symlink /usr/local/apr --> apr-${APR_VERSION}" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "ln -s apr-${APR_VERSION} /usr/local/apr" >> ${_logdir}/main.log echononl "\tSymlink /usr/local/apr --> apr-${APR_VERSION}" ln -s apr-${APR_VERSION} /usr/local/apr >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot symlink /usr/local/apr to apr-${APR_VERSION}." fi echo "" >> ${_logdir}/main.log echo "" fi if $APR_UTIL_INSTALLED ; then echononl "\tapr-util v $APR_UTIL_VERSION is already installed.." echo_ok else echo "" >> ${_logdir}/main.log echo "cd $_srcdir" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log cd $_srcdir ## - Move (backup) apr-util source directory ## - echononl "\tMove (backup) existing source directory apr-util-$APR_UTIL_VERSION.." if [ -d "${_srcdir}/apr-util-$APR_UTIL_VERSION" ];then echo "" >> ${_logdir}/main.log echo "## - Move (backup) existing source directory apr-util-$APR_UTIL_VERSIO.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mv ${_srcdir}/apr-util-$APR_UTIL_VERSION ${_srcdir}/apr-util-$APR_UTIL_VERSION.${_backup_date}" >> ${_logdir}/main.log mv ${_srcdir}/apr-util-$APR_UTIL_VERSION ${_srcdir}/apr-util-$APR_UTIL_VERSION.${_backup_date} if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot move (backup) existing source directory \"apr-util-$APR_UTIL_VERSIONN.}\" .." fi else echo_skipped fi ## - unpack apr-util ## - echo "" >> ${_logdir}/main.log echo "## - Unpack apr-util-$APR_UTIL_VERSION.tar.gz.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "gunzip < ${_srcdir}/apr-util-$APR_UTIL_VERSION.tar.gz | tar -xpf -" >> ${_logdir}/main.log echononl "\tUnpack apr-util-$APR_UTIL_VERSION.tar.gz.." gunzip < ${_srcdir}/apr-util-$APR_UTIL_VERSION.tar.gz | tar -xpf - if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot unpack apr-util-$APR_UTIL_VERSION.tar.gz" fi echo "" >> ${_logdir}/main.log echo "chown -R root:root apr-util-$APR_UTIL_VERSION" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log chown -R root:root apr-util-$APR_UTIL_VERSION || fatal "Changing permissions of \"apr-util-$APR_UTIL_VERSION\" failed." ## - build and install apr-util ## - echo "" >> ${_logdir}/main.log echo "cd apr-util-$APR_UTIL_VERSION" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log cd apr-util-$APR_UTIL_VERSION cat <> ${_logdir}/main.log ## - Configure apr-util-${APR_UTIL_VERSION}.. ## - ## - See ${_logdir}/apr-util-configure.log for more details ## - LDFLAGS="-s" \ ./configure --prefix=/usr/local/apr-util-$APR_UTIL_VERSION \ --with-ldap \ --with-openssl \ --with-crypto \ --with-gdbm \ --with-apr=/usr/local/apr > ${_logdir}/apr-util-configure.log 2>&1 EOF echononl "\tConfigure apr-util-${APR_UTIL_VERSION}.." LDFLAGS="-s" \ ./configure --prefix=/usr/local/apr-util-$APR_UTIL_VERSION \ --with-ldap \ --with-openssl \ --with-crypto \ --with-gdbm \ --with-apr=/usr/local/apr > ${_logdir}/apr-util-configure.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot configure apr-util-${APR_UTIL_VERSION}." fi echo "" >> ${_logdir}/main.log echo "## - Compile apr-util-${APR_UTIL_VERSION}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/apr-util-make.log for more details" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "make > ${_logdir}/apr-util-make.log 2>&1" >> ${_logdir}/main.log echononl "\tCompile apr-util-${APR_UTIL_VERSION}.." make > ${_logdir}/apr-util-make.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Compiling apr-util-${APR_UTIL_VERSION} failed." fi echononl "\tMove (backup) existing install directory apr-util-${APR_UTIL_VERSION}.." if [ -d "/usr/local/apr-util-${APR_UTIL_VERSION}" ];then echo "" >> ${_logdir}/main.log echo "## - Move (backup) existing install directory apr-util-${APR_UTIL_VERSION}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mv /usr/local/apr-util-${APR_UTIL_VERSION} /usr/local/apr-util-${APR_UTIL_VERSION}.${_backup_date}" >> ${_logdir}/main.log mv /usr/local/apr-util-${APR_UTIL_VERSION} /usr/local/apr-util-${APR_UTIL_VERSION}.${_backup_date} >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot move (backup) install directory \"/usr/local/apr-util-${APR_UTIL_VERSION}\" .." fi else echo_skipped fi echo "" >> ${_logdir}/main.log echo "## - Install apr-util-${APR_UTIL_VERSION}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/apr-util-make_install.log for more details" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "make install > ${_logdir}/apr-util-make_install.log 2>&1" >> ${_logdir}/main.log echononl "\tInstall apr-util-${APR_UTIL_VERSION}.." make install > ${_logdir}/apr-util-make_install.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Installing apr-util-${APR_UTIL_VERSION} failed." fi if [ -h /usr/local/apr-util ]; then echononl "\tRemove Symlink /usr/local/apr-util.." echo "" >> ${_logdir}/main.log echo "## - Remove Symlink /usr/local/apr-util.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "rm /usr/local/apr-util" >> ${_logdir}/main.log rm /usr/local/apr-util >> ${_logdir}/main.log if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Removing Symlink /usr/local/apr-util failed." fi fi echo "" >> ${_logdir}/main.log echo "## - Symlink /usr/local/apr-util --> apr-util-${APR_UTIL_VERSION}" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "ln -s apr-util-${APR_UTIL_VERSION} /usr/local/apr-util >> ${_logdir}/main.log 2>&1" >> ${_logdir}/main.log ln -s apr-util-${APR_UTIL_VERSION} /usr/local/apr-util >> ${_logdir}/main.log 2>&1 echononl "\tSymlink /usr/local/apr-util --> apr-util-${APR_UTIL_VERSION}" if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot symlink /usr/local/apr-util to apr-util-${APR_UTIL_VERSION}." fi fi echo echo -e "\t---" echo -e "\t--- Installation Apache ${APACHE_VERSION}" echo -e "\t---" echo"" echononl "\tMove (backup) existing source directory ..." if [ -d "$_builddir" ];then echo "" >> ${_logdir}/main.log echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mv $_builddir $_builddir.${_backup_date}" >> ${_logdir}/main.log mv $_builddir $_builddir.${_backup_date} >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot move (backup) source directory \"${_builddir}\" .." fi else echo_skipped fi ## - unpack apache ## - cd $_srcdir echo "" >> ${_logdir}/main.log echo "## - Unpack httpd-$APACHE_VERSION.tar.gz.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "gunzip < ${_srcdir}/httpd-$APACHE_VERSION.tar.gz | tar -xpf -" >> ${_logdir}/main.log echononl "\tUnpack httpd-$APACHE_VERSION.tar.gz.." gunzip < ${_srcdir}/httpd-$APACHE_VERSION.tar.gz | tar -xpf - >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot unpack httpd-$APACHE_VERSION.tar.gz" fi echo "" >> ${_logdir}/main.log echo "chown -R root:root httpd-$APACHE_VERSION" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log chown -R root:root httpd-$APACHE_VERSION || fatal "Changing permissions of \"httpd-$APACHE_VERSION\" failed." if [ "httpd-$APACHE_VERSION" != "`basename $_builddir`" ]; then echo "" >> ${_logdir}/main.log echo "## - Rename source directory to `basename $_builddir`.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mv httpd-$APACHE_VERSION ${_builddir} > ${_logdir}/main.log 2>&1" >> ${_logdir}/main.log echononl "\tRename source directory to `basename $_builddir`.." mv httpd-$APACHE_VERSION ${_builddir} if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot rename httpd-$APACHE_VERSION to $_builddir" fi fi echo "" >> ${_logdir}/main.log echo "cd $_builddir" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log cd $_builddir || fatal "Changing Directory (cd) to \"${_builddir}\" failed" ## - LDFLAGS="-s" --> Remove all symbol table and relocation information from the executable. ## - echo "" >> ${_logdir}/main.log echo "## - Configure apache-${APACHE_VERSION}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/httpd-configure.log for more details" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log echononl "\tConfigure apache-${APACHE_VERSION}.." config_params="--prefix=$PREFIX \ --enable-ssl=static \ --enable-info=static \ --enable-rewrite=static \ --enable-cache=static \ --enable-cache-disk=static \ --enable-so=static \ --enable-cgid=static \ --enable-cgi=static \ --with-mpm=event \ --enable-suexec=static --with-suexec-caller=$HTTPD_USER --with-suexec-logfile=${APACHE_LOG_DIR}/suexec_log --with-suexec-docroot=$SUEXEC_DOC_ROOT --with-suexec-bin=$PREFIX/bin/suexec \ --enable-include=static \ --enable-xml2enc \ --enable-authnz-ldap \ --enable-proxy=static \ --enable-proxy-connect=static \ --enable-proxy-http=static \ --enable-proxy-fdpass=static \ --enable-proxy-fcgi=statuc \ --enable-proxy-wstunnel=static \ --enable-proxy-html=static \ --enable-slotmem-shm \ --with-apr=/usr/local/apr/bin/apr-1-config \ --with-apr-util=/usr/local/apr-util/bin/apu-1-config" if $WITH_MOD_PROXY_FCGI ; then config_params="$config_params \ --enable-proxy-fcgi=static" fi if $WITH_MOD_DUMPIO ; then config_params="$config_params \ --enable-dumpio" fi cat << EOF >> ${_logdir}/main.log LDFLAGS="-s" \ ./configure $config_params EOF LDFLAGS="-s" \ ./configure $config_params > ${_logdir}/httpd-configure.log 2>&1 #LDFLAGS="-s" \ # ./configure --prefix=$PREFIX \ # --with-ssl=/usr/local/openssl \ # --enable-ssl=static \ # --enable-info=static \ # --enable-rewrite=static \ # --enable-cache=static \ # --enable-cache-disk=static \ # --enable-so=static \ # --enable-cgid=static \ # --enable-cgi=static \ # --with-mpm=event \ # --enable-suexec=static --with-suexec-caller=$HTTPD_USER --with-suexec-logfile=${APACHE_LOG_DIR}/suexec_log --with-suexec-docroot=$SUEXEC_DOC_ROOT --with-suexec-bin=$PREFIX/bin/suexec \ # --enable-include=static \ # --with-apr=/usr/local/apr/bin/apr-1-config \ # --with-apr-util=/usr/local/apr-util/bin/apu-1-config \ # > ${_logdir}/httpd-configure.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Configuring apache-${APACHE_VERSION} failed." fi #--enable-dav \ #--enable-dav-fs \ #--enable-deflate \ #--enable-socache-memcache=static \ #--enable-asis \ #--enable-proxy \ #--enable-proxy-connect \ #--enable-proxy-ftp \ #--enable-proxy-http \ #--enable-proxy-balancer \ ## --enable-authz-dbm \ ## --enable-authn-dbm \ ## --with-berkeley-db=/usr/local/BerkeleyDB.4.4.20 \ ## --target=i686-pc-linux-gnu \ ## --build=i686-pc-linux-gnu | tee ../httpd-$APACHE_VERSION-install.log ## --disable-nls \ ## --with-included-apr \ ## --with-dbm=db4 \ ## --enable-mem-cache \ ## --enable-headers \ ## --with-berkeley-db=/usr \ echo "" >> ${_logdir}/main.log echo "## - Compile apache-${APACHE_VERSION}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/httpd-make.log for more details" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "make > ${_logdir}/httpd-make.log 2>&1" >> ${_logdir}/main.log echononl "\tCompile apache-${APACHE_VERSION}.." make > ${_logdir}/httpd-make.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Compiling apache-${APACHE_VERSION} failed." fi echononl "\tBackup existing installation directory.." if [ -d "$PREFIX" ];then echo "" >> ${_logdir}/main.log echo "## - Backup existing installation directory.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mv $PREFIX $PREFIX.${_backup_date}" >> ${_logdir}/main.log mv $PREFIX $PREFIX.${_backup_date} >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot move (backup) existing install directory \"${_builddir}\" .." fi else echo_skipped fi echononl "\tStop Apache Webservice (if running).." if $START_AT_BOOTTIME && $APACHE_WEBSERVICE_RUNNING ; then echo "" >> ${_logdir}/main.log echo "## - Stop Apache Webservice.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log if $SYSTEMD_SUPPORTED ; then echo "systemctl stop apache2" >> ${_logdir}/main.log systemctl stop apache2 >> ${_logdir}/main.log 2>&1 else echo "/etc/init.d/apache2 stop" >> ${_logdir}/main.log /etc/init.d/apache2 stop >> ${_logdir}/main.log 2>&1 fi if [ "$?" = "0" ]; then echo_ok else echo_failed error "Stopping Apache Webservice failed!" fi PIDS="$(ps aux | grep -E "(bin/apache2 |bin/httpd )" | grep -v grep | awk '{print$2}')" declare -i i=0 while [[ -n "${PIDS}" ]]; do if [[ $i -eq 0 ]]; then warn "Stopping Apache Webservice failed." echononl "\tGoing to kill remaining httpd-processes .." echo "" >> ${_logdir}/main.log echo "## - Going to kill remaining httpd-processes" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log fi if [[ $i -gt 10 ]]; then echo_failed erro "Killing remaining httpd-processes failed !" break fi sleep 2 for _PID in $PIDS ; do echo "kill -9 $_PID" >> ${_logdir}/main.log kill -9 $_PID >> ${_logdir}/main.log 2>&1 done PIDS="$(ps aux | grep -E "(bin/apache2 |bin/httpd )" | grep -v grep | awk '{print$2}')" (( i++ )) [[ $i -le 10 ]] && echo_ok done else echo_skipped fi # - Remove start script and/or systemd service file # - if `ls /etc/rc2.d/ | grep apache2 > /dev/null 2>&1` ; then echo "" >> ${_logdir}/main.log echononl "\tRemove init script links" echo "## - Remove init script links" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "update-rc.d -f apache2 remove" >> ${_logdir}/main.log update-rc.d -f apache2 remove >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Removing existing init script links failed." fi fi if [[ -h "/etc/init.d/apache2" ]]; then echo "" >> ${_logdir}/main.log echo "## - Remove existing symlink /etc/init.d/apache2.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "rm /etc/init.d/apache2" >> ${_logdir}/main.log echononl "\tRemove existing symlink /etc/init.d/apache2.." rm /etc/init.d/apache2 >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Remove existing symlink /usr/local/apache2 failed." fi fi if [[ -f "/etc/init.d/apache2" ]]; then echo "" >> ${_logdir}/main.log echo "## - Remove existing file /etc/init.d/apache2.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "rm /etc/init.d/apache2.." >> ${_logdir}/main.log echononl "\tRemove existing file /etc/init.d/apache2" rm /etc/init.d/apache2 >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Remove existing file /usr/local/apache2 failed." fi fi if [[ -f "/etc/systemd/system/apache2.service" ]]; then echo "" >> ${_logdir}/main.log echo "## - Disable apache2 service" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "systemctl disable apache2" >> ${_logdir}/main.log echononl "\tDisable apache2 service.." systemctl disable apache2 >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Disabling apache2 service failed!" fi echo "" >> ${_logdir}/main.log echo "## - Remove existing file /etc/systemd/system/apache2.service.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "rm /etc/systemd/system/apache2.service" >> ${_logdir}/main.log echononl "\tRemove existing file /etc/systemd/system/apache2.service.." rm /etc/systemd/system/apache2.service >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Remove existing file /etc/systemd/system/apache2.service failed." fi echo "" >> ${_logdir}/main.log echo "## - Reload systemd" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "systemctl daemon-reload" >> ${_logdir}/main.log echononl "\tReload systemd.." systemctl daemon-reload >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Reloading systemd failed!" fi fi echo "" >> ${_logdir}/main.log echo "## - Install apache-${APACHE_VERSION}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/httpd-make_install.log for more details" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "make install > ${_logdir}/httpd-make_install.log 2>&1" >> ${_logdir}/main.log echononl "\tInstall apache-${APACHE_VERSION}.." make install > ${_logdir}/httpd-make_install.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed error "Installing apache-${APACHE_VERSION} failed." echononl "\tTrying again..." echo "## - Trying to install apache-${APACHE_VERSION} again.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/httpd-make_install_again.log for more details" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "make install > ${_logdir}/httpd-make_install_again.log 2>&1" >> ${_logdir}/main.log make install > ${_logdir}/httpd-make_install_again.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed echononl "continue anyway [yes/no]: " read OK OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')" while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do echononl "Wrong entry! - repeat [yes/no]: " read OK done [[ $OK = "yes" ]] || fatal "Abbruch durch User" fi fi echo "" ## - do some post-installatin tasks.. ## - echo "" echo -e "\t---" echo -e "\t--- post installation tasks" echo -e "\t---" echo "" if [ -f $_httpdconf ];then cp -a $_httpdconf $_httpdconf.ORIG if $subst_base_path ; then ## - set BasePath to httpd.conf ## - echo "" echo "" >> ${_logdir}/main.log echo "## - httpd.conf: Substitute \"$PREFIX\" with \"/usr/local/apache2\".." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -e \"s#$PREFIX#/usr/local/apache2#g\" $_httpdconf" >> ${_logdir}/main.log echononl "\thttpd.confSubstitute \"$PREFIX\" with \"/usr/local/apache2\".." sed -i$_backup_suffix -e "s#$PREFIX#/usr/local/apache2#g" $_httpdconf >> ${_logdir}/main.log 2>&1 if [ "0" = $? ]; then echo_ok rm -f $_httpdconf$_backup_suffix else echo_failed fi ## - set BasePath to all conf files in conf/extra ## - if [ -d $PREFIX/$_rel_confextra_path ]; then cd $PREFIX/$_rel_confextra_path _files=`ls *.conf` for _file in $_files ;do echo "" echo "" >> ${_logdir}/main.log echo "## - ${file}: Substitute \"$PREFIX\" with \"/usr/local/apache2\".." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -e \"s#$PREFIX#/usr/local/apache2#g\" $_file" >> ${_logdir}/main.log echononl "\t${_file}: Substitute \"$PREFIX\" with \"/usr/local/apache2\"" sed -i$_backup_suffix -e "s#$PREFIX#/usr/local/apache2#g" $_file >> ${_logdir}/main.log 2>&1 if [ "0" = $? ]; then echo_ok rm -f $_file$_backup_suffix else echo_failed fi done fi fi ## - set User echo "" >> ${_logdir}/main.log echo "## - httpd.conf: Set User to \"$HTTPD_USER\".." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*User ).*)$&## \1\n\2${HTTPD_USER}&g\" $_httpdconf" >> ${_logdir}/main.log echononl "\thttpd.conf: Set User to \"$HTTPD_USER\".." sed -i$_backup_suffix -r \ -e "s&^(([ ^t]*User ).*)$&## \1\n\2${HTTPD_USER}&g" \ $_httpdconf if [ "0" = $? ]; then echo_ok rm -f $_httpdconf$_backup_suffix else echo_failed fi ## - set Group echo "" >> ${_logdir}/main.log echo "## - httpd.conf: Set Group to \"$HTTPD_GROUP\".." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*Group ).*)$&## \1\n\2${HTTPD_GROUP}&g\" $_httpdconf" >> ${_logdir}/main.log echononl "\thttpd.conf: Set Group to \"$HTTPD_GROUP\".." sed -i$_backup_suffix -r \ -e "s&^(([ ^t]*Group ).*)$&## \1\n\2${HTTPD_GROUP}&g" \ $_httpdconf if [ "0" = $? ]; then echo_ok rm -f $_httpdconf$_backup_suffix else echo_failed fi ## - set ServerAdmin ## - echo "" >> ${_logdir}/main.log echo "## - httpd.conf: Set ServerAdmin to \"$SERVER_ADMIN\".." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*)#?(ServerAdmin ).*)$&## \1\n\2\3${SERVER_ADMIN}&g\" $_httpdconf" >> ${_logdir}/main.log echononl "\thttpd.conf: Set ServerAdmin to \"$SERVER_ADMIN\".." sed -i$_backup_suffix -r \ -e "s&^(([ ^t]*)#?(ServerAdmin ).*)$&## \1\n\2\3${SERVER_ADMIN}&g" \ $_httpdconf if [ "0" = $? ]; then echo_ok rm -f $_httpdconf$_backup_suffix else echo_failed fi ## - Set ServerName ## - echo "" >> ${_logdir}/main.log echo "## - httpd.conf: Set ServerName to \"$SERVER_NAME\".." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*)#?(ServerName ).*)$&## \1\n\2\3${SERVER_NAME}&g\" $_httpdconf" >> ${_logdir}/main.log echononl "\thttpd.conf: Set ServerName to \"$SERVER_NAME\".." sed -i$_backup_suffix -r \ -e "s&^(([ ^t]*)#?(ServerName ).*)$&## \1\n\2\3${SERVER_NAME}&g" \ $_httpdconf if [ "0" = $? ]; then echo_ok rm -f $_httpdconf$_backup_suffix else echo_failed fi ## - Set TimeOut ## - echo "" >> ${_logdir}/main.log echo "## - httpd.conf: Set Timeout to \"$TIMEOUT\".." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -r -e \"s&^([ ^t]*ServerName .*)$&\1\n\nTimeout ${TIMEOUT}&g\" $_httpdconf" >> ${_logdir}/main.log echononl "\thttpd.conf: Set Timeout to \"$TIMEOUT\".." sed -i$_backup_suffix -r \ -e "s&^([ ^t]*ServerName .*)$&\1\n\nTimeout ${TIMEOUT}&g" \ $_httpdconf if [ "0" = $? ]; then echo_ok rm -f $_httpdconf$_backup_suffix echo "" >> ${_logdir}/main.log echo "## - httpd.conf: Set ProxyTimeout to \"$PROXY_TIMEOUT\".." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -r -e \"s&^([ ^t]*Timeout .*)$&\1\nProxyTimeout ${PROXY_TIMEOUT}&g\" $_httpdconf" >> ${_logdir}/main.log echononl "\thttpd.conf: Set ProxyTimeout to \"$PROXY_TIMEOUT\".." sed -i$_backup_suffix -r \ -e "s&^([ ^t]*Timeout .*)$&\1\nProxyTimeout ${PROXY_TIMEOUT}&g" \ $_httpdconf if [ "0" = $? ]; then echo_ok rm -f $_httpdconf$_backup_suffix else echo_failed fi 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 ## - Create Mutex Directory ## - echo "" >> ${_logdir}/main.log echo "## - Create $MUTEX_DIR\" (if not exists).." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mkdir -p $MUTEX_DIR" >> ${_logdir}/main.log echononl "\tCreate $MUTEX_DIR\" (if not exists).." if [[ ! -d "$MUTEX_DIR" ]]; then mkdir -p $MUTEX_DIR >> ${_logdir}/main.log 2>&1 if [[ $? -eq 0 ]]; then echo_ok else echo_failed fi else echo_skipped fi echo "" >> ${_logdir}/main.log echo "## - Change ownership of '$MUTEX_DIR' to '$HTTPD_USER'.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "chown $HTTPD_USER $MUTEX_DIR" >> ${_logdir}/main.log echononl "\tChange ownership of '$MUTEX_DIR' to '$HTTPD_USER'.." if [[ "$(stat -c '%U' /var/log/apache2/ssl_mutex)" != "$HTTPD_USER" ]]; then chown $HTTPD_USER $MUTEX_DIR >> ${_logdir}/main.log 2>&1 if [[ $? -eq 0 ]]; then echo_ok else echo_failed fi else echo_skipped 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 ## --- echononl "\tCreate directory '$PREFIX/conf/ssl'.." if [[ ! -d "$PREFIX/conf/ssl" ]]; then echo "" >> ${_logdir}/main.log echo "## - Create directory '$PREFIX/conf/ssl' .." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mkdir \"$PREFIX/conf/ssl\"" >> ${_logdir}/main.log 2>&1 mkdir "$PREFIX/conf/ssl" >> ${_logdir}/main.log if [ "0" = "$?" ];then echo_ok else echo_failed warn "Creating directory '$PREFIX/conf/ssl' failed" fi else echo_skipped fi echo "" >> ${_logdir}/main.log if [[ ${OPENSSL_MAJOR_VERSION} -gt 1 ]]; then if [[ -f "${_srcdir}/dhparam-openssl-3.0-4096.pem" ]] ; then echo "## - Copy dhparam.pem to '$PREFIX/conf/ssl/dhparam.pem'.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo -e "\tcp \"${_srcdir}/dhparam-openssl-3.0-4096.pem\".." echononl "\t to \"$PREFIX/conf/ssl/dhparam.pem\"" cp "${_srcdir}/dhparam-openssl-3.0-4096.pem" "$PREFIX/conf/ssl/dhparam.pem" >> ${_logdir}/main.log if [[ $? -eq 0 ]];then echo_ok else echo_failed warn " Copiing 'dhparam-openssl-3.0-4096.pem' to '$PREFIX/conf/ssl/dhparam.pem' failed" fi else warn "Generating dhparam.pem file may take a very long time." echo "## - Generate a dhparam.pem file .." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "openssl dhparam -out $PREFIX/conf/ssl/dhparam.pem 4096" >> ${_logdir}/main.log echononl "\tGenerate a dhparam.pem file - \033[5m\033[1mmay take a lon time\033[m.." openssl dhparam -out $PREFIX/conf/ssl/dhparam.pem 4096 >> ${_logdir}/main.log 2>&1 if [[ $? -eq 0 ]];then echo_ok else echo_failed warn " Generating dhparam.pem file '$PREFIX/conf/ssl/dhparam.pem' failed" fi fi else echo "## - Generate a dhparam.pem file .." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "openssl dhparam -dsaparam -out $PREFIX/conf/ssl/dhparam.pem 4096" >> ${_logdir}/main.log echononl "\tGenerate a dhparam.pem file.." openssl dhparam -dsaparam -out $PREFIX/conf/ssl/dhparam.pem 4096 >> ${_logdir}/main.log 2>&1 if [[ $? -eq 0 ]];then echo_ok else echo_failed warn " Generating dhparam.pem file '$PREFIX/conf/ssl/dhparam.pem' failed" fi fi ## - 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 echo "" >> ${_logdir}/main.log echo "## - Backup file '${PREFIX}/${_rel_confextra_path}/${_file}'.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echononl "\tBackup file '${PREFIX}/${_rel_confextra_path}/${_file}'.." cp -a "${PREFIX}/${_rel_confextra_path}/${_file}" "${PREFIX}/${_rel_confextra_path}/${_file}.ORIG" >> ${_logdir}/main.log 2>&1 if [ "0" = "$?" ];then echo_ok else echo_failed fi #notice="" ## - copy certification files if present.. _failed=false _DEFAULT_SSL_CERT="${PREFIX}/conf/server-bundle.crt" _DEFAULT_SSL_KEY="${PREFIX}/conf/server.key" echo "" >> ${_logdir}/main.log echo "## - Set Symlinks for default Server Key/Cert" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echononl "\tSet Symlinks for default Server Key/Cert.." if [ -f "/var/lib/dehydrated/certs/${SERVER_NAME}/fullchain.pem" -a -f "/var/lib/dehydrated/certs/${SERVER_NAME}/privkey.pem" ]; then ln -s /var/lib/dehydrated/certs/${SERVER_NAME}/fullchain.pem $_DEFAULT_SSL_CERT if [[ $? -gt 0 ]];then _failed=true fi ln -s /var/lib/dehydrated/certs/${SERVER_NAME}/privkey.pem $_DEFAULT_SSL_KEY if [[ $? -gt 0 ]];then _failed=true fi if $_failed ; then echo_failed else echo_ok fi elif [ -f $_SSL_SNAKEOIL_CERT -a -f $_SSL_SNAKEOIL_KEY ]; then ln -s $_SSL_SNAKEOIL_CERT $_DEFAULT_SSL_CERT if [[ $? -gt 0 ]];then _failed=true fi ln -s $_SSL_SNAKEOIL_KEY $_DEFAULT_SSL_KEY if [[ $? -gt 0 ]];then _failed=true fi if $_failed ; then echo_failed else echo_ok fi elif [ -f $_srcdir/server-bundle.crt -a -f $_srcdir/server.key ];then cp $_srcdir/server-bundle.crt $_DEFAULT_SSL_CERT if [[ $? -gt 0 ]];then _failed=true fi cp $_srcdir/server.key $_DEFAULT_SSL_KEY if [[ $? -gt 0 ]];then _failed=true fi if $_failed ; then echo_failed else echo_ok fi else echo_skipped warn "SSL Connections are enabled but no (default) certificates\n\t are present. So the webserver will not start." fi if [[ -n "$IP_ADDRESSES" ]] && $SEPARATE_LISTEN_DIRECTIVES ; then _substitute_ssl="" for _ip in $IP_ADDRESSES ; do _substitute_ssl="$_substitute_ssl\nListen $_ip:${HTTPD_SSL_PORT}" done echo "" >> ${_logdir}/main.log cat <> ${_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 Diffie Hellman Ephemeral Parameters ## - echononl "\t$_file: Set Diffie Hellman Ephemeral Parameters.." if ! grep -q SSLOpenSSLConfCmd ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix 2> /dev/null ; then if [[ ! -f "${PREFIX}/conf/ssl/dhparam.pem" ]] ; then echo_skipped warn "Diffie Hellman Parameter file (${PREFIX}/conf/ssl/dhparam.pem') NOT found!" else echo "" >> ${_logdir}/main.log echo "## - $_file: Set Diffie Hellman Ephemeral Parameters.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log cat <> ${_logdir}/main.log perl -i$_backup_suffix -n -p \\ -e "s&^(#\s*SSL\s+Cipher\s+Suite:.*)&# Diffie Hellman Ephemeral Parameters\n#\nSSLOpenSSLConfCmd DHParameters \"${PREFIX}/conf/ssl/dhparam.pem\"\n\n\1&" \\ ${PREFIX}/${_rel_confextra_path}/${_file} EOF perl -i$_backup_suffix -n -p \ -e "s&^(#\s*SSL\s+Cipher\s+Suite:.*)&# Diffie Hellman Ephemeral Parameters\n#\nSSLOpenSSLConfCmd DHParameters \"${PREFIX}/conf/ssl/dhparam.pem\"\n\n\1&" \ ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 if [ "0" = $? ]; then if grep -q SSLOpenSSLConfCmd ${PREFIX}/${_rel_confextra_path}/${_file} 2> /dev/null ; then echo_ok rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix else echo_failed fi else echo_failed fi fi else echo_skipped fi ## - Set SSLCipherSuite ## - echo "" >> ${_logdir}/main.log echo "## - $_file: Set SSLCipherSuite.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*SSLCipherSuite ).*)$&## \1\n\2${_SSL_Cipher_Suite}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log echononl "\t$_file: Set SSLCipherSuite.." sed -i$_backup_suffix -r \ -e "s&^(([ ^t]*SSLCipherSuite ).*)$&## \1\n\2${_SSL_Cipher_Suite}&g" \ ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 if [ "0" = $? ]; then echo_ok rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix else echo_failed fi ## - Set SSLCertificateFile ## - echo "" >> ${_logdir}/main.log echo "## - $_file: Set SSLCertificateFile.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*SSLCertificateFile ).*)$&## \1\n\2\\\"${PREFIX}/conf/server-bundle.crt\\\"&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log echononl "\t$_file: Set SSLCertificateFile.." sed -i$_backup_suffix -r \ -e "s&^(([ ^t]*SSLCertificateFile ).*)$&## \1\n\2\"${PREFIX}/conf/server-bundle.crt\"&g" \ ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 if [ "0" = $? ]; then echo_ok rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix else echo_failed fi ## - Set SSLProxyCipherSuite ## - echo "" >> ${_logdir}/main.log echo "## - $_file: Set SSLProxyCipherSuite.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*SSLProxyCipherSuite ).*)$&## \1\n\2${_SSL_Cipher_Suite}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log echononl "\t$_file: Set SSLProxyCipherSuite.." sed -i$_backup_suffix -r \ -e "s&^(([ ^t]*SSLProxyCipherSuite ).*)$&## \1\n\2${_SSL_Cipher_Suite}&g" \ ${PREFIX}/${_rel_confextra_path}/${_file} >> ${_logdir}/main.log 2>&1 if [ "0" = $? ]; then echo_ok rm ${PREFIX}/${_rel_confextra_path}/${_file}$_backup_suffix else echo_failed fi ## - Set SSLProtocol ## - echo "" >> ${_logdir}/main.log echo "## - $_file: Set SSLProtocol.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*SSLProtocol ).*)$&## \1\n\2-all +TLSv1.2 +TLSv1.3&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log echononl "\t$_file: Set SSLProtocol.." sed -i$_backup_suffix -r \ -e "s&^(([ ^t]*SSLProtocol ).*)$&## \1\n\2-all +TLSv1.2 +TLSv1.3&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\2-all +TLSv1.2 +TLSv1.3&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log echononl "\t$_file: Set SSLProxyProtocol.." sed -i$_backup_suffix -r \ -e "s&^(([ ^t]*SSLProxyProtocol ).*)$&## \1\n\2-all +TLSv1.2 +TLSv1.3&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 ## - _key="SSLHonorCipherOrder" _val="${_SSL_HONOR_CIPHER_ORDER}" echo "" >> ${_logdir}/main.log echo "## - $_file: Set ${_key}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*#*[ ^t]*${_key} ).*)$&##\1\n${_key} ${_val}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log echononl "\t$_file: Set ${_key}.." sed -i$_backup_suffix -r \ -e "s&^(([ ^t]*#*[ ^t]*${_key} ).*)$&##\1\n${_key} ${_val}&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 SSLUseStapling ## - _key="SSLUseStapling" _val="${_SSL_USE_STAPLING}" echo "" >> ${_logdir}/main.log echo "## - $_file: Set ${_key}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*#*[ ^t]*${_key} ).*)$&##\1\n${_key} ${_val}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log echononl "\t$_file: Set ${_key}.." sed -i$_backup_suffix -r \ -e "s&^(([ ^t]*#*[ ^t]*${_key} ).*)$&##\1\n${_key} ${_val}&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 SSLUseStapling ## - _key="SSLStaplingCache" _val="${_SSL_STAPLING_CACHE}" echo "" >> ${_logdir}/main.log echo "## - $_file: Set ${_key}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*#*[ ^t]*${_key} ).*)$&##\1\n${_key} ${_val}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log echononl "\t$_file: Set ${_key}.." sed -i$_backup_suffix -r \ -e "s&^(([ ^t]*#*[ ^t]*${_key} ).*)$&##\1\n${_key} ${_val}&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 SSLSessionTickets ## - _key="SSLSessionTickets" _val="${_SSL_SESSION_TICKETS}" echo "" >> ${_logdir}/main.log echo "## - $_file: Set ${_key}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echononl "\t$_file: Set ${_key}.." if $(grep -i -q -E "^\s*#?\s*${_key}" ${PREFIX}/${_rel_confextra_path}/${_file} 2>> ${_logdir}/main.log) ; then echo "sed -i$_backup_suffix -r -e \"s&^(([ ^t]*#*[ ^t]*${_key} ).*)$&##\1\n${_key} ${_val}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log sed -i$_backup_suffix -r \ -e "s&^(([ ^t]*#*[ ^t]*${_key} ).*)$&##\1\n${_key} ${_val}&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 echo "sed -i$_backup_suffix -r -e \"s&^([ ^t]*#*[ ^t]*SSLHonorCipherOrder.*)&\1\n${_key} ${_val}&g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log sed -i$_backup_suffix -r \ -e "s&^([ ^t]*SSLHonorCipherOrder .*)$&\1\n${_key} ${_val}&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 fi ## - Set SSLCompression ## - _key="SSLCompression" _val="${_SSL_COMPRESSION}" ssl_compression_comment="# SSLCompression # # Note: # Enabling compression causes security issues in most setups (the so called CRIME attack)." echo "" >> ${_logdir}/main.log echo "## - $_file: Set ${_key}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log cat <> ${_logdir}/main.log perl -i$_backup_suffix -n -p \\ -e "s&^(\s*${_key}Order\s+.*)&\1\n\n${ssl_compression_comment}\n${_key} ${_val}&" \\ ${PREFIX}/${_rel_confextra_path}/${_file} EOF echononl "\t$_file: Set ${_key}.." perl -i$_backup_suffix -n -p \ -e "s&^(\s*SSLHonorCipherOrder\s+.*)&\1\n\n${ssl_compression_comment}\n${_key} ${_val}&" \ ${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 echo "" >> ${_logdir}/main.log echo "## - Backup file '${PREFIX}/${_rel_confextra_path}/${_file}'.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echononl "\tBackup file '${PREFIX}/${_rel_confextra_path}/${_file}'.." cp -a "${PREFIX}/${_rel_confextra_path}/${_file}" "${PREFIX}/${_rel_confextra_path}/${_file}.ORIG" >> ${_logdir}/main.log 2>&1 if [ "0" = "$?" ];then 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 echo "" >> ${_logdir}/main.log echo "## - Backup file '${PREFIX}/${_rel_confextra_path}/${_file}'.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echononl "\tBackup file '${PREFIX}/${_rel_confextra_path}/${_file}'.." cp -a "${PREFIX}/${_rel_confextra_path}/${_file}" "${PREFIX}/${_rel_confextra_path}/${_file}.ORIG" >> ${_logdir}/main.log 2>&1 if [ "0" = "$?" ];then 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 echo "" >> ${_logdir}/main.log echo "## - Backup file '${PREFIX}/${_rel_confextra_path}/${_file}'.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echononl "\tBackup file '${PREFIX}/${_rel_confextra_path}/${_file}'.." cp -a "${PREFIX}/${_rel_confextra_path}/${_file}" "${PREFIX}/${_rel_confextra_path}/${_file}.ORIG" >> ${_logdir}/main.log 2>&1 if [ "0" = "$?" ];then 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 "## - Backup file '${PREFIX}/${_rel_confextra_path}/${_file}'.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echononl "\tBackup file '${PREFIX}/${_rel_confextra_path}/${_file}'.." cp -a "${PREFIX}/${_rel_confextra_path}/${_file}" "${PREFIX}/${_rel_confextra_path}/${_file}.ORIG" >> ${_logdir}/main.log 2>&1 if [ "0" = "$?" ];then echo_ok else echo_failed fi echo "" >> ${_logdir}/main.log echo "## - Move '${_file}' to '/tmp' directory.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mv \"${PREFIX}/${_rel_confextra_path}/${_file}\" \"/tmp/${_file}\"" >> ${_logdir}/main.log echononl "\tMove '${_file}' to '/tmp' directory.." mv "${PREFIX}/${_rel_confextra_path}/${_file}" "/tmp/${_file}" >> ${_logdir}/main.log if [[ $? -gt 0 ]]; then echo_failed echononl "continue anyway [yes/no]: " read OK OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')" while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do echononl "Wrong entry! - repeat [yes/no]: " read OK done [[ $OK = "yes" ]] || fatal "Abbruch durch User" else echo_ok fi echononl "\tWrite new file $\033[1m{PREFIX}/${_rel_confextra_path}/${_file}\033[m" > "${PREFIX}/${_rel_confextra_path}/${_file}" _found=false regex_match_mpm_event_module_start="[[:space:]]*> "${PREFIX}/${_rel_confextra_path}/${_file}" echo "" >> "${PREFIX}/${_rel_confextra_path}/${_file}" _found=true continue fi if $_found && [[ $line =~ $regex_match_mpm_event_module_end ]] ; then echo "" >> "${PREFIX}/${_rel_confextra_path}/${_file}" echo "${line}" >> "${PREFIX}/${_rel_confextra_path}/${_file}" _found=false continue fi if $_found && [[ $line =~ MaxConnectionsPerChild ]]; then _key="MaxConnectionsPerChild" _val="5000" line="$(sed "s/^\(\s*\)\($_key\)\(\s*\)\(.*\)$/\1\2 ${_val}/g" <<< "${line}")" echo "${line}" >> "${PREFIX}/${_rel_confextra_path}/${_file}" elif $_found && [[ $line =~ MaxRequestWorkers ]]; then _key="MaxRequestWorkers" _val="400" line="$(sed "s/^\(\s*\)\($_key\)\(\s*\)\(.*\)$/\1\2\3${_val}/g" <<< "${line}")" echo "${line}" >> "${PREFIX}/${_rel_confextra_path}/${_file}" elif $_found && [[ $line =~ StartServers ]] ; then echo "${line}" >> "${PREFIX}/${_rel_confextra_path}/${_file}" cat <> "${PREFIX}/${_rel_confextra_path}/${_file}" # ServerLimit # # Upper limit on configurable number of processes ServerLimit 16 EOF elif $_found && [[ $line =~ ThreadsPerChild ]] ; then _key="ThreadsPerChild" _val="25" line="$(sed "s/^\(\s*\)\($_key\)\(\s*\)\(.*\)$/\1\2\3${_val}/g" <<< "${line}")" echo "${line}" >> "${PREFIX}/${_rel_confextra_path}/${_file}" cat <> "${PREFIX}/${_rel_confextra_path}/${_file}" # ThreadLimit # # Sets the upper limit on the configurable number of threads per child process ThreadLimit 25 EOF else echo "${line}" >> "${PREFIX}/${_rel_confextra_path}/${_file}" fi done <"/tmp/${_file}" echo_ok 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 # # echo "" >> ${_logdir}/main.log # echo "## - Backup file '${PREFIX}/${_rel_confextra_path}/${_file}'.." >> ${_logdir}/main.log # echo "## -" >> ${_logdir}/main.log # echononl "\tBackup file '${PREFIX}/${_rel_confextra_path}/${_file}'.." # cp -a "${PREFIX}/${_rel_confextra_path}/${_file}" "${PREFIX}/${_rel_confextra_path}/${_file}.ORIG" >> ${_logdir}/main.log 2>&1 # if [ "0" = "$?" ];then # echo_ok # else # echo_failed # fi # # # ## - Set MaxConnectionsPerChild # ## - # echononl "\t${_file}: Set MaxConnectionsPerChild" # echo "" >> ${_logdir}/main.log # echo "## -" >> ${_logdir}/main.log # echo "## - ${_file}: Set MaxConnectionsPerChild" >> ${_logdir}/main.log # # _key="MaxConnectionsPerChild" # _val="5000" # # echo "sed -i -r -e \"s/^(\s*)($_key)(.*)$/\1\2 $_val/g\" ${PREFIX}/${_rel_confextra_path}/${_file}" >> ${_logdir}/main.log # sed -i -r -e "s/^(\s*)($_key)(.*)$/\1\2 $_val/g" ${PREFIX}/${_rel_confextra_path}/${_file} # if [ "$?" != "0" ]; then # _failed=true # fi # if ! $_failed ; then # echo_ok # else # echo_failed # warn "Setting MaxConnectionsPerChild in file \"${_file}\" failed.." # fi #fi ## - Enable Module mod_expires ## - ## - Uncomment "LoadModule" for mod_expires module=mod_expires echo "" >> ${_logdir}/main.log echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log echononl "\thttpd.conf: Uncomment LoadModule $module.." sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Including \"LoadModule $module\" failed.." fi ## - Enable Module xml2enc_module (needed for proxy_html_module ## - ## - Uncomment "LoadModule" for xml2enc_module module=xml2enc_module echo "" >> ${_logdir}/main.log echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log echononl "\thttpd.conf: Uncomment LoadModule $module.." sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Including \"LoadModule $module\" failed.." fi ## - Uncomment "LoadModule" for deflate_module dav_module dav_fs_module ## - for module in deflate_module dav_module dav_fs_module ; do echo "" >> ${_logdir}/main.log echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log echononl "\thttpd.conf: Uncomment LoadModule $module.." sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Including \"LoadModule $module\" failed.." fi done ## - Uncomment "LoadModule" for http2_module ## - module=http2_module echo "" >> ${_logdir}/main.log echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log echononl "\thttpd.conf: Uncomment LoadModule $module.." sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Including \"LoadModule $module\" failed.." fi ## - Uncomment "LoadModule" for LDAP support ## - for module in authnz_ldap_module ldap_module ; do echo "" >> ${_logdir}/main.log echo "## - httpd.conf: Uncomment LoadModule $module.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "sed -i -r -e \"s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g\" $_httpdconf" >> ${_logdir}/main.log echononl "\thttpd.conf: Uncomment LoadModule $module.." sed -i -r -e "s/^\s*#\s*(LoadModule)(.*$module.*)$/\1\2/g" $_httpdconf >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Including \"LoadModule $module\" failed.." fi done if $WITH_MOD_FCGID ; then ## - Install Apache Module mod_fcgid ## - echo echo echo -e "\t---" echo -e "\t--- Install mod_fcgid $MOD_FCGID_VERSION --" echo -e "\t---" echo echo "" >> ${_logdir}/main.log echo "cd $_srcdir" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log cd $_srcdir echononl "\tGet source mod_fcgid-${MOD_FCGID_VERSION}.tar.gz.." if [ ! -f mod_fcgid-${MOD_FCGID_VERSION}.tar.gz ]; then echo "" >> ${_logdir}/main.log echo "## - Get source mod_fcgid-${MOD_FCGID_VERSION}.tar.gz.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "wget https://dlcdn.apache.org/httpd/mod_fcgid/mod_fcgid-${MOD_FCGID_VERSION}.tar.gz" >> ${_logdir}/main.log wget https://dlcdn.apache.org/httpd/mod_fcgid/mod_fcgid-${MOD_FCGID_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed echononl "\tTry to get source mod_fcgid-${MOD_FCGID_VERSION}.tar.gz from \"archive.apache.org\" .." echo "## - Get source mod_fcgid-${MOD_FCGID_VERSION}.tar.gz.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "wget https://archive.apache.org/dist/httpd/mod_fcgid/mod_fcgid-${MOD_FCGID_VERSION}.tar.gz" >> ${_logdir}/main.log wget https://archive.apache.org/dist/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}.tar.gz" fi fi else echo_skipped fi echononl "\tMove (backup) existing source directory ..." if [ -d "$_builddir_fcgid" ];then echo "" >> ${_logdir}/main.log echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mv $_builddir_fcgid $_builddir_fcgid.${_backup_date}" >> ${_logdir}/main.log mv $_builddir_fcgid $_builddir_fcgid.${_backup_date} >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot move (backup) source directory \"${_builddir_fcgid}\" .." fi else echo_skipped fi if [ -d "${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}" ]; then echo "" >> ${_logdir}/main.log echo "## - Backup directory ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log echononl "\tBackup directory ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.." mv ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION} ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.${_backup_date} if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot move (backup) source directory \"${_builddir_fcgid}\" .." fi fi ## - Unpack mod_fcgid ## - echo "" >> ${_logdir}/main.log echo "## - Unpack mod_fcgid-${MOD_FCGID_VERSION}.tar.gz.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "gunzip < ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.tar.gz | tar -xpf -" >> ${_logdir}/main.log echononl "\tUnpack mod_fcgid-${MOD_FCGID_VERSION}.tar.gz.." gunzip < ${_srcdir}/mod_fcgid-${MOD_FCGID_VERSION}.tar.gz | tar -xpf - >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot unpack mod_fcgid-${MOD_FCGID_VERSION}.tar.gz" fi echo "" >> ${_logdir}/main.log echo "chown -R root:root mod_fcgid-${MOD_FCGID_VERSION}" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log chown -R root:root mod_fcgid-${MOD_FCGID_VERSION} || fatal "Changing permissions of \"mod_fcgid-${MOD_FCGID_VERSION}\" failed" echo "" >> ${_logdir}/main.log echo "## - Rename mod_fcgid-${MOD_FCGID_VERSION} to `basename $_builddir_fcgid` .." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mv mod_fcgid-${MOD_FCGID_VERSION} $_builddir_fcgid" >> ${_logdir}/main.log echononl "\tRename mod_fcgid-${MOD_FCGID_VERSION} to `basename $_builddir_fcgid` .." mv mod_fcgid-${MOD_FCGID_VERSION} $_builddir_fcgid if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot rename mod_fcgid-${MOD_FCGID_VERSION} to $_builddir_fcgid" fi echo "" >> ${_logdir}/main.log echo "cd $_builddir_fcgid" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log cd $_builddir_fcgid || fatal "Changing Directory (cd) to \"${_builddir_fcgid}\" failed" ## - Build and install mod_fcgid ## - [ -f "$APXS" ] || fatal "Cannot find \"$APXS\"" echo "" >> ${_logdir}/main.log echo "## - Configure (configure.apxs) mod_fcgid.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/mod_fcgid-configure.apxs.log" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "APXS=$APXS ./configure.apxs > ${_logdir}/mod_fcgid-configure.apxs.log 2>&1" >> ${_logdir}/main.log echononl "\tConfigure (configure.apxs) mod_fcgid .." APXS=$APXS ./configure.apxs > ${_logdir}/mod_fcgid-configure.apxs.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot configure (configure.apxs) mod_fcgid. See ${_logdir}/mod_fcgid-configure.apxs.log" fi echo "" >> ${_logdir}/main.log echo "## - Build (make) mod_fcgid.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/mod_fcgid-make.log" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "make > ${_logdir}/mod_fcgid-make.log 2>&1" >> ${_logdir}/main.log echononl "\tBuild (make) mod_fcgid.." make > ${_logdir}/mod_fcgid-make.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot build (make) mod_fcgid. See ${_logdir}/mod_fcgid-make.log." fi echo "" >> ${_logdir}/main.log echo "## - Install (make install) mod_fcgid .." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/mod_fcgid-make_install.log" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "make install > ${_logdir}/mod_fcgid-make_install.log 2>&1" >> ${_logdir}/main.log echononl "\tInstall (make install) mod_fcgid .." make install > ${_logdir}/mod_fcgid-make_install.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot install (make install) mod_fcgid. See ${_logdir}/mod_fcgid-make_install.log" fi echo "" >> ${_logdir}/main.log echo "## - httpd.conf: Adjust mod_fcgid module.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log cat <> ${_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 = 128M\n \# post_max_size = 512M\n FcgidMaxRequestLen 536870912\n\n \# By default, PHP FastCGI processes exit after handling 500 requests,\n \# and they may exit after this module has already connected to the\n \# application and sent the next request. When that occurs, an error\n \# will be logged and 500 Internal Server Error will be returned to\n \# the client. This PHP behavior can be disabled by setting\n \# PHP_FCGI_MAX_REQUESTS to 0, but that can be a problem if the PHP\n \# application leaks resources. Alternatively, PHP_FCGI_MAX_REQUESTS\n \# can be set to a much higher value than the default to reduce the\n \# frequency of this problem. FcgidMaxRequestsPerProcess can be set to\n \# a value less than or equal to PHP_FCGI_MAX_REQUESTS to resolve the\n \# roblem.\n FcgidMaxRequestsPerProcess 499\n\n \# in Abstimmung mit PHP Variablen\n \# max_execution_time = 180\n \#\n \# Default: 40\n \#\n \#FcgidIOTimeout 181\n FcgidIOTimeout 600\n FcgidIdleTimeout 600\n FcgidProcessLifeTime 600\n FcgidConnectTimeout 600\n\n#" \$_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 = 128M\n \# post_max_size = 512M\n FcgidMaxRequestLen 536870912\n\n \# By default, PHP FastCGI processes exit after handling 500 requests,\n \# and they may exit after this module has already connected to the\n \# application and sent the next request. When that occurs, an error\n \# will be logged and 500 Internal Server Error will be returned to\n \# the client. This PHP behavior can be disabled by setting\n \# PHP_FCGI_MAX_REQUESTS to 0, but that can be a problem if the PHP\n \# application leaks resources. Alternatively, PHP_FCGI_MAX_REQUESTS\n \# can be set to a much higher value than the default to reduce the\n \# frequency of this problem. FcgidMaxRequestsPerProcess can be set to\n \# a value less than or equal to PHP_FCGI_MAX_REQUESTS to resolve the\n \# roblem.\n FcgidMaxRequestsPerProcess 499\n\n \# in Abstimmung mit PHP Variablen\n \# max_execution_time = 180\n \#\n \# Default: 40\n \#\n \#FcgidIOTimeout 181\n FcgidIOTimeout 600\n FcgidIdleTimeout 600\n FcgidProcessLifeTime 600\n FcgidConnectTimeout 600\n\n#" $_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://dlcdn.apache.org/perl/mod_perl-${MOD_PERL_VERSION}.tar.gz" >> ${_logdir}/main.log wget https://dlcdn.apache.org/perl/mod_perl-${MOD_PERL_VERSION}.tar.gz >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed echononl "\tTry to get source mod_perl-${MOD_PERL_VERSION}.tar.gz from \"archive.apache.org\" .." echo "## - Get source mod_perl-${MOD_PERL_VERSION}.tar.gz.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "wget https://archive.apache.org/dist/perl/mod_perl-${MOD_PERL_VERSION}.tar.gz" >> ${_logdir}/main.log wget https://archive.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}.tar.gz" fi fi else echo_skipped fi echononl "\tMove (backup) existing source directory ..." if [ -d "$_builddir_perl" ];then echo "" >> ${_logdir}/main.log echo "## - Move (backup) existing source directory ..." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mv $_builddir_perl $_builddir_perl.${_backup_date}" >> ${_logdir}/main.log mv $_builddir_perl $_builddir_perl.${_backup_date} >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot move (backup) source directory \"${_builddir_perl}\" .." fi else echo_skipped fi if [ -d "${_srcdir}/mod_perl-${MOD_PERL_VERSION}" ]; then echo "" >> ${_logdir}/main.log echo "## - Backup directory ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log echononl "\tBackup directory ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.." mv ${_srcdir}/mod_perl-${MOD_PERL_VERSION} ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.${_backup_date} if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot move (backup) source directory \"${_builddir_perl}\" .." fi fi ## - Unpack mod_perl ## - echo "" >> ${_logdir}/main.log echo "## - Unpack mod_perl-${MOD_PERL_VERSION}.tar.gz.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "gunzip < ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.tar.gz | tar -xpf -" >> ${_logdir}/main.log echononl "\tUnpack mod_perl-${MOD_PERL_VERSION}.tar.gz.." gunzip < ${_srcdir}/mod_perl-${MOD_PERL_VERSION}.tar.gz | tar -xpf - >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot unpack mod_perl-${MOD_PERL_VERSION}.tar.gz" fi echo "" >> ${_logdir}/main.log echo "chown -R root:root mod_perl-${MOD_PERL_VERSION}" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log chown -R root:root mod_perl-${MOD_PERL_VERSION} || fatal "Changing permissions of \"mod_perl-${MOD_PERL_VERSION}\" failed" echo "" >> ${_logdir}/main.log echo "## - Rename mod_perl-${MOD_PERL_VERSION} to `basename $_builddir_perl` .." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mv mod_perl-${MOD_PERL_VERSION} $_builddir_perl" >> ${_logdir}/main.log echononl "\tRename mod_perl-${MOD_PERL_VERSION} to `basename $_builddir_perl` .." mv mod_perl-${MOD_PERL_VERSION} $_builddir_perl if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot rename mod_perl-${MOD_PERL_VERSION} to $_builddir_perl" fi echo "" >> ${_logdir}/main.log echo "cd $_builddir_perl" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log cd $_builddir_perl || fatal "Changing Directory (cd) to \"${_builddir_perl}\" failed" ## - Build and install mod_perl ## - [ -f "$APXS" ] || fatal "Cannot find \"$APXS\"" echo "" >> ${_logdir}/main.log echo "## - Configure mod_perl.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/mod_perl-configure.log" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "perl Makefile.PL MP_AP_PREFIX=$PREFIX > ${_logdir}/mod_perl-configure.log 2>&1" >> ${_logdir}/main.log echononl "\tConfigure mod_perl .." perl Makefile.PL MP_AP_PREFIX=$PREFIX > ${_logdir}/mod_perl-make.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot configure (configure.apxs) mod_perl. See ${_logdir}/mod_perl-configure.apxs.log" fi echo "" >> ${_logdir}/main.log echo "## - Build (make) mod_perl.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/mod_perl-make.log" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "make > ${_logdir}/mod_perl-make.log 2>&1" >> ${_logdir}/main.log echononl "\tBuild (make) mod_perl.." make > ${_logdir}/mod_perl-make.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot build (make) mod_perl. See ${_logdir}/mod_perl-make.log." fi echo "" >> ${_logdir}/main.log echo "## - Install (make install) mod_perl .." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - See ${_logdir}/mod_perl-make_install.log" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "make install > ${_logdir}/mod_perl-make_install.log 2>&1" >> ${_logdir}/main.log echononl "\tInstall (make install) mod_perl .." make install > ${_logdir}/mod_perl-make_install.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Cannot install (make install) mod_perl. See ${_logdir}/mod_perl-make_install.log" fi echo "" >> ${_logdir}/main.log echo "## - httpd.conf: Load perl module.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log cat <> ${_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 # if $WITH_MOD_PERL ## - Some final tasks ## - echo echo echo -e "\t---" echo -e "\t--- Some final tasks --" echo -e "\t---" echo if $WITH_MOD_PHP ; then # - If PHP version $PHP_VERSION is already installed # - if [[ -d "/usr/local/php-${PHP_VERSION}-httpd-${APACHE_VERSION}" ]] \ && [[ -d "/usr/local/src/php/php-${PHP_VERSION}_httpd-${APACHE_VERSION}" ]]; then echo "" >> ${_logdir}/main.log echo "## - Change into directory /usr/local/src/php/${PHP_VERSION}_${APACHE_VERSION}" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "cd \"/usr/local/src/php/php-${PHP_VERSION}_httpd-${APACHE_VERSION}\"" >> ${_logdir}/main.log cd "/usr/local/src/php/php-${PHP_VERSION}_httpd-${APACHE_VERSION}" >> ${_logdir}/main.log if [[ $? -eq 0 ]]; then echo "" >> ${_logdir}/main.log echo "## - make install for PHP Version ${PHP_VERSION}" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echononl "\t'make install' for PHP Version ${PHP_VERSION}" make install > /dev/null 2>&1 if [[ $? -eq 0 ]]; then echo_ok else echo_failed error "make install for PHP Version ${PHP_VERSION} failed" fi fi PHP_MAJOR_VERSION="$(echo $PHP_VERSION | cut -d '.' -f1)" echo "" >> ${_logdir}/main.log echo "## - Adjust httpd.conf for handling mod_php.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log cat <> ${_logdir}/main.log sed -i -r -e "s&(^\s*LoadModule php${PHP_MAJOR_VERSION}_module.*$)&\1\n\n AddType application/x-httpd-php .php\n AddType application/x-httpd-php-source .phps\n&" ${PREFIX}/conf/httpd.conf EOF echononl "\tAdjust httpd.conf for handling mod_php.." sed -i -r \ -e "s&(^\s*LoadModule php${PHP_MAJOR_VERSION}_module.*$)&\1\n\n AddType application/x-httpd-php .php\n AddType application/x-httpd-php-source .phps\n&" ${PREFIX}/conf/httpd.conf if [[ $? -eq 0 ]]; then echo_ok else echo_failed fatal "Loading perl module (file: /usr/local/apache2/conf/httpd.conf) failed" fi echo "" fi fi if $SYMLINK_INSTALL_DIR ; then echononl "\tRemove Symlink /usr/local/apache2.." if [[ -h "/usr/local/apache2" ]]; then echo "" >> ${_logdir}/main.log echo "## - Remove Symlink /usr/local/apache2" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "rm -f /usr/local/apache2" >> ${_logdir}/main.log rm -f /usr/local/apache2 >> ${_logdir}/main.log if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Removing symlink /usr/local/apache2 failed" fi else echo_skipped fi echo "" >> ${_logdir}/main.log echo "## - Set Symlink /usr/local/apache2.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "ln -s `basename $PREFIX` /usr/local/apache2" >> ${_logdir}/main.log echononl "\tSet Symlink /usr/local/apache2.." ln -s `basename $PREFIX` /usr/local/apache2 >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Setting symlink /usr/local/apache2 failed" fi fi if $INIT_SCRIPT_SUPPORTED ; then ## - Priovide LSB - Add Block for run-time dependencies to apachectl ## - _backup_apachectl=`mktemp` _failed=false echo "" >> ${_logdir}/main.log echo "## - Priovide LSB - Add Block for run-time dependencies to apachectl.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echononl "\tAdd Block for run-time dependencies to apachectl.." echo "cp $PREFIX/bin/apachectl $_backup_apachectl" >> ${_logdir}/main.log cp $PREFIX/bin/apachectl $_backup_apachectl >> ${_logdir}/main.log 2>&1 if [ "$?" != "0" ]; then _failed=true fi echo "cat << EOF >$PREFIX/bin/apachectl #!/bin/sh ### BEGIN INIT INFO # Provides: apache2 # Required-Start: \\\$local_fs \\\$remote_fs \\\$network \\\$syslog \\\$named # Required-Stop: \\\$local_fs \\\$remote_fs \\\$network \\\$syslog \\\$named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # X-Interactive: true # Short-Description: Start/stop apache2 web server ### END INIT INFO EOF" >> ${_logdir}/main.log cat << EOF >$PREFIX/bin/apachectl #!/bin/sh ### BEGIN INIT INFO # Provides: apache2 # Required-Start: \$local_fs \$remote_fs \$network \$syslog \$named # Required-Stop: \$local_fs \$remote_fs \$network \$syslog \$named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # X-Interactive: true # Short-Description: Start/stop apache2 web server ### END INIT INFO EOF if [ "$?" != "0" ]; then _failed=true fi echo "tail -n +2 "$_backup_apachectl" >> $PREFIX/bin/apachectl" >> ${_logdir}/main.log tail -n +2 "$_backup_apachectl" >> $PREFIX/bin/apachectl if [ "$?" != "0" ]; then _failed=true fi echo "rm $_backup_apachectl" >> ${_logdir}/main.log rm $_backup_apachectl >> ${_logdir}/main.log 2>&1 if [ "$?" != "0" ]; then _failed=true fi if $_failed ; then echo_failed else echo_ok fi fi # if $INIT_SCRIPT_SUPPORTED ; then ## - Set status url echo "" >> ${_logdir}/main.log echo "## - apachectl: Set STATUSURL=\"$STATUS_URL\".." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "perl -i -n -p -e \"s#^(\s*STATUSURL=.*)#STATUSURL=\\\"$STATUS_URL\\\"#\" $PREFIX/bin/apachectl" > /dev/null 2<&1 echononl "\tapachectl: Set STATUSURL=\"$STATUS_URL\".." perl -i -n -p -e "s#^(\s*STATUSURL=.*)#STATUSURL=\"$STATUS_URL\"#" $PREFIX/bin/apachectl > /dev/null 2<&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Setting STATUSURL in script apachectl failed!" fi if $INIT_SCRIPT_SUPPORTED ; then echo "" >> ${_logdir}/main.log echo "## - Set Symlink /etc/init.d/apache2.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log #echo "ln -s $PREFIX/bin/apachectl /etc/init.d/apache2" >> ${_logdir}/main.log echo "ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache2" >> ${_logdir}/main.log echononl "\tSet Symlink /etc/init.d/apache2.." ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache2 >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Setting symlink /usr/local/apache2 failed." fi echononl "\tSet umask to $UMASK in \"envvars\" .." if $SET_UMASK ; then cat <> ${PREFIX}/bin/envvars umask $UMASK EOF if [ "$?" = "0" ]; then echo_ok else echo_failed fatal "Kann \"umask\" nicht setzen (${PREFIX}/bin/envvars).." fi else echo_skipped fi fi if $SYSTEMD_SUPPORTED ; then echo "" >> ${_logdir}/main.log echo "## - Create systemd service file.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "cat << EOF > /etc/systemd/system/apache2.service [Unit] Description=The Apache HTTP Server After=network.target remote-fs.target nss-lookup.target After=mariadb.service mysqld.service [Service] Type=forking Environment=APACHE_STARTED_BY_SYSTEMD=true ExecStart=${PREFIX}/bin/apachectl start ExecStop=${PREFIX}/bin/apachectl stop ExecReload=${PREFIX}/bin/apachectl graceful PrivateTmp=false Restart=on-abort [Install] WantedBy=multi-user.target EOF" >> ${_logdir}/main.log echononl "\tCreate systemd service file.." cat << EOF > /etc/systemd/system/apache2.service [Unit] Description=The Apache HTTP Server After=network.target remote-fs.target nss-lookup.target After=mariadb.service mysqld.service [Service] Type=forking Environment=APACHE_STARTED_BY_SYSTEMD=true ExecStart=${PREFIX}/bin/apachectl start ExecStop=${PREFIX}/bin/apachectl stop ExecReload=${PREFIX}/bin/apachectl graceful PrivateTmp=false Restart=on-abort [Install] WantedBy=multi-user.target EOF if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Creating systemd service file '/etc/systemd/system/apache2.service' failed." fi echo "" >> ${_logdir}/main.log echo "## - Replace '$PREFIX' with '/usr/local/apache2' in service file.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "perl -i -n -p -e \"s#$PREFIX#/usr/local/apache2#g\" /etc/systemd/system/apache2.service" >> ${_logdir}/main.log echo -e "\tReplace '$PREFIX' with" echononl "\t '/usr/local/apache2' in service file.." perl -i -n -p -e "s#$PREFIX#/usr/local/apache2#g" /etc/systemd/system/apache2.service >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Replacing '$PREFIX' with '/usr/local/apache2' in service file failed." fi 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 echo "" if $START_AT_BOOTTIME ; then echononl "\tReload systemd.." if $SYSTEMD_SUPPORTED ; then systemctl daemon-reload > /dev/null 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Reloading systemd.. failed!" fi else echo_skipped fi ## - Make apache start at boottime ## - echo "" >> ${_logdir}/main.log echononl "\tMake apache start at boottime" echo "## - Make apache start at boottime" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log if $SYSTEMD_SUPPORTED ; then echo "systemctl enable apache2" >> ${_logdir}/main.log systemctl enable apache2 >> ${_logdir}/main.log 2>&1 else echo "update-rc.d apache2 defaults" >> ${_logdir}/main.log update-rc.d apache2 defaults >> ${_logdir}/main.log 2>&1 fi if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Making apache2 start at boottime failed." fi fi echo "" ## - special for debian. set manpath entries ## - if [ -f /etc/manpath.config ];then echo "" >> ${_logdir}/main.log echo "## - Set manpath entries in /etc/manpath.config" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echononl "\tSet manpath entries in /etc/manpath.config" if ! grep /usr/local/apache2/man /etc/manpath.config > /dev/null 2<&1 ; then echo "echo >> /etc/manpath.config" >> ${_logdir}/main.log echo "echo \"MANDATORY_MANPATH /usr/local/apache2/man /var/cache/man\" >> /etc/manpath.config" >> ${_logdir}/main.log echo "echo \"MANPATH_MAP /usr/local/apache2/bin /usr/local/apache2/man\" >> /etc/manpath.config" >> ${_logdir}/main.log echo "echo \"MANDB_MAP /usr/local/apache2/man /var/cache/man\" >> /etc/manpath.config" >> ${_logdir}/main.log echo >> /etc/manpath.config echo "MANDATORY_MANPATH /usr/local/apache2/man /var/cache/man" >> /etc/manpath.config echo "MANPATH_MAP /usr/local/apache2/bin /usr/local/apache2/man" >> /etc/manpath.config echo "MANDB_MAP /usr/local/apache2/man /var/cache/man" >> /etc/manpath.config echo_ok else echo_skipped fi elif [ -f /etc/man.conf];then echo "" >> ${_logdir}/main.log echo "## - Set manpath entries in /etc/man.conf" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echononl "\tSet manpath entries in /etc/man.conf" if ! grep /opt/apache2/man /etc/man.conf > /dev/null 2<&1 ; then echo >> /etc/man.conf echo "MANPATH /opt/apache2/man /var/cache/man" >> /etc/man.conf echo "MANPATH_MAP /opt/apache2/bin /opt/apache2/man" >> /etc/man.conf echo_ok else echo_skipped fi fi ## - Add /usr/local/apache/bin to the systems PATH variable ## - _checkdir=`dirname $PREFIX`/apache2/bin if [ -f /etc/profile ]; then echo "" >> ${_logdir}/main.log echo "## - Add /usr/local/apache/bin to the systems PATH variable.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echononl "\tAdd /usr/local/apache/bin to the systems PATH variable.." if ! grep -e "$_checkdir" /etc/profile > /dev/null 2<&1 ; then echo "perl -i -n -p -e \"s#^([ ]*export[ ]*PATH.*$)#check_dir=$_checkdir\nif [ -d \\\"\\\\\$check_dir\\\" ];then\n PATH=\\\\\${check_dir}:\\\\\$PATH\nfi\n\n\1#\" /etc/profile > /dev/null 2<&1" >> ${_logdir}/main.log perl -i -n -p -e "s#^([ ]*export[ ]*PATH.*$)#check_dir=$_checkdir\nif [ -d \"\\\$check_dir\" ];then\n PATH=\\\${check_dir}:\\\$PATH\nfi\n\n\1#" /etc/profile > /dev/null 2<&1 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Adding /usr/local/apache/bin to the systems PATH variable failed." fi else echo_skipped fi fi ## - Add additional SSL configuration (HSTS) file: 000-additional-ssl-settings.conf ## - echo "" >> ${_logdir}/main.log echo "## - Add additional SSL configuration (HSTS) file: 000-additional-ssl-settings.conf.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "" echononl "\tAdd additional SSL configuration (HSTS) file: 000-additional-ssl-settings.conf.." cat < ${PREFIX}/conf/vhosts/000-additional-ssl-settings.conf # - HTTP Strict Transport Security (HSTS) # - # - HSTS tells a browser that the website should only be accessed through # - a secure connection. The HSTS header will be remembered by a standard # compliant browser for max-age seconds. # - # - Remember this settings for 1 year # - Header always set Strict-Transport-Security "max-age=31536000" env=HTTPS EOF if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Adding config file 000-logformat.conf failed." fi ## - Add default vhost configuration file 000-default.conf ## - echo "" >> ${_logdir}/main.log echo "## - Add default vhost configuration file 000-default.conf.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "" echononl "\tAdd default vhost configuration file 000-default.conf.." cat < ${PREFIX}/conf/vhosts/000-default.conf ## - initial konfiguration -- ## ## - ipv4: $IPv4_FIRST EOF if [ -n "$IPv6_FIRST" ];then cat <> ${PREFIX}/conf/vhosts/000-default.conf ## - ipv6: $IPv6_FIRST EOF fi cat <> ${PREFIX}/conf/vhosts/000-default.conf ## - Configures mutex mechanism and lock file directory for all or specified mutexes. ## - Specify 'default' as the second argument to change the settings for all mutexes. ## - Mutex file:/var/log/apache2/ssl_mutex default 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_socket_arr[@]} -gt 0 ]] ; then cat <> ${PREFIX}/conf/vhosts/000-default.conf ## - Make PHP-FPM status page and PHP-FPM ping available ## - EOF for _val in ${_php_socket_arr[@]} ; do IFS=':' read -a _val_arr <<< "${_val}" cat <> ${PREFIX}/conf/vhosts/000-default.conf SetHandler "proxy:unix:${_val_arr[1]}|fcgi://127.0.0.1" EOF done else cat <> ${PREFIX}/conf/vhosts/000-default.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/000-default.conf CustomLog /var/log/apache2/localhost.log combined ErrorLog /var/log/apache2/localhost.error EOF _default_ipv4=false _default_ipv6=false if [[ -n "${IPv4_FIRST}" ]]; then _default_ipv4=true fi if [[ -n "${IPv6_FIRST}" ]]; then _default_ipv6=true fi _vhost_default_80="> ${PREFIX}/conf/vhosts/000-default.conf $_vhost_default_80 ServerName dummy.${_DOMAIN}.$_TLD RewriteEngine On RewriteCond %{HTTP_HOST} ^autoconfig\. [NC] RewriteRule ^/(.*) http://autoconfig.${_DOMAIN}.${_TLD}/\$1 [L,R=301,NE] RewriteCond %{HTTP_HOST} !^autoconfig\. [NC] RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/ RewriteCond %{HTTPS} !=on RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] DocumentRoot "$GLOBAL_DOC_ROOT" CustomLog /var/log/apache2/dummy.${_DOMAIN}.${_TLD}.log combined ErrorLog /var/log/apache2/dummy.${_DOMAIN}.${_TLD}.error $_vhost_default_443 ServerName dummy.${_DOMAIN}.$_TLD DocumentRoot "$GLOBAL_DOC_ROOT" # ========== # - HTTP security Headers # ========== # - X-Frame-Options # - # - The X-Frame-Options header (RFC), or XFO header, protects your visitors # - against clickjacking attacks. An attacker can load up an iframe on their # - site and set your site as the source, it's quite easy: # - # - # - # - Using some crafty CSS they can hide your site in the background and create some # - genuine looking overlays. When your visitors click on what they think is a harmless # - link, they're actually clicking on links on your website in the background. That # - might not seem so bad until we realise that the browser will execute those requests # - in the context of the user, which could include them being logged in and authenticated # - to your site! # - # - Troy Hunt has a great blog on 'Clickjack attack – the hidden threat right in front : # - of you': # - # - http://www.troyhunt.com/2013/05/clickjack-attack-hidden-threat-right-in.html # - # - Valid values include DENY meaning your site can't be framed, SAMEORIGIN which allows # - you to frame your own site or ALLOW-FROM https://example.com/ which lets you specify # -sites that are permitted to frame your own site. # - Header always set X-Frame-Options "SAMEORIGIN" # - X-Xss-Protection # - # - This header is used to configure the built in reflective XSS protection found # - in Internet Explorer, Chrome and Safari (Webkit). Valid settings for the header # - are 0, which disables the protection, 1 which enables the protection # - and 1; mode=block which tells the browser to block the response if it # - detects an attack rather than sanitising the script. # - Header always set X-Xss-Protection "1; mode=block" # - X-Content-Type-Options # - # - Nice and easy to configure, this header only has one valid value, nosniff. # - It prevents Google Chrome and Internet Explorer from trying to mime-sniff # - the content-type of a response away from the one being declared by the server. # - It reduces exposure to drive-by downloads and the risks of user uploaded content # - that, with clever naming, could be treated as a different content-type, like # - an executable. # - Header always set X-Content-Type-Options "nosniff" # - Content Security Policy # - # - The CSP header allows you to define a whitelist of approved sources of content # - for your site. By restricting the assets that a browser can load for your site, # - like js and css, CSP can act as an effective countermeasure to XSS attacks. I # - have covered CSP in a lot more detail in my blog Content Security Policy - An # - Introduction (https://scotthelme.co.uk/content-security-policy-an-introduction/). # - # - Here is a basic policy to enforce TLS on all assets and prevent # - mixed content warnings. # - # - Allow Google Analytics, Google AJAX CDN and Same Origin # - script-src 'self' www.google-analytics.com ajax.googleapis.com; # - # - Emmbedding Google Fonts # - style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; # - # - Allow YouTube Videos (iframe embedded) # - frame-src 'self' https://www.youtube.com # - #Header always set Content-Security-Policy "default-src https: data: 'unsafe-inline' 'unsafe-eval' ; object-src 'none'" Header always set Content-Security-Policy "default-src 'none'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline' ; img-src 'self' data: https: ; connect-src 'self'; font-src 'self'; object-src 'self'; media-src 'self' ; frame-src 'self'; worker-src 'self'; form-action 'self'; base-uri 'self'; frame-ancestors 'self'; upgrade-insecure-requests" # - Referrer-Policy # - # - The HTTP referer (originally a misspelling of referrer[1]) is an HTTP header # - field that identifies the address of the webpage (i.e. the URI or IRI) that # - linked to the resource being requested. By checking the referrer, the new # - webpage can see where the request originated. # - Header set Referrer-Policy "strict-origin-when-cross-origin" # - HTTP Strict Transport Security (HSTS) # - # - HSTS tells a browser that the website should only be accessed through # - a secure connection. The HSTS header will be remembered by a standard # compliant browser for max-age seconds. # - # - Remember this settings for 1 year # - Header always set Strict-Transport-Security "max-age=31536000" SSLEngine on ## - don't support weak ciphers SSLHonorCipherOrder Off SSLSessionTickets Off SSLCompression Off SSLProtocol ALL -SSLv3 -TLSv1 -TLSv1.1 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/000-default.conf echo "Include conf/vhosts/0/*.conf" >> ${PREFIX}/conf/vhosts/000-default.conf fi if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Adding vhost configfile 0000-default.conf failed." fi ## - Add configuration for custom log format file: 000-deflate.conf ## - echo "## - Add configuration to enable compression: 000-deflate.conf.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "" echononl "\tAdd configuration to enable compression: 000-deflate.conf.." cat << EOF > ${PREFIX}/conf/vhosts/000-deflate.conf # --- # - Enable output compression # --- # Serve gzip compressed CSS and JS files if they exist # and the client accepts gzip. RewriteCond "%{HTTP:Accept-encoding}" "gzip" RewriteCond "%{REQUEST_FILENAME}\.gz" -s RewriteRule "^(.*)\.(css|js)" "\$1\.\$2\.gz" [QSA] # Serve correct content types, and prevent mod_deflate double gzip. RewriteRule "\.css\.gz$" "-" [T=text/css,E=no-gzip:1] RewriteRule "\.js\.gz$" "-" [T=text/javascript,E=no-gzip:1] # Serve correct encoding type. Header append Content-Encoding gzip # Force proxies to cache gzipped & # non-gzipped css/js files separately. Header append Vary Accept-Encoding SetOutputFilter DEFLATE # You can't compress what is already compressed SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .(?:avi|mov|mp3|mp4|rm|flv|swf|mp?g)\$ no-gzip dont-vary SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary DeflateFilterNote Input instream DeflateFilterNote Output outstream DeflateFilterNote Ratio ratio LogFormat '%v "%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate EOF if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Adding config file 000-deflate.conf failed." fi ## - Add configuration for custom log format file: 000-logformat.conf ## - echo "## - Add configuration for custom log format file: 000-logformat.conf.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "" echononl "\tAdd configuration for custom log format file: 000-logformat.conf.." cat << EOF > ${PREFIX}/conf/vhosts/000-logformat.conf ## - %a remote IP-address ## - %v ServerName of requested site ## - %{%T %Y-%m-%d}t date time - custom ## - %t date time - apache default ## - %{User-Agent}i user agent ## - %U requested URL ## - %r First line of request. ## - %>s real status code ## - \$T The time taken to serve the request, in seconds ## - LogFormat "%a %v %p %t %r %>s \"%{User-Agent}i\" %T" base_requests EOF if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Adding config file 000-logformat.conf failed." fi echo "" >> ${_logdir}/main.log echo "## - Create directory ${GLOBAL_DOC_ROOT}.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mkdir -p ${GLOBAL_DOC_ROOT}" >> ${_logdir}/main.log echononl "\tCreate ${GLOBAL_DOC_ROOT}.." mkdir -p $GLOBAL_DOC_ROOT >> ${_logdir}/main.log 2>&1 if [ "0" = $? ]; then echo_ok else echo_failed fi ## - Create ${GLOBAL_DOC_ROOT}/index.html (Error 404 page) ## - echo "" >> ${_logdir}/main.log echo "## - Create ${GLOBAL_DOC_ROOT}/index.html (Error 404 page).." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "" echononl "\tCreate ${GLOBAL_DOC_ROOT}/index.html (Error 404 page).." echo "cat << EOF > ${GLOBAL_DOC_ROOT}/index.html" >> ${_logdir}/main.log echo ' 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 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 if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Creating ${GLOBAL_DOC_ROOT}/index.html (Error 404 page) failed." fi echo "" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "## - Configure logrotation.." >> ${_logdir}/main.log echononl "\tConfigure logrotation...." if [ ! -f "/etc/logrotate.d/apache2" ]; then cat < /etc/logrotate.d/apache2 /var/log/apache2/*log /var/log/apache2/*error /var/www/*/logs/*log /var/www/*/logs/*error { daily missingok rotate 7 compress delaycompress notifempty create 644 root adm sharedscripts postrotate if ls /var/www/*/logs/php_errors.log > /dev/null 2>&1 ; then chown ${HTTPD_USER}:${HTTPD_GROUP} /var/www/*/logs/php_errors.log fi if [ -f "/var/log/apache2/php_errors.log" ] ; then chown ${HTTPD_USER}:${HTTPD_GROUP} /var/log/apache2/php_errors.log fi if [ -x "/usr/local/apache2/bin/apachectl" ]; then APACHECTL="/usr/local/apache2/bin/apachectl" else APACHECTL="\$(which apachectl)" fi if [ -z "\$APACHECTL" ] ; then if [ -f "/etc/init.d/apache2" ]; then /etc/init.d/apache2 reload > /dev/null else echo "Reloading apache service failed!" fi else \$APACHECTL graceful > /dev/null fi endscript } EOF if [ "$?" = "0" ]; then echo_ok else echo_failed fi else echo_skipped fi # - Try to restote vhost configuration from (current) installation # - echononl "\tTry to restore vhost configurations from current installation.." if [[ -n "$_httpd_current_version" ]]; then _failed=false _done=false echo "" >> ${_logdir}/main.log echo "## - Try to restore vhost configurations from (current) installation.." >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log if [[ "$_httpd_current_version" != $APACHE_VERSION ]]; then if [[ -d "$(dirname "$PREFIX")/httpd-${_httpd_current_version}/conf/vhosts" ]]; then _src_dir="$(dirname "$PREFIX")/httpd-${_httpd_current_version}/conf/vhosts" fi else if [[ -d "${PREFIX}.${_backup_date}/conf/vhosts" ]]; then _src_dir="${PREFIX}.${_backup_date}/conf/vhosts" fi fi if [[ -n "$_src_dir" ]] ; then while IFS='' read -r -d '' _name ; do if [[ "$(basename "$_name")" =~ 00default ]]; then continue fi if [[ "$(basename "$_name")" =~ 000-default ]]; then continue fi if [[ "$(basename "$_name")" = "000-logformat.conf" ]]; then continue fi echo "cp -a "$_name" "${PREFIX}/conf/vhosts"" >> ${_logdir}/main.log cp -a "$_name" "${PREFIX}/conf/vhosts" >> ${_logdir}/main.log if [[ $? -ne 0 ]]; then _failed=true fi _done=true done < <(find "$_src_dir" -mindepth 1 -maxdepth 1 -print0) if $_done ; then if $_failed ; then echo_failed error "Restoring vhost configuration failed!" else echo_ok fi else echo_skipped fi fi # [[ -n "$_src_dir" ]] ; then else echo_skipped fi # if [[ -n "$_httpd_current_version" ]] # --- # - Start apache webservice # --- echo "" >> ${_logdir}/main.log echo "" >> ${_logdir}/main.log echo "## - Start Apache Webserver" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "" echononl "\tStarting Apache Webserver.." if $SYSTEMD_SUPPORTED ; then echo "systemctl start apache2" >> ${_logdir}/main.log systemctl start apache2 >> ${_logdir}/main.log 2>&1 else echo "/etc/init.d/apache2 start" >> ${_logdir}/main.log /etc/init.d/apache2 start >> ${_logdir}/main.log 2>&1 fi if [ "$?" = "0" ]; then echo_ok else echo_failed warn "Starting Apache Webservice failed!." fi # --- # - Reenable crontab for user root # --- echo echononl "\tReenable crontab for user root .." echo "" >> ${_logdir}/main.log echo "Reenable crontab for user root" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "crontab -u root $_CRONTAB_BAKUP_FILE" >> ${_logdir}/main.log crontab -u root $_CRONTAB_BAKUP_FILE >> ${_logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed fi echononl "\tRemove crontab backup file .." echo "" >> ${_logdir}/main.log echo "## - Remove crontab backup file" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "rm $_CRONTAB_BAKUP_FILE" >> ${_logdir}/main.log rm -f $_CRONTAB_BAKUP_FILE if [ "$?" = "0" ]; then echo_ok else echo_failed fi ## ----- ## - Rename /etc/mysql/my.cnf if MySQL is not installed from debian package system ## ----- if [[ -d "/usr/local/mysql" ]]; then if [[ -f "/etc/mysql/my.cnf" ]] && [[ ! -h "/etc/mysql/my.cnf" ]]; then echononl "\tRename '/etc/mysql/my.cnf' to '/etc/mysql/my.cnf.DEBIAN' .." echo "" >> ${_logdir}/main.log echo "## - Rename '/etc/mysql/my.cnf' to '/etc/mysql/my.cnf.DEBIAN'" >> ${_logdir}/main.log echo "## -" >> ${_logdir}/main.log echo "mv \"/etc/mysql/my.cnf\" \"/etc/mysql/my.cnf.DEBIAN\"" >> ${_logdir}/main.log mv "/etc/mysql/my.cnf" "/etc/mysql/my.cnf.DEBIAN" > ${_logdir}/main.log 2>&1 if [[ $? -eq 0 ]]; then echo_ok else echo_failed fi fi fi cd $pwd echo clean_up 0