#!/bin/bash # update_httpdconf.sh - updates httpd.conf modules list # Copyright (c) 2006-2016 by Silvan Calarco INPUT_CONF=/etc/httpd/httpd.conf.rpmnew OUTPUT_CONF=/etc/httpd/httpd.conf MODULES_PREFIX=/usr if [ -d /usr/lib64/apache ]; then MODULES_APPEND=lib64/apache else MODULES_APPEND=lib/apache fi MODULES_PATH=$MODULES_PREFIX/$MODULES_APPEND cont=0 # no rpmnew file ? silently nothing to do [ -e $INPUT_CONF ] || exit 0 for a in `grep ^LoadModule $INPUT_CONF | gawk '{ print $3 }'`; do MODULE[$cont]=`echo $a | sed "s|.*/mod_\(.*\)\.so|\1|"` let cont+=1 done # remove missing modules for a in `grep ^LoadModule $OUTPUT_CONF | gawk '{ print $3 }'`; do [ -e $MODULES_PREFIX/$a ] || { echo "Removing missing module $a" A=`echo $a | sed 's|\/|\\\\\/|g'` sed -i "/^LoadModule .* $A/d" $OUTPUT_CONF } done ANCHOR_LINE=`grep "^LoadModule .*" $OUTPUT_CONF | tail -n 1 | sed 's|\/|\\\\\/|g'` #echo $ANCHOR_LINE #exit 1 # adding new modules for a in ${MODULE[*]}; do [ ${a:0:4} == "mpm_" ] && continue grep "^LoadModule .* $MODULES_APPEND/mod_$a.so" $OUTPUT_CONF >/dev/null || { echo "Configuring module $a" sed -i "/${ANCHOR_LINE}/a \ LoadModule ${a}_module $MODULES_APPEND\/mod_$a.so" $OUTPUT_CONF ANCHOR_LINE=`echo "LoadModule ${a}_module $MODULES_APPEND/mod_$a.so" | sed 's|\/|\\\\\/|g'` } done sed -i "s|/etc/httpd/ssl.conf|/etc/httpd/extra/httpd-ssl.conf|" $OUTPUT_CONF