1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
#!/bin/sh -e
CONFFILE="/etc/phpldapadmin/config.php"
TEMPLATES="/etc/phpldapadmin/templates"
HOOKS="/etc/phpldapadmin/hooks"
USER_GROUP="root:www-data"
if [ -d $HOOKS ]; then
chown -R $USER_GROUP $HOOKS
chmod -R 0644 $HOOKS
chmod 0755 $HOOKS $HOOKS/classes $HOOKS/functions
fi
if [ -d $TEMPLATES ]; then
chown -R $USER_GROUP $TEMPLATES
chmod -R 0644 $TEMPLATES
chmod 0755 $TEMPLATES $TEMPLATES/creation $TEMPLATES/modification
fi
. /usr/share/debconf/confmodule
db_version 2.0 || [ $? -lt 30 ]
if [ "$1" = "configure" ]; then
tempfile=`mktemp`
cp /usr/share/phpldapadmin/config/config.php.example ${tempfile}
db_get phpldapadmin/ldap-server || true
ldapserver="$RET"
sed -i -e "s|// \$servers->setValue('server','host','127.0.0.1');|\$servers->setValue('server','host','$ldapserver');|g" ${tempfile}
db_get phpldapadmin/ldap-tls || true
tls="$RET"
if [ "$tls" = "true" ]; then
sed -i -e "s|// \$servers->setValue('server','port',389);|\$servers->setValue('server','port',636);|g" ${tempfile}
sed -i -e "s|// \$servers->setValue('server','tls',false);|\$servers->setValue('server','tls',true);|g" ${tempfile}
fi
db_get phpldapadmin/ldap-basedn || true
basedn="$RET"
sed -i -e "s|// \$servers->setValue('server','base',array(''));|\$servers->setValue('server','base',array('$basedn'));|g" ${tempfile}
db_get phpldapadmin/ldap-authtype || true
authtype="$RET"
sed -i -e "s|// \$servers->setValue('login','auth_type','session');|\$servers->setValue('login','auth_type','$authtype');|g" ${tempfile}
db_get phpldapadmin/ldap-binddn || true
binddn="$RET"
sed -i -e "s|// \$servers->setValue('login','bind_id','');|\$servers->setValue('login','bind_id','$binddn');|g" ${tempfile}
if [ "$authtype" = "config" ]; then
db_get phpldapadmin/ldap-bindpw || true
bindpw="$RET"
sed -i -e "s|// \$servers->setValue('login','bind_pass','');|\$servers->setValue('login','bind_pass','$bindpw');|g" ${tempfile}
fi
chown root:www-data ${tempfile}
chmod 0644 ${tempfile}
ucf --debconf-ok ${tempfile} $CONFFILE
ucfr phpldapadmin $CONFFILE
if [ ! -e /usr/share/phpldapadmin/config/config.php ]; then
ln -s $CONFFILE /usr/share/phpldapadmin/config/config.php
fi
rm -f ${tempfile}
# Autoconfiguration for apache*
db_get phpldapadmin/reconfigure-webserver || true
webservers="$RET"
restart=""
for webserver in $webservers; do
webserver=${webserver%,}
test -x /usr/sbin/$webserver || continue
case "$webserver" in
apache|apache-perl|apache-ssl)
if grep "^Include /etc/phpldapadmin/apache.conf" /etc/$webserver/httpd.conf > /dev/null 2>&1; then
mv -f /etc/$webserver/httpd.conf /etc/$webserver/httpd.conf.old.phpldapadmin
grep -v "^Include /etc/phpldapadmin/apache.conf" /etc/$webserver/httpd.conf.old.phpldapadmin \
> /etc/$webserver/httpd.conf
fi
if ! grep "^Include /etc/$webserver/conf.d" /etc/$webserver/httpd.conf > /dev/null 2>&1; then
cp -f /etc/$webserver/httpd.conf /etc/$webserver/httpd.conf.old.phpldapadmin
echo "Include /etc/$webserver/conf.d" >> /etc/$webserver/httpd.conf
fi
if [ -f /etc/$webserver/httpd.conf.old.phpldapadmin ] && [ ! -f /etc/$webserver/httpd.conf.old ]; then
mv -f /etc/$webserver/httpd.conf.old.phpldapadmin /etc/$webserver/httpd.conf.old
fi
mkdir -p /etc/$webserver/conf.d
if [ ! -f /etc/$webserver/conf.d/phpldapadmin ] && [ ! -h /etc/$webserver/conf.d/phpldapadmin ]; then
ln -s /etc/phpldapadmin/apache.conf /etc/$webserver/conf.d/phpldapadmin
restart="$restart $webserver"
fi
;;
apache2)
if [ ! -f /etc/$webserver/conf-available/phpldapadmin.conf ] && [ ! -h /etc/$webserver/conf-available/phpldapadmin.conf ]; then
mkdir -p /etc/$webserver/conf-available
ln -s /etc/phpldapadmin/apache.conf /etc/$webserver/conf-available/phpldapadmin.conf
if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then
. /usr/share/apache2/apache2-maintscript-helper
apache2_invoke enconf phpldapadmin.conf || exit $?
fi
fi
;;
esac
done
db_get phpldapadmin/restart-webserver || true
res="$RET"
db_stop || true
if [ "$res" = "true" ]; then
for webserver in $restart; do
webserver=${webserver%,}
# Reload webserver in any case, configuration might have changed
# Redirection of 3 is needed because Debconf uses it and it might
# be inherited by webserver. See bug #446324.
if [ -f /etc/init.d/$webserver ] ; then
if which invoke-rc.d > /dev/null ; then
if invoke-rc.d $webserver status > /dev/null 2>&1 ; then
invoke-rc.d $webserver reload 3>/dev/null || true
fi
else
if /etc/init.d/$webserver status > /dev/null 2>&1 ; then
/etc/init.d/$webserver reload 3>/dev/null || true
fi
fi
fi
done
fi
fi
#DEBHELPER#
exit 0
|