<  back
 
 
 
Horde/IMP Howto d'installazione
: :   howto di Daniele Albisetti e Giovanni Piffaretti   ©2005 Elektro-Material AG
 

in rosso: passaggi che riguardano unicamente Ubuntu e Debian

Il seguente Howto spiega come configurare un Linuxserver compresa la compilazione di Apache, PHP e MySQL con tutte le estensioni, i moduli e i programmi necessari all'ottimale installazione di Horde e delle applicazioni elencate qui sotto. Si presuppone che una versione di Linux sia installata e che siano pure installati i pacchetti necessari alla compilazione dei source.

L'Howto comprende le seguenti applicazioni:
- Horde 3.0.5
- IMP H3 (4.0.3)
- Ingo H3 (1.0.1)
- Kronolith H3 (2.0.3)
- Mnemo H3 (2.0.1)
- Nag H3 (2.0.2)
- Turba H3 (2.0.3)
- Chora H3 (2.0)


INSTALLAZIONE DI BASE

1.   installare Linux Fedora Core o Ubuntu Linux (custom installation con develepment tools)
2.   installare apt-get e se necessario configurare il proxy in /etc/apt/apt.conf
3.  installare lynx e se necessario inserire il proxy in /etc/lynx.cfg
      installare il nuovo Kernel (dpkg -i kernel-"versione".i386.deb) e riavviare il server
      apt-get install fortunes
      apt-get install automake1.9
      apt-get install libmagic-dev
4.   scaricare le seguenti applicazioni:
      apache_1.3.33.tar.gz
      apt-0.5.15cnc6-1.1.fc3.fr.i386.rpm
      aspell-0.60.3.tar.gz
      aspell6-de-20030222-1.tar.bz2
      aspell6-en-6.0-0.tar.bz2
      aspell6-it-2.2_20050523-0.tar.bz2
      aspell-fr-0.50-3.tar.bz2
      fortune-1.0-35.1.fc3.rf.i386.rpm
      gettext-0.14.5.tar.gz
      imap-2004e.tar.Z
      jpegsrc.v6b.tar.gz
      libiconv-1.9.1.tar.gz
      libmcrypt-2.5.7.tar.gz
      libpng-1.2.8.tar.gz
      libxml2-2.5.11.tar.gz
      lynx-2.8.5-18.i386.rpm
      mod_ssl-2.8.22-1.3.33.tar.gz
      mysql-standard-4.1.12-pc-linux-gnu-i686.tar.gz
      openssl-0.9.7g.tar.gz
      php-4.3.11.tar.gz
      ssmtp_2.48.tar.gz
      installare il programma which (non è presente in FC3; necessario per aspell)
      zlib-1.2.2.tar.gz
5.  installare zlib:
      cd /usr/local; tar -zxvf zlib-1.2.2.tar.gz; ln -s zlib-1.2.2 zlib; rm zlib-1.2.2.tar.gz
      cd zlib; make clean; ./configure -s; make; make install
6.   installare openssl:
      cd /usr/local; tar -zxvf openssl-0.9.7g.tar.gz; ln -s openssl-0.9.7g openssl; rm openssl-0.9.7g.tar.gz
      cd openssl; ./Configure -prefix=/usr/local zlib; make; make test; make install
7.   installare imap:
      cd /usr/local; tar -zxvf imap-2004e.tar.Z; mv imap-2004e imap; rm imap-2004e.tar.Z
      cd imap; make lrh (con ldb = linux debian)
      mkdir /usr/local/imap-2004e; mkdir /usr/local/imap-2004e/lib; mkdir /usr/local/imap-2004e/module
      cp /usr/local/imap/c-client/*.h /usr/local/imap-2004e/include
      cp /usr/local/imap/c-client/*.c cp /usr/local/imap-2004e/lib
      cp /usr/local/imap/c-client/c-client.a /usr/local/imap-2004e/lib/libc-client.a
8.   installare libiconv:
      cd /usr/local; tar -zxvf libiconv-1.9.1.tar.gz; ln -s libiconv-1.9.1 libiconv; rm libiconv-1.9.1.tar.gz
      cd libiconv; ./configure; make ; make check; make install
9.   installare gettext:
      cd /usr/local; tar -zxvf gettext-0.14.5.tar.gz; ln -s gettext-0.14.5 gettext; rm gettext-0.14.5.tar.gz
      cd gettext; ./configure -with-libiconv-prefix=/usr/local; make; make check; make install
      apt-get install gettext
      apt-get install gettext-base
      dpkg-reconfigure locales (inserire de_DE ISO-8859-1, fr_FR ISO-8859-1, it_IT ISO-8859-1,
      de_DE.UTF-8 UTF-8, fr_FR.UTF-8 UTF-8, it_IT.UTF-8 UTF-8
      en_US ISO-8859-1, en_US.UTF-8 UTF-8)

10. installare libmcrypt:
      cd /usr/local; tar -zxvf libmcrypt-2.5.7.tar.gz; ln -s libmcrypt-2.5.7 libmcrypt; rm libmcrypt-2.5.7.tar.gz
      cd libmcrypt; ./configure; make; make check; make install
11. installare libpng:
      cd /usr/local; tar -zxvf libpng-1.2.8.tar.gz; ln -s libpng-1.2.8 libpng; rm libpng-1.2.8.tar.gz
      cd libpng; cp scripts/makefile.std makefile
      make; make test; make install
12. installare mysql:
      cd /usr/local; tar -zxvf mysql-standard-4.1.12-pc-linux-gnu-i686.tar.gz
      ln -s mysql-standard-4.1.12-pc-linux-gnu-i686.tar.gz mysql
      rm mysql-standard-4.1.12-pc-linux-gnu-i686.tar.gz
      cd mysql
      groupadd mysql
      useradd -g mysql mysql
      scripts/mysql_install_db --user=mysql
      chown -R root
      hown -R mysql data
      chgrp -R mysql
      vi /etc/rc.d/rc.local, aggiungere: "cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql --password="
      vi /etc/init.d/local inserire la linea appena mensionata
      update-rc.d local default 99
      chmod 755 local
      cd /usr/local/bin; cp -s /usr/local/mysql/bin/mysql mysql
      cd /usr/local/bin; cp -s /usr/local/mysql/bin/mysqladmin
      cd /urs/local/bin; cp -s /usr/local/mysql/bin/mysqldump
      mysqladmin -u root password '*******'
13. installare aspell:
      cd /usr/local; tar-zxvf aspell-0.60.3.tar.gz; ln -s aspell-0.60.3 aspell; rm aspell-0.60.3.tar.gz
      cd aspell
      ./configure; make; make install
14. installare dizionario aspell inglese:
      cd /usr/local; bunzip2 aspell6-en-6.0-0.tar.bz2; tar -xvf aspell6-en-6.0-0.tar; rm aspell6-en-6.0-0.tar
      ./configure; make; make install
15. installare dizionario aspell tedesco:
      cd /usr/local; bunzip2 aspell6-de-20030222-1.tar.bz2; tar -xvf aspell6-de-20030222-1.tar;
      rm aspell6-de-20030222-1.tar
      ./configure; make; make install
16. installare dizionario aspell francese:
      cd /usr/local; bunzip2 aspell-fr-0.50-3.tar.bz2; tar -xvf aspell-fr-0.50-3.tar; rm aspell-fr-0.50-3.tar
      ./configure; make; make install
17. installare dizionario aspell italiano:
      cd /usr/local; bunzip2 aspell6-it-2.2_20050523-0.tar.bz2; tar -xvf aspell6-it-2.2_20050523-0.tar;
      rm aspell6-it-2.2_20050523-0.tar
      ./configure; make; make install
18. installare jpegsrc:
      cd /usr/local; tar -zxvf jpegsrc.v6b.tar.gz; ln -s jpegsrc.v6b.tar jpegsrc; rm jpegsrc.v6b.tar.gz
      ./configure; make; make test; make install; make install-lib
19. cd /usr/local/apache; ./configure
20. cd /usr/local; tar -zvf php-4.3.11.tar.gz; ln -s php-4.3.11 php; rm php-4.3.11.tar.gz; cd php;
      ./configure --with-apache --with-openssl=/usr/local --with-mcrypt=/usr/local
      --with-gettext=/usr/local --with-imap=/usr/local/imap-2004e --with-psspell=/usr/local
      --with-pear --with-mysql=/usr/local/mysql --with-dom=/usr/local --with-zlib
      --with-zlib-dir=/usr/local/zlib --with-iconv=/usr/local --enable-mbstring=all
      --enable-mbregex --with-gd --with-png-dir=/usr/local --with-jpeg-dir=/usr/local --enable-ftp
      --with-ldap
      make; make install
      cp php.ini-dist /usr/local/lib/php.ini
      vi /usr/local/lib/php.ini und das folgende einfügen / anpassen:
      include_path = ".:/usr/local/lib/php"
      extension_dir = "/usr/local/lib/php/extensions"
      extension = fileinfo.so
      extension = sqlite.so
      extension = gettext.so
21. pear config-set http_proxy "http://root:******@servername:port/" (se necessario)
      pear config-set preferred_state beta
      pear install Auth Auth_SASL Cache DB Date File HTTP HTTP_Request Log Mail Mail_Mime
      Net_SMTP Net_Socket Net_URL Net_UserAgent_Detect PEAR PHPUnit SOAP SQLite
      XML_Parser XML_Serializer XML_Util Services_Weather
      pear upgrade all
      pear install Fileinfo
      cp /usr/lib/perl5/auto/Locale/gettext/gettext.so /usr/local/lib/php/extensions/.
      cd /usr/local/lib/php/extensions; cp -s       /usr/local/lib/php/extensions/"no-debug-..."/fileinfo.so .
      cd /usr/local/lib/php/extensions; cp -s /usr/local/lib/php/extensions/"no-debug-..."/sqlite.so .
22. cd /usr/local; tar -zcvf mod_ssl-2.8.22-1.3.33.tar.gr; ln -s mod_ssl-2.8.22-1.3.33 mod_ssl
      rm mod_ssl-2.8.22-1.3.33.tar.gz
      ./configure --with-apache=/usr/local/apache --with-ssl=/usr/local/openssl
      --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a
23. cd /usr/local/apache; make; make install
24. vi /etc/rc.d/rc.local und "/usr/local/apache/bin/apachectl stratssl" einfügen
      vi /etc/init.d/local e aggiungere "/usr/local/apache/bin/apachectl stratssl"
25. cp "/usr/local/apache/bin/apachectl /etc/init.d/httpd
26. /usr/local/apache/conf/httpd.conf anpassen:
      ServerAdmin root@ (2 Mal für Ports 80 und 443)
      ServerName (2 volte per le porte 80 e 443)
      DocumentRoot "/var/www/html" (2 volte per le porte 80 e 443)
      DirectoryIndex index.html index.php
      AddType application/x-httpd-php .php
      SSLCACertificateFile /usr/local/apache/conf/ssl.crt/ca.crt
27. mkdir /var/www; mkdir /var/www/html
      chown -R root.nogroup /var/www/html; chmod -R 775 /var/www/html
      chown -R root.nogroup /var/www/html; chmod -R 775 /var/www/html
28. installare i certificati (vedi documentazione separata per la preparazione dei certificati)
      cp /root/certificates/ca.crt /usr/local/apache/conf/ssl.crt/.
      cp /root/certificates/server.crt /usr/local/apache/conf/ssl.crt/.
      cp /root/certificates/server.csr /usr/local/apache/conf/ssl.csr/.
      cp /root/certificates/ca.key /usr/local/apache/conf/ssl.key/.
      cp /root/certificates/server.key /usr/local/apache/conf/ssl.key/.
29. service httpd startssl
30. vi /var/www/html/index.html (test con un file HTML)
      Aprire index.html con un browser: http://"indirizzo IP" und https://"indirizzo IP"
31. cd /var/www/html; tar -zxvf horde_DocRoot.tar.gz; rm horde_DocRoot.tar.gz
32. vi /var/www/html/horde/imp/config/motd.php anpassen:
      $SERVER_SSL_URL = 'https://"indirizzo IP"/horde';
      $SERVER_HTTP_URL = 'http://"indirizzo IP"/horde';
33. in /var/www/html/horde/scripts/sql/create.mysql.sql cambiare la password dello user MySQL
34. aprire tabella MySQL Horde:
      mysql --user=root --password='*******' < create.mysql.sql
      mysqladmin reload --user=root -p
35. modificare /var/www/html/horde/config/conf.php, aggiungere
      $conf['sql']['password'] = '"MySQL horde password"';
36. aprire tabella MySQL Turba:
      mysql --user=root --password='*******' horde < turba_objects.mysql.sql
      mysql --user=root --password='*******' horde < turba_objects.mysql_public.sql
37. aprire tabella MySQL Kronolith Tables eröffnen:
      mysql --user=root --password='*******' horde < kronolith.mysql.sql
38. aprire tabella MySQL Mnemo:
      mysql --user=root --password='*******' horde < mnemo.sql
39. aprire tabelle Nag:
      mysql --user=root --password='*******' horde < nag.sql
40. aggiunta in /etc/crontab per controllo dei Reminders:
      */1 * * * * apache /usr/local/bin/php -f /var/www/html/horde/kronolith/scripts/reminders.php
      */1 * * * * nogroup /usr/local/bin/php -f /var/www/html/horde/kronolith/scripts/reminders.php
41. installare ssmtp (SMTP mail relay):
      cd /usr/local; tar -zxvf ssmtp_2.48. tar.gz; ln -s ssmtp_2.48 ssmtp; rm ssmtp_2.48. tar.gz
      ./configure; make; make install; make install-sendmail
      vi /usr/local/etc/ssmtp/ssmtp.conf e inserire mailhub="ip mailserver"
42. installare fortune:
      rpm -Uvh fortune-1.0-35.1.fc3.rf.i386.rpm
43. vi /etc/resolv.conf e fare le seguenti aggiunte (non è necessario con indirizzo IP dinamico, DHCP):
      domain "your domain"
      nameserver 127.0.0.1
      nameserver "your first DNS server"
      nameserver "your second DNS server"

Per un utilizzo completo di Horde è necessario installare nella LAN o localmente sullo stesso server un Mailserver (Postfix, Sendmail, ...) e un IMAP/POP Server (UW IMAP, Cyrus, ...).


MESSA IN SICUREZZA
(leggere documentazione e man pages di apache,):

1.   rendere inaccessibile test.php di Horde e delle altre applicazioni:
      chmod 400 /var/www/html/horde/test.php
      chmod 400 /var/www/html/horde/imp/test.php
2.   cambiare le autorizzazioni della directory config di Horde e delle altre applicazioni:
      chmod 640 /var/www/html/horde/config/*
      chmod 640 /var/www/html/horde/imp/config/*
3.   in /etc/inetd.conf commentare le linee che iniziano con discard:
      #discard stream tcp nowait root internal
      #discard dgram udp wait root internal
      /etc/init.d/inetd restart oder killall -hup inetd
4.   in /usr/local/apache/conf/http.conf aggiungere la seguente opzione:
      ServerTokens Prod
5.   apt-get install libgdbm-dev
6.   ricompilare apache con l'opzione -enable-module=rewrite:
      ./configure "--with-layout=apache"
      "--prefix=/usr/local/apache" "--activate-module=src/modules/php4/libphp4.a"
      "--enable-module=ssl" --enable-module=rewrite
      make
      make install
      /etc/init.d/httpd restart
7.   aggiungere le seguenti linee di comando per ogni VirtualHost:
      RewriteEngine on
      RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
      RewriteRule
8.   /etc/init.d/httpd restart
9.   consigliamo l'installazione di un firewall locale sul server (vedi sotto)


FIREWALL LOCALE
(oltre al Firewall centrale consigliamo l'installazione d'un firewall locale sul server Horde; seguono due semplici esempi)

1.   Standalone server (Apache, Horde, PHP, MySQL, IMAP, Postfix sono sullo stesso server):
       Firewall (myfirewall) per Horde standalone
2.   Configurazione per più server (Apache, Horde, PHP, MySQL sono locali, Postfix e IMAP
       sono su server remoti nella LAN):
       Firewall (myfirewall) per Horde con più server


UPDATE
(per esempio upgrade mod_ssl)

1.   fare una copia delle directory /usr/local/apache/conf/ssl.*
      cp /usr/local/apache/conf/ssl.* /root/.
2.   cd /usr/local
3.   tar -zxvf mod_ssl-"versione".tar.gz
4.   rm mod_ssl
5.   ln -s mod_ssl-"version".tar.gz mod_ssl
6.   ./configure --with-apache=/usr/local/apache --with-ssl=/usr/local/openssl
       --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a --enable-module=ssl        --enable-module=rewrite 7.   cd /usr/local/apache
8.   make
9.   cp -r /root/ssl.* /usr/local/apache/conf/.
10.  /etc/init.d/httpd restart


 
: : ©2003-2025   
bequiet.ch