Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:webapps:horde:postinstall]] 
no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


anwenderwiki:webapps:horde:postinstall [2014/08/03 10:39] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +{{tag> horde}}
  
 +====== Postinstall-Script zu Horde 5 ======
 +
 +Das Script geht von einer frisch installierten Horde 5.1.4 in ''**/var/www/horde**'' aus. Ggf. müssen noch alte, horde3-Konfigurationen bei Apache gelöscht werden.\\
 +Das Script legt von der Horde-Konfiguration eine Backup-Datei an, die man ggf. zurückspielen kann: **''/etc/horde5/horde/conf.bak.php''**.
 +<note warning>Benutzung auf eigenes Risiko!</note>
 +
 +<code text horde-postinstall.sh>
 +#! /bin/bash
 +#
 +# Version 0.2 - Mai 2014
 +# Script verschiebt alle Conf-Dateien von Horde nach /etc/horde5
 +# und richtet die Konfiguration von Horde5 fuer linuxmuster-net 6.0 ein.
 +# Getestet für Horde 5 Version 5.1.4
 +#
 +# Pfade "wwwdir" und "etcdir" koennen angepasst werden.
 +
 +wwwdir="/var/www/horde"
 +etcdir="/etc/horde5"
 +
 +###########################################################################
 +
 +if [ ! -d "$wwwdir" ]; then
 +  echo "WARNING: Verzeichnis $wwwdir existiert nicht, Script wird beendet."
 +  exit 1
 +fi
 +if [ -d "$etcdir" ]; then
 +  echo "WARNING: Verzeichnis $etcdir existiert schon, Script wird beendet."
 +  echo "Ein mehrfach-Ausfuehren des Scriptes macht die Installation unbrauchbar."
 +  exit 1
 +fi
 +if [ "$(id -u)" != "0" ]; then
 +   echo "Script muss als root ausgefuehrt werden!" 1>&2
 +   exit 1
 +fi
 +###########################################################################
 +echo "Lege $etcdir an ..."
 +mkdir "$etcdir"
 +chown root:www-data -R "$etcdir"
 +chmod 755 "$etcdir"
 +
 +###########################################################################
 +echo "Setze Rechte ..."
 +chown root:www-data "$wwwdir/static"
 +chmod 775 "$wwwdir/static"
 +
 +###########################################################################
 +echo "Starte Conf-Verzeichnisse zu verschieben und verlinken ..."
 +verzliste="/horde /gollem /imp /ingo /kronolith /mnemo /nag /turba /trean"
 +for verz in $verzliste ; do
 +  if [ $verz == "/horde" ] ; then
 +    wverz="$wwwdir/config"
 +  else
 +    wverz="$wwwdir$verz/config"
 +  fi
 +  everz="$etcdir$verz"
 +  echo "  Verschieben von $wverz --> $everz"
 +  mv $wverz $everz
 +  ln -s $everz $wverz
 +  chown root:www-data -R $everz
 +  chmod 755 $everz
 +done
 +###########################################################################
 +echo "Richte Apache ein ..."
 +text="\
 +Alias /horde $wwwdir\n\
 +<Directory $wwwdir>\n\
 +  Options Indexes FollowSymLinks MultiViews\n\
 +  AllowOverride All\n\
 +  AcceptPathInfo On\n\
 +  Order allow,deny\n\
 +  allow from all\n\
 +</Directory>\n"
 +
 +echo -e "$text" > "$etcdir/apache.conf"
 +ln -s "$etcdir/apache.conf" "/etc/apache2/conf.d/horde5.conf"
 +
 +###########################################################################
 +echo "Richte php ein ..."
 +pecl install lzf
 +echo "extension=lzf.so" > /etc/php5/apache2/conf.d/lzf.ini
 +pear install horde/horde_lz4
 +echo "extension=horde_lz4.so" > /etc/php5/apache2/conf.d/lz4.ini
 +echo "extension=msgpack.so" > /etc/php5/apache2/conf.d/msgpack.ini
 +sed -i 's|session\.gc_divisor.*|session\.gc_divisor  = 10000|' /etc/php5/apache2/php.ini
 +service apache2 restart
 +
 +###########################################################################
 +configfile="$etcdir/horde/conf.php"
 +cp $configfile "$etcdir/horde/conf.bak.php"
 +base=`awk '/BASE/ { print $2 } ' /etc/ldap/ldap.conf`
 +echo "Verwende Base-DN: $base"
 +###########################################################################
 +echo "Setze LDAP-Authentifizierung ..."
 +echo "Installiere horde_ldap ... bitte warten ..."
 +pear install -a horde/horde_ldap
 +
 +sed -i "/\$conf\W\Wldap\W.*/ d" $configfile
 +
 +text="\
 +\$conf['ldap']['hostspec'] = 'localhost';\n\
 +\$conf['ldap']['tls'] = false;\n\
 +\$conf['ldap']['version'] = 3;\n\
 +\$conf['ldap']['bindas'] = 'anon';\n\
 +\$conf['ldap']['useldap'] = true;"
 +
 +sed -i "/\/\* CONFIG END\./ i $text" $configfile
 +
 +z1=`grep "'count_bad_logins'" $configfile`
 +z2=`grep "'login_block'" $configfile`
 +z3=`grep "'login_block_count'" $configfile`
 +z4=`grep "'login_block_time'" $configfile`
 +
 +sed -i "/\$conf\W\Wauth\W\W\W\Wparams\W.*/ d" $configfile
 +sed -i "/\$conf\W\Wauth\W\W\W\Wdriver\W.*/ d" $configfile
 +
 +text="\
 +\$conf['auth']['params']['basedn'] = '$base';\n\
 +\$conf['auth']['params']['scope'] = 'sub';\n\
 +\$conf['auth']['params']['ad'] = false;\n\
 +\$conf['auth']['params']['uid'] = 'uid';\n\
 +\$conf['auth']['params']['encryption'] = 'ssha';\n\
 +\$conf['auth']['params']['newuser_objectclass'] = array('shadowAccount', 'inetOrgPerson');\n\
 +\$conf['auth']['params']['filter'] = '(objectclass=posixAccount)';\n\
 +\$conf['auth']['params']['password_expiration'] = 'no';\n\
 +\$conf['auth']['params']['driverconfig'] = 'horde';\n\
 +\$conf['auth']['driver'] = 'ldap';"
 +
 +sed -i "/\/\* CONFIG END\./ i $text" $configfile
 +
 +sed -i "/\/\* CONFIG END\./ i $z1" $configfile
 +sed -i "/\/\* CONFIG END\./ i $z2" $configfile
 +sed -i "/\/\* CONFIG END\./ i $z3" $configfile
 +sed -i "/\/\* CONFIG END\./ i $z4" $configfile
 +
 +echo "Richte LDAP-Groups ein ..."
 +
 +sed -i "/\$conf\W\Wgroup\W.*/ d" $configfile
 +
 +text="\
 +\$conf['group']['params']['basedn'] = '$base';\n\
 +\$conf['group']['params']['scope'] = 'sub';\n\
 +\$conf['group']['params']['gid'] = 'cn';\n\
 +\$conf['group']['params']['memberuid'] = 'memberUID';\n\
 +\$conf['group']['params']['attrisdn'] = false;\n\
 +\$conf['group']['params']['newgroup_objectclass'] = array('posixGroup', 'hordeGroup');\n\
 +\$conf['group']['params']['search']['objectclass'] = array('posixGroup');\n\
 +\$conf['group']['params']['search']['filter_type'] = 'objectclass';\n\
 +\$conf['group']['params']['driverconfig'] = 'horde';\n\
 +\$conf['group']['driver'] = 'Ldap';"
 +
 +sed -i "/\/\* CONFIG END\./ i $text" $configfile
 +
 +echo "<?php" > "$etcdir/imp/backends.local.php"
 +echo -e "\$servers['imap']['hordeauth'] = true;" >> "$etcdir/imp/backends.local.php"
 +
 +###########################################################################
 +echo "Richte Dateimanager Gollem ein ..."
 +text="\
 +<?php\n\
 +\$backends['ftp']['disabled'] = true;\n\
 +\$backends['smb'] = array(\n\
 +     'disabled' => false,'name' => 'Server','driver' => 'smb','hordeauth' => true,\n\
 +     'params' => array('hostspec' => 'localhost', 'port' => 139, 'share' => 'homes', 'smbclient' => '/usr/bin/smbclient','ipaddress' => '127.0.0.1'),\n\
 +     'loginparams' => array(),\n\
 +     'attributes' => array('type','name','edit','download','modified','size')\n\
 +);"
 +echo -e "$text" > "$etcdir/gollem/backends.d/samba.php"
 +rm "$etcdir/gollem/backends.d/10-webmail.php"
 +
 +###########################################################################
 +echo "Richte Log-Datei ein ..."
 +mkdir /var/log/horde
 +chown www-data:www-data /var/log/horde
 +sed -i "s/\$conf.*.log.*.type.*/\$conf\[\'log\'\]\[\'type\'\] = \'file\';/" $configfile
 +sed -i "s/\$conf.*.log.*.name.*/\$conf\[\'log\'\]\[\'name\'\] = \'\/var\/log\/horde\/horde5\.log\';/" $configfile
 +
 +###########################################################################
 +echo "Richte neues sicheres Kennwort für mysql ein ..."
 +kennwort=`pwgen -s 20 1`
 +sed -i "s/\$conf.*.sql.*.password\W.*/\$conf\[\'sql\'\]\[\'password\'\] = '$kennwort';/" $configfile
 +mysql -e "SET PASSWORD FOR h5admin@localhost = PASSWORD ('$kennwort');"
 +
 +###########################################################################
 +
 +exit 0
 +</code>
 [[anwenderwiki:webapps:horde:postinstall]] anwenderwiki/webapps/horde/postinstall.txt · Zuletzt geändert: 2014/08/03 10:39 von 127.0.0.1