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