Horde Framework 5 unter CentOS 7.x mit Apache 2.4, PHP 7 und PHP-FPM installieren und einrichten - Grundinstallation und Konfiguration
Horde Groupware ist eine freie browserbasierte Kommunikationsplattform für den professionellen Einsatz. Die Anwender haben so die Möglichkeiten Ihre täglichen Aufgaben(-planungen) und Nachrichten komfortabel über einen Webbrowser oder von einem Smartphone/Tablett von überall her durchzuführen.
So bietet die Horde-Portalseite eine kurze Übersicht über alle wichtigen Informationen. Dort kann angezeigt werden, wie viele neue eMails aufgelaufen sind, welche Termine demnächst anstehen, welche Aufgaben noch zu erledigen sind oder auch die neuesten Nachrichten. Viele dieser Übersichten enthalten eine schnelle Zugriffsmöglichkeit auf häufig benötigte Funktionen, wie das Schreiben neuer eMails oder dem Anlegen neuer Kalendereinträge oder Aufgaben. Auch können gemeinsam genutzte Kalender, Kontakte, Aufgaben und Notizen mit Standard Komponenten des Horde-Projekts realisiert werden.
Die nachfolgende Beschreibung zeigt, wie unter Centos 7.x einen Horde 5 Groupware-Server mit PHP 7 und dem Alternativer FastCGI Process Manager installiert und konfiguriert werden kann. Im Gegensatz zur RPM-Installation mit PHP5, die hier beschrieben ist, werden wir die Installation in diesem Konfigurationsbeispiel nicht mit Hilfe svon RPM-Paketen, sondern dem PHP Extension and Application Repository - PEAR vornehmen.
Wichtige weiterführende Informationen hierzu findet man auch in der Installations-Dokumentation auf der Horde Projektseite.
Voraussetzungen und Abhängigkeiten
RPM-Pakete
Für die Installation des Horde Framworks in der Version 5 benötigen wir noch mehrere Pakete, die wir Danke der Intergration des epel-Repositories mit Hilfe von yum installieren können. Die PHP 7 Pakete beziehen wir aus dem Repository IUS. Im Detail sind das folgende Pakete:
- php70u-cli
- php70u-gd
- php70u-intl
- php70u-mbstring
- php70u-mysqlnd
- php70u-mcrypt
- php70u-pear
- php70u-pecl-geoip
- php70u-pecl-imagick
- php70u-pecl-memcached
- php70u-tidy
- perl-Image-ExifTool
- aspell
- aspell-de
- GeoIP
- GeoIP-data
- syntaxhighlighter
- prototype
- scriptaculous
# yum install php70u-cli php70u-gd php70u-intl php70u-mbstring php70u-mysqlnd \
php70u-mcrypt php70u-pear php70u-pecl-geoip php70u-pecl-imagick php70u-pecl-memcached \
php70u-tidy perl-Image-ExifTool aspell aspell-de GeoIP GeoIP-data syntaxhighlighter \
prototype scriptaculous -y
Wie immer kann man sich mit Hilfe des Aufrufes rpm -qil <Paketname> anzeigen lassen, was jedes einzelne Paket mit in das System gebracht hat.
PHP Extension and Application Repository
Zur Installation des Horde-Frameworks greifen wir auf das PHP Extension and Application Repository kurz PEAR zurück. Bevor wir aber damit beginnen können, bedarf es noch zu erst der Installation mehrerer PEAR-Pakete und eines Updates von PEAR.
# pear install -a -B -f Auth_SASL2
# pear install -a -B -f Console_GetoptPlus
# pear install -a -B -f Crypt_CHAP
# pear install -a -B -f Date
# pear install -a -B -f Date_Holidays
# pear install -a -B -f Date_Holidays_Germany
# pear install -a -B -f File
# pear install -a -B -f File_Fstab
# pear install -a -B -f HTML_Common2
# pear install -a -B -f HTML_Template_IT
# pear install -a -B -f HTTP
# pear install -a -B -f HTTP_Request2
# pear install -a -B -f HTTP_WebDAV_Server
# pear install -a -B -f Log
# pear install -a -B -f Mail
# pear install -a -B -f Mail_mimeDecode
# pear install -a -B -f Mail_Mime
# pear install -a -B -f MDB2
# pear install -a -B -f MDB2_Driver_mysql
# pear install -a -B -f MDB2_Schema
# pear install -a -B -f Net_Ping
# pear install -a -B -f Net_Sieve
# pear install -a -B -f Net_SMTP
# pear install -a -B -f Net_Traceroute
# pear install -a -B -f Net_UserAgent_Detect
# pear install -a -B -f Net_URL2
# pear install -a -B -f Numbers_Words
# pear install -a -B -f Services_Weather
# pear install -a -B -f SOAP
# pear install -a -B -f Text_CAPTCHA
# pear install -a -B -f XML_Parser
# pear install -a -B -f XML_RPC2
# pear install -a -B -f XML_Serializer
# pear install -a -B -f XML_SVG
Anschliessend prüfen wir, ob noch weitere Updates, eventuell bereits bestehender PEAR-Pakete anstehen.
# pear upgrade PEAR
Nothing to upgrade
# pear upgrade --force pear
downloading PEAR-1.9.4.tgz ... Starting to download PEAR-1.9.4.tgz (296,332 bytes) .............................................................done: 296,332 bytes downloading Archive_Tar-1.3.10.tgz ... Starting to download Archive_Tar-1.3.10.tgz (18,294 bytes) ...done: 18,294 bytes upgrade ok: channel://pear.php.net/Archive_Tar-1.3.10 upgrade ok: channel://pear.php.net/PEAR-1.9.4 PEAR: Optional feature webinstaller available (PEAR's web-based installer) PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer) PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer) PEAR: To install optional features use "pear install pear/PEAR#featurename"
# pear channel-update pear.php.net
Updating channel "pear.php.net" Update of Channel "pear.php.net" succeeded
Installation von Horde
Als Installationsort für unser virtuelles Büro verwenden wir den in unserer Anwendungsumgebung passendsten Ort so z.B. am einfachsten /srv/www/html/horde, oder einen anderen Verzeichnis, welches wir für den Apache Web-Server definiert haben. bzw. noch werden. Wir legen als erstes das betreffende Verzeichnis an.
# mkdir -p /srv/www/html/horde
Im nächsten Schritt passen wir die Zugriffs- und Verzeichnisrechte des gerade angelegten Verzeichnisses an.
# chown -R root:php-fpm /srv/www/html/horde
# chmod -R 775 /srv/www/html/horde
Zur Installation von Horde über das PHP Extension and Application Repository sind nun folgende Schritte notwendig:
Channel horde Registrierung
Mit Hilfe des nachfolgenden Befehls, registrieren wir nun als erstes den Channel Horde beim lokalen PHP Extension and Application Repository.
# pear channel-discover pear.horde.org
Adding Channel "pear.horde.org" succeeded Discovery of channel "pear.horde.org" succeeded
Role Definition
Im nächsten Schritt definieren wir das Verzeichnis, in dem Horde installiert werden soll. In unserem Fall ist das Eingangs definierte Verzeichnis /srv/www/html/horde unseres Apache Webservers.
# pear install horde/horde_role
downloading Horde_Role-1.0.1.tgz ... Starting to download Horde_Role-1.0.1.tgz (10,977 bytes) .....done: 10,977 bytes install ok: channel://pear.horde.org/Horde_Role-1.0.1 horde/Horde_Role has post-install scripts: /usr/share/pear/PEAR/Installer/Role/Horde/Role.php Horde_Role: Use "pear run-scripts horde/Horde_Role" to finish setup. DO NOT RUN SCRIPTS FROM UNTRUSTED SOURCES
Anschließend geben wir der Horde_Role noch das Verzeichnis bekannt, in welches anschließend die Installation erfolgen soll.
# pear run-scripts horde/horde_role
Including external post-installation script "/usr/share/pear/PEAR/Installer/Role/Horde/Role.php" - any errors are in this script Inclusion succeeded running post-install script "Horde_Role_postinstall->init()" init succeeded Filesystem location for the base Horde application
Hier geben wir nun das Verzeichnis unserer Hordeinstallation /srv/www/html/horde/ ein.
Configuration successfully saved to PEAR config. Install scripts complete
Installation des Frameworks
Nun erfolgt die Installation des Frameworks über das PHP Extension and Application Repository. Entsprechende Abhängigkeiten können nun Dank des PEAR automatisch aufgelöst werden. Die beiden Parameter -B und -a legen fest, dass keine PECL-Pakete aufgelöst, heruntergeladen und separat kompiliert werden sollen.
# pear install -B -a horde/horde
WARNING: "pear/Console_Getopt" is deprecated in favor of "pear/Console_GetoptPlus" Failed to download pecl/sasl within preferred state "stable", latest release is version 0.1.0, stability "alpha", use "channel://pecl.php.net/sasl-0.1.0" to install Failed to download horde/Horde_Backup within preferred state "stable", latest release is version 1.0.0RC1, stability "beta", use "channel://pear.horde.org/Horde_Backup-1.0.0RC1" to install Failed to download pecl/idn within preferred state "stable", latest release is version 0.2.0, stability "beta", use "channel://pecl.php.net/idn-0.2.0" to install Failed to download pear/Console_Color2 within preferred state "stable", latest release is version 0.1.2, stability "alpha", use "channel://pear.php.net/Console_Color2-0.1.2" to install Unknown remote channel: pear.nrk.io ^C [root@vml000107 ~]# ll /srv/www/html/horde/ total 0 [root@vml000107 ~]# pear install -B -a horde/horde WARNING: "pear/Console_Getopt" is deprecated in favor of "pear/Console_GetoptPlus" Failed to download pecl/sasl within preferred state "stable", latest release is version 0.1.0, stability "alpha", use "channel://pecl.php.net/sasl-0.1.0" to install Failed to download horde/Horde_Backup within preferred state "stable", latest release is version 1.0.0RC1, stability "beta", use "channel://pear.horde.org/Horde_Backup-1.0.0RC1" to install Failed to download pecl/idn within preferred state "stable", latest release is version 0.2.0, stability "beta", use "channel://pecl.php.net/idn-0.2.0" to install Failed to download pear/Console_Color2 within preferred state "stable", latest release is version 0.1.2, stability "alpha", use "channel://pear.php.net/Console_Color2-0.1.2" to install Unknown remote channel: pear.nrk.io WARNING: "pear/HTTP_Request" is deprecated in favor of "pear/HTTP_Request2" WARNING: "pecl/mongo" is deprecated in favor of "channel:///mongodb" WARNING: "pear/Auth_SASL" is deprecated in favor of "pear/Auth_SASL2" horde/Horde_Auth can optionally use package "pecl/sasl" horde/Horde_Core can optionally use package "horde/Horde_Backup" (version >= 1.0.0, version <= 2.0.0alpha1, excluded versions: 3.0.0alpha1) horde/Horde_Mime can optionally use package "pecl/idn" horde/Horde_Rpc can optionally use PHP extension "soap" horde/Horde_Rpc can optionally use PHP extension "xmlrpc" horde/Horde_Db can optionally use PHP extension "mysql" horde/Horde_Db can optionally use PHP extension "oci8" pear/Console_Table can optionally use package "pear/Console_Color2" (version >= 0.1.2) horde/Horde_Cache can optionally use PHP extension "eaccelerator" (version >= 0.9.5, version <= 0.9.6, excluded versions: 0.9.6) horde/Horde_Cache can optionally use PHP extension "xcache" horde/Horde_HashTable can optionally use package "channel://pear.nrk.io/Predis" (version >= 0.8.3) pecl/ssh2 requires PHP (version >= 4.0.0, version <= 6.0.0), installed version is 7.0.23 pecl/mongo requires PHP (version >= 5.3.0, version <= 5.99.99), installed version is 7.0.23 downloading horde-5.2.17.tgz ... Starting to download horde-5.2.17.tgz (2,946,297 bytes) ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................done: 2,946,297 bytes downloading Horde_Alarm-2.2.10.tgz ... Starting to download Horde_Alarm-2.2.10.tgz (39,026 bytes) ...done: 39,026 bytes downloading Horde_Argv-2.1.0.tgz ... Starting to download Horde_Argv-2.1.0.tgz (64,636 bytes) ...done: 64,636 bytes downloading Horde_Auth-2.2.2.tgz ... Starting to download Horde_Auth-2.2.2.tgz (60,174 bytes) ...done: 60,174 bytes downloading Horde_Autoloader-2.1.2.tgz ... Starting to download Horde_Autoloader-2.1.2.tgz (15,521 bytes) ...done: 15,521 bytes downloading Horde_Browser-2.0.15.tgz ... Starting to download Horde_Browser-2.0.15.tgz (37,935 bytes) ...done: 37,935 bytes downloading Horde_Core-2.31.0.tgz ... Starting to download Horde_Core-2.31.0.tgz (1,662,583 bytes) ...done: 1,662,583 bytes downloading Horde_Date-2.4.1.tgz ... Starting to download Horde_Date-2.4.1.tgz (73,961 bytes) ...done: 73,961 bytes downloading Horde_Exception-2.0.8.tgz ... Starting to download Horde_Exception-2.0.8.tgz (24,402 bytes) ...done: 24,402 bytes downloading Horde_Form-2.0.18.tgz ... Starting to download Horde_Form-2.0.18.tgz (197,432 bytes) ...done: 197,432 bytes downloading Horde_Group-2.1.1.tgz ... Starting to download Horde_Group-2.1.1.tgz (23,174 bytes) ...done: 23,174 bytes downloading Horde_Http-2.1.7.tgz ... Starting to download Horde_Http-2.1.7.tgz (15,199 bytes) ...done: 15,199 bytes downloading Horde_Image-2.5.2.tgz ... Starting to download Horde_Image-2.5.2.tgz (778,627 bytes) ...done: 778,627 bytes downloading Horde_LoginTasks-2.0.7.tgz ... Starting to download Horde_LoginTasks-2.0.7.tgz (30,230 bytes) ...done: 30,230 bytes downloading Horde_Mail-2.6.4.tgz ... Starting to download Horde_Mail-2.6.4.tgz (38,087 bytes) ...done: 38,087 bytes downloading Horde_Mime-2.10.3.tgz ... Starting to download Horde_Mime-2.10.3.tgz (143,657 bytes) ...done: 143,657 bytes downloading Horde_Nls-2.2.1.tgz ... Starting to download Horde_Nls-2.2.1.tgz (448,774 bytes) ...done: 448,774 bytes downloading Horde_Perms-2.1.7.tgz ... Starting to download Horde_Perms-2.1.7.tgz (37,824 bytes) ...done: 37,824 bytes downloading Horde_Prefs-2.9.0.tgz ... Starting to download Horde_Prefs-2.9.0.tgz (54,916 bytes) ...done: 54,916 bytes downloading Horde_Rpc-2.1.8.tgz ... Starting to download Horde_Rpc-2.1.8.tgz (39,096 bytes) ...done: 39,096 bytes downloading Horde_Serialize-2.0.5.tgz ... Starting to download Horde_Serialize-2.0.5.tgz (16,090 bytes) ...done: 16,090 bytes downloading Horde_Support-2.2.0.tgz ... Starting to download Horde_Support-2.2.0.tgz (24,787 bytes) ...done: 24,787 bytes downloading Horde_Text_Diff-2.2.0.tgz ... Starting to download Horde_Text_Diff-2.2.0.tgz (29,673 bytes) ...done: 29,673 bytes downloading Horde_Token-2.0.9.tgz ... Starting to download Horde_Token-2.0.9.tgz (31,728 bytes) ...done: 31,728 bytes downloading Horde_Text_Filter-2.3.5.tgz ... Starting to download Horde_Text_Filter-2.3.5.tgz (54,438 bytes) ...done: 54,438 bytes downloading Horde_Tree-2.0.5.tgz ... Starting to download Horde_Tree-2.0.5.tgz (19,049 bytes) ...done: 19,049 bytes downloading Horde_Url-2.2.6.tgz ... Starting to download Horde_Url-2.2.6.tgz (16,479 bytes) ...done: 16,479 bytes downloading Horde_Util-2.5.8.tgz ... Starting to download Horde_Util-2.5.8.tgz (36,540 bytes) ...done: 36,540 bytes downloading Horde_View-2.0.6.tgz ... Starting to download Horde_View-2.0.6.tgz (43,952 bytes) ...done: 43,952 bytes downloading Horde_Vfs-2.4.0.tgz ... Starting to download Horde_Vfs-2.4.0.tgz (73,791 bytes) ...done: 73,791 bytes downloading Net_DNS2-1.4.3.tgz ... Starting to download Net_DNS2-1.4.3.tgz (82,572 bytes) ...done: 82,572 bytes downloading Horde_ActiveSync-2.38.8.tgz ... Starting to download Horde_ActiveSync-2.38.8.tgz (386,632 bytes) ...done: 386,632 bytes downloading Horde_Db-2.4.0.tgz ... Starting to download Horde_Db-2.4.0.tgz (96,916 bytes) ...done: 96,916 bytes downloading Horde_Feed-2.0.4.tgz ... Starting to download Horde_Feed-2.0.4.tgz (1,612,541 bytes) ...done: 1,612,541 bytes downloading Horde_Oauth-2.0.4.tgz ... Starting to download Horde_Oauth-2.0.4.tgz (6,175 bytes) ...done: 6,175 bytes downloading Horde_OpenXchange-1.0.1.tgz ... Starting to download Horde_OpenXchange-1.0.1.tgz (6,006 bytes) ...done: 6,006 bytes downloading Horde_Service_Facebook-2.0.10.tgz ... Starting to download Horde_Service_Facebook-2.0.10.tgz (31,330 bytes) ...done: 31,330 bytes downloading Horde_Service_Twitter-2.1.6.tgz ... Starting to download Horde_Service_Twitter-2.1.6.tgz (9,756 bytes) ...done: 9,756 bytes downloading Horde_Service_Weather-2.5.4.tgz ... Starting to download Horde_Service_Weather-2.5.4.tgz (215,881 bytes) ...done: 215,881 bytes downloading Horde_SyncMl-2.0.7.tgz ... Starting to download Horde_SyncMl-2.0.7.tgz (136,309 bytes) ...done: 136,309 bytes downloading Console_Table-1.3.0.tgz ... Starting to download Console_Table-1.3.0.tgz (11,391 bytes) ...done: 11,391 bytes downloading File_Find-1.3.3.tgz ... Starting to download File_Find-1.3.3.tgz (8,212 bytes) ...done: 8,212 bytes downloading Horde_Translation-2.2.2.tgz ... Starting to download Horde_Translation-2.2.2.tgz (15,959 bytes) ...done: 15,959 bytes downloading Horde_Log-2.3.0.tgz ... Starting to download Horde_Log-2.3.0.tgz (14,806 bytes) ...done: 14,806 bytes downloading Horde_Notification-2.0.4.tgz ... Starting to download Horde_Notification-2.0.4.tgz (21,018 bytes) ...done: 21,018 bytes downloading Horde_Test-2.6.3.tgz ... Starting to download Horde_Test-2.6.3.tgz (732,814 bytes) ...done: 732,814 bytes downloading Horde_Cli-2.2.4.tgz ... Starting to download Horde_Cli-2.2.4.tgz (29,622 bytes) ...done: 29,622 bytes downloading Horde_History-2.3.6.tgz ... Starting to download Horde_History-2.3.6.tgz (26,205 bytes) ...done: 26,205 bytes downloading Horde_Lock-2.1.4.tgz ... Starting to download Horde_Lock-2.1.4.tgz (17,580 bytes) ...done: 17,580 bytes downloading Horde_Imap_Client-2.29.15.tgz ... Starting to download Horde_Imap_Client-2.29.15.tgz (250,047 bytes) ...done: 250,047 bytes downloading Horde_Kolab_Session-2.0.3.tgz ... Starting to download Horde_Kolab_Session-2.0.3.tgz (21,250 bytes) ...done: 21,250 bytes downloading Horde_Ldap-2.4.0.tgz ... Starting to download Horde_Ldap-2.4.0.tgz (65,012 bytes) ...done: 65,012 bytes downloading Horde_Imsp-2.0.10.tgz ... Starting to download Horde_Imsp-2.0.10.tgz (33,324 bytes) ...done: 33,324 bytes downloading pam-1.0.3.tgz ... Starting to download pam-1.0.3.tgz (6,671 bytes) ...done: 6,671 bytes downloading Horde_Cache-2.5.5.tgz ... Starting to download Horde_Cache-2.5.5.tgz (27,049 bytes) ...done: 27,049 bytes downloading Horde_Compress-2.2.1.tgz ... Starting to download Horde_Compress-2.2.1.tgz (2,198,999 bytes) ...done: 2,198,999 bytes downloading Horde_Compress_Fast-1.1.1.tgz ... Starting to download Horde_Compress_Fast-1.1.1.tgz (12,992 bytes) ...done: 12,992 bytes downloading Horde_Controller-2.0.4.tgz ... Starting to download Horde_Controller-2.0.4.tgz (10,675 bytes) ...done: 10,675 bytes downloading Horde_CssMinify-1.0.4.tgz ... Starting to download Horde_CssMinify-1.0.4.tgz (11,717 bytes) ...done: 11,717 bytes downloading Horde_Data-2.1.4.tgz ... Starting to download Horde_Data-2.1.4.tgz (44,351 bytes) ...done: 44,351 bytes downloading Horde_HashTable-1.2.6.tgz ... Starting to download Horde_HashTable-1.2.6.tgz (16,739 bytes) ...done: 16,739 bytes downloading Horde_Injector-2.0.5.tgz ... Starting to download Horde_Injector-2.0.5.tgz (21,867 bytes) ...done: 21,867 bytes downloading Horde_JavascriptMinify-1.1.5.tgz ... Starting to download Horde_JavascriptMinify-1.1.5.tgz (15,419 bytes) ...done: 15,419 bytes downloading Horde_Mime_Viewer-2.2.2.tgz ... Starting to download Horde_Mime_Viewer-2.2.2.tgz (410,159 bytes) ...done: 410,159 bytes downloading Horde_Pack-1.0.7.tgz ... Starting to download Horde_Pack-1.0.7.tgz (16,074 bytes) ...done: 16,074 bytes downloading Horde_Secret-2.0.6.tgz ... Starting to download Horde_Secret-2.0.6.tgz (13,638 bytes) ...done: 13,638 bytes downloading Horde_SessionHandler-2.2.9.tgz ... Starting to download Horde_SessionHandler-2.2.9.tgz (24,709 bytes) ...done: 24,709 bytes downloading Horde_Share-2.1.2.tgz ... Starting to download Horde_Share-2.1.2.tgz (61,126 bytes) ...done: 61,126 bytes downloading Horde_Template-2.0.3.tgz ... Starting to download Horde_Template-2.0.3.tgz (14,897 bytes) ...done: 14,897 bytes downloading Horde_Crypt-2.7.11.tgz ... Starting to download Horde_Crypt-2.7.11.tgz (154,850 bytes) ...done: 154,850 bytes downloading Horde_Dav-1.1.4.tgz ... Starting to download Horde_Dav-1.1.4.tgz (247,189 bytes) ...done: 247,189 bytes downloading Horde_Editor-2.0.5.tgz ... Starting to download Horde_Editor-2.0.5.tgz (744,870 bytes) ...done: 744,870 bytes downloading Horde_ElasticSearch-1.0.4.tgz ... Starting to download Horde_ElasticSearch-1.0.4.tgz (4,006 bytes) ...done: 4,006 bytes downloading Horde_Icalendar-2.1.7.tgz ... Starting to download Horde_Icalendar-2.1.7.tgz (107,673 bytes) ...done: 107,673 bytes downloading Horde_JavascriptMinify_Jsmin-1.0.2.tgz ... Starting to download Horde_JavascriptMinify_Jsmin-1.0.2.tgz (4,826 bytes) ...done: 4,826 bytes downloading Horde_Kolab_Server-2.0.5.tgz ... Starting to download Horde_Kolab_Server-2.0.5.tgz (101,943 bytes) ...done: 101,943 bytes downloading Horde_Kolab_Storage-2.2.3.tgz ... Starting to download Horde_Kolab_Storage-2.2.3.tgz (178,498 bytes) ...done: 178,498 bytes downloading Horde_Mongo-1.1.0.tgz ... Starting to download Horde_Mongo-1.1.0.tgz (99,713 bytes) ...done: 99,713 bytes downloading Horde_Queue-1.1.5.tgz ... Starting to download Horde_Queue-1.1.5.tgz (12,009 bytes) ...done: 12,009 bytes downloading Horde_Routes-2.0.5.tgz ... Starting to download Horde_Routes-2.0.5.tgz (45,034 bytes) ...done: 45,034 bytes downloading Horde_SpellChecker-2.1.3.tgz ... Starting to download Horde_SpellChecker-2.1.3.tgz (13,255 bytes) ...done: 13,255 bytes downloading Text_LanguageDetect-1.0.0.tgz ... Starting to download Text_LanguageDetect-1.0.0.tgz (125,576 bytes) ...done: 125,576 bytes downloading pecl_http-3.1.0.tgz ... Starting to download pecl_http-3.1.0.tgz (214,166 bytes) ...done: 214,166 bytes downloading Horde_Stream-1.6.3.tgz ... Starting to download Horde_Stream-1.6.3.tgz (18,014 bytes) ...done: 18,014 bytes downloading Horde_Idna-1.1.1.tgz ... Starting to download Horde_Idna-1.1.1.tgz (9,835 bytes) ...done: 9,835 bytes downloading Horde_Stream_Filter-2.0.4.tgz ... Starting to download Horde_Stream_Filter-2.0.4.tgz (13,535 bytes) ...done: 13,535 bytes downloading Horde_Smtp-1.9.5.tgz ... Starting to download Horde_Smtp-1.9.5.tgz (33,751 bytes) ...done: 33,751 bytes downloading Horde_Stream_Wrapper-2.1.3.tgz ... Starting to download Horde_Stream_Wrapper-2.1.3.tgz (5,524 bytes) ...done: 5,524 bytes downloading Horde_ListHeaders-1.2.5.tgz ... Starting to download Horde_ListHeaders-1.2.5.tgz (17,486 bytes) ...done: 17,486 bytes downloading Horde_Text_Flowed-2.0.3.tgz ... Starting to download Horde_Text_Flowed-2.0.3.tgz (14,273 bytes) ...done: 14,273 bytes downloading intl-3.0.0.tgz ... Starting to download intl-3.0.0.tgz (248,200 bytes) ...done: 248,200 bytes downloading Horde_Xml_Element-2.0.4.tgz ... Starting to download Horde_Xml_Element-2.0.4.tgz (10,932 bytes) ...done: 10,932 bytes downloading LZF-1.6.6.tgz ... Starting to download LZF-1.6.6.tgz (17,603 bytes) ...done: 17,603 bytes downloading xdiff-2.0.1.tgz ... Starting to download xdiff-2.0.1.tgz (10,418 bytes) ...done: 10,418 bytes downloading Horde_Text_Filter_Jsmin-1.0.2.tgz ... Starting to download Horde_Text_Filter_Jsmin-1.0.2.tgz (4,646 bytes) ...done: 4,646 bytes downloading Horde_Mapi-1.0.8.tgz ... Starting to download Horde_Mapi-1.0.8.tgz (18,380 bytes) ...done: 18,380 bytes downloading Horde_Xml_Wbxml-2.0.3.tgz ... Starting to download Horde_Xml_Wbxml-2.0.3.tgz (26,620 bytes) ...done: 26,620 bytes downloading Horde_Constraint-2.0.3.tgz ... Starting to download Horde_Constraint-2.0.3.tgz (5,073 bytes) ...done: 5,073 bytes downloading Horde_Scribe-2.0.3.tgz ... Starting to download Horde_Scribe-2.0.3.tgz (5,106 bytes) ...done: 5,106 bytes downloading Horde_Socket_Client-2.1.1.tgz ... Starting to download Horde_Socket_Client-2.1.1.tgz (12,852 bytes) ...done: 12,852 bytes downloading Horde_Crypt_Blowfish-1.1.2.tgz ... Starting to download Horde_Crypt_Blowfish-1.1.2.tgz (26,056 bytes) ...done: 26,056 bytes downloading Horde_Stringprep-1.0.4.tgz ... Starting to download Horde_Stringprep-1.0.4.tgz (65,383 bytes) ...done: 65,383 bytes downloading Horde_Memcache-2.1.1.tgz ... Starting to download Horde_Memcache-2.1.1.tgz (15,009 bytes) ...done: 15,009 bytes downloading APC-3.1.13.tgz ... Starting to download APC-3.1.13.tgz (171,591 bytes) ...done: 171,591 bytes downloading horde_lz4-1.0.10.tgz ... Starting to download horde_lz4-1.0.10.tgz (31,229 bytes) ...done: 31,229 bytes downloading Horde_Css_Parser-1.0.11.tgz ... Starting to download Horde_Css_Parser-1.0.11.tgz (81,943 bytes) ...done: 81,943 bytes downloading msgpack-2.0.2.tgz ... Starting to download msgpack-2.0.2.tgz (45,601 bytes) ...done: 45,601 bytes downloading Horde_Kolab_Format-2.0.9.tgz ... Starting to download Horde_Kolab_Format-2.0.9.tgz (58,281 bytes) ...done: 58,281 bytes downloading Net_IMAP-1.1.3.tgz ... Starting to download Net_IMAP-1.1.3.tgz (41,082 bytes) ...done: 41,082 bytes downloading mongodb-1.3.0.tgz ... Starting to download mongodb-1.3.0.tgz (927,842 bytes) ...done: 927,842 bytes downloading raphf-2.0.0.tgz ... Starting to download raphf-2.0.0.tgz (15,715 bytes) ...done: 15,715 bytes downloading propro-2.0.1.tgz ... Starting to download propro-2.0.1.tgz (13,399 bytes) ...done: 13,399 bytes downloading Horde_Thrift-2.0.3.tgz ... Starting to download Horde_Thrift-2.0.3.tgz (22,696 bytes) ...done: 22,696 bytes downloading memcache-2.2.7.tgz ... Starting to download memcache-2.2.7.tgz (36,459 bytes) ...done: 36,459 bytes install ok: channel://pear.horde.org/Horde_Autoloader-2.1.2 install ok: channel://pear.horde.org/Horde_Util-2.5.8 install ok: channel://pear.php.net/Net_DNS2-1.4.3 install ok: channel://pear.php.net/Console_Table-1.3.0 install ok: channel://pear.php.net/File_Find-1.3.3 install ok: channel://pear.horde.org/Horde_Translation-2.2.2 install ok: channel://pecl.php.net/pam-1.0.3 install ok: channel://pear.horde.org/Horde_Template-2.0.3 install ok: channel://pear.horde.org/Horde_Mongo-1.1.0 install ok: channel://pear.horde.org/Horde_Queue-1.1.5 install ok: channel://pear.php.net/Text_LanguageDetect-1.0.0 install ok: channel://pear.horde.org/Horde_Stream_Filter-2.0.4 install ok: channel://pear.horde.org/Horde_Stream_Wrapper-2.1.3 install ok: channel://pecl.php.net/intl-3.0.0 install ok: channel://pecl.php.net/LZF-1.6.6 install ok: channel://pecl.php.net/xdiff-2.0.1 install ok: channel://pear.horde.org/Horde_Constraint-2.0.3 install ok: channel://pear.horde.org/Horde_Stringprep-1.0.4 install ok: channel://pecl.php.net/APC-3.1.13 install ok: channel://pear.horde.org/horde_lz4-1.0.10 install ok: channel://pear.horde.org/Horde_Css_Parser-1.0.11 install ok: channel://pecl.php.net/msgpack-2.0.2 install ok: channel://pear.php.net/Net_IMAP-1.1.3 install ok: channel://pecl.php.net/mongodb-1.3.0 install ok: channel://pecl.php.net/raphf-2.0.0 install ok: channel://pecl.php.net/propro-2.0.1 install ok: channel://pear.horde.org/Horde_Thrift-2.0.3 install ok: channel://pecl.php.net/memcache-2.2.7 install ok: channel://pear.horde.org/Horde_Exception-2.0.8 install ok: channel://pear.horde.org/Horde_LoginTasks-2.0.7 install ok: channel://pear.horde.org/Horde_Nls-2.2.1 install ok: channel://pear.horde.org/Horde_Imsp-2.0.10 install ok: channel://pecl.php.net/pecl_http-3.1.0 install ok: channel://pear.horde.org/Horde_ListHeaders-1.2.5 install ok: channel://pear.horde.org/Horde_Text_Flowed-2.0.3 install ok: channel://pear.horde.org/Horde_Xml_Wbxml-2.0.3 install ok: channel://pear.horde.org/Horde_Scribe-2.0.3 install ok: channel://pear.horde.org/Horde_Auth-2.2.2 install ok: channel://pear.horde.org/Horde_Browser-2.0.15 install ok: channel://pear.horde.org/Horde_Date-2.4.1 install ok: channel://pear.horde.org/Horde_Serialize-2.0.5 install ok: channel://pear.horde.org/Horde_Support-2.2.0 install ok: channel://pear.horde.org/Horde_Text_Diff-2.2.0 install ok: channel://pear.horde.org/Horde_Url-2.2.6 install ok: channel://pear.horde.org/Horde_Vfs-2.4.0 install ok: channel://pear.horde.org/Horde_Log-2.3.0 install ok: channel://pear.horde.org/Horde_Notification-2.0.4 install ok: channel://pear.horde.org/Horde_Kolab_Session-2.0.3 install ok: channel://pear.horde.org/Horde_Ldap-2.4.0 install ok: channel://pear.horde.org/Horde_Compress_Fast-1.1.1 install ok: channel://pear.horde.org/Horde_HashTable-1.2.6 install ok: channel://pear.horde.org/Horde_Injector-2.0.5 install ok: channel://pear.horde.org/Horde_Routes-2.0.5 install ok: channel://pear.horde.org/Horde_SpellChecker-2.1.3 install ok: channel://pear.horde.org/Horde_Stream-1.6.3 install ok: channel://pear.horde.org/Horde_Idna-1.1.1 install ok: channel://pear.horde.org/Horde_Xml_Element-2.0.4 install ok: channel://pear.horde.org/Horde_Socket_Client-2.1.1 install ok: channel://pear.horde.org/Horde_Memcache-2.1.1 install ok: channel://pear.horde.org/Horde_Kolab_Format-2.0.9 install ok: channel://pear.horde.org/Horde_Alarm-2.2.10 install ok: channel://pear.horde.org/Horde_Group-2.1.1 install ok: channel://pear.horde.org/Horde_Http-2.1.7 install ok: channel://pear.horde.org/Horde_Image-2.5.2 install ok: channel://pear.horde.org/Horde_Mime-2.10.3 install ok: channel://pear.horde.org/Horde_Token-2.0.9 install ok: channel://pear.horde.org/Horde_Text_Filter-2.3.5 install ok: channel://pear.horde.org/Horde_Tree-2.0.5 install ok: channel://pear.horde.org/Horde_View-2.0.6 install ok: channel://pear.horde.org/Horde_Db-2.4.0 install ok: channel://pear.horde.org/Horde_Test-2.6.3 install ok: channel://pear.horde.org/Horde_Cli-2.2.4 install ok: channel://pear.horde.org/Horde_Lock-2.1.4 install ok: channel://pear.horde.org/Horde_Cache-2.5.5 install ok: channel://pear.horde.org/Horde_Controller-2.0.4 install ok: channel://pear.horde.org/Horde_CssMinify-1.0.4 install ok: channel://pear.horde.org/Horde_JavascriptMinify-1.1.5 install ok: channel://pear.horde.org/Horde_Pack-1.0.7 install ok: channel://pear.horde.org/Horde_SessionHandler-2.2.9 install ok: channel://pear.horde.org/Horde_Editor-2.0.5 install ok: channel://pear.horde.org/Horde_Kolab_Server-2.0.5 install ok: channel://pear.horde.org/Horde_Mapi-1.0.8 install ok: channel://pear.horde.org/Horde_Crypt_Blowfish-1.1.2 install ok: channel://pear.horde.org/Horde_Argv-2.1.0 install ok: channel://pear.horde.org/Horde_Mail-2.6.4 install ok: channel://pear.horde.org/Horde_Perms-2.1.7 install ok: channel://pear.horde.org/Horde_Feed-2.0.4 install ok: channel://pear.horde.org/Horde_Oauth-2.0.4 install ok: channel://pear.horde.org/Horde_Service_Facebook-2.0.10 install ok: channel://pear.horde.org/Horde_Service_Weather-2.5.4 install ok: channel://pear.horde.org/Horde_History-2.3.6 install ok: channel://pear.horde.org/Horde_Compress-2.2.1 install ok: channel://pear.horde.org/Horde_Secret-2.0.6 install ok: channel://pear.horde.org/Horde_Crypt-2.7.11 install ok: channel://pear.horde.org/Horde_ElasticSearch-1.0.4 install ok: channel://pear.horde.org/Horde_JavascriptMinify_Jsmin-1.0.2 install ok: channel://pear.horde.org/Horde_Kolab_Storage-2.2.3 install ok: channel://pear.horde.org/Horde_Text_Filter_Jsmin-1.0.2 install ok: channel://pear.horde.org/Horde_Prefs-2.9.0 install ok: channel://pear.horde.org/Horde_OpenXchange-1.0.1 install ok: channel://pear.horde.org/Horde_Service_Twitter-2.1.6 install ok: channel://pear.horde.org/Horde_Imap_Client-2.29.15 install ok: channel://pear.horde.org/Horde_Mime_Viewer-2.2.2 install ok: channel://pear.horde.org/Horde_Share-2.1.2 install ok: channel://pear.horde.org/Horde_Icalendar-2.1.7 install ok: channel://pear.horde.org/Horde_Smtp-1.9.5 install ok: channel://pear.horde.org/Horde_ActiveSync-2.38.8 install ok: channel://pear.horde.org/Horde_SyncMl-2.0.7 install ok: channel://pear.horde.org/Horde_Data-2.1.4 install ok: channel://pear.horde.org/Horde_Core-2.31.0 install ok: channel://pear.horde.org/Horde_Form-2.0.18 install ok: channel://pear.horde.org/Horde_Dav-1.1.4 install ok: channel://pear.horde.org/Horde_Rpc-2.1.8 install ok: channel://pear.horde.org/horde-5.2.17
Unser Installationsverzeichnis beinhaltet nun folgende Struktur und Dateien.
/srv/www/html/horde/ ├── admin │ ├── activesync.php │ ├── alarms.php │ ├── cmdshell.php │ ├── config │ │ ├── config.php │ │ ├── diff.php │ │ ├── index.php │ │ └── scripts.php │ ├── groups.php │ ├── index.html │ ├── locale │ │ ├── de │ │ │ └── help.xml │ │ ├── en │ │ │ └── help.xml │ │ ├── es │ │ │ └── help.xml │ │ ├── eu │ │ │ └── help.xml │ │ ├── fi │ │ │ └── help.xml │ │ ├── hr │ │ │ └── help.xml │ │ ├── hu │ │ │ └── help.xml │ │ ├── lv │ │ │ └── help.xml │ │ └── nl │ │ └── help.xml │ ├── locks.php │ ├── perms │ │ ├── addchild.php │ │ ├── delete.php │ │ ├── edit.php │ │ └── index.php │ ├── phpshell.php │ ├── sessions.php │ ├── signup_confirm.php │ ├── sqlshell.php │ └── user.php ├── config │ ├── conf.php.dist │ ├── conf.xml │ ├── hooks.php.dist │ ├── mime_drivers.php │ ├── motd.php │ ├── nls.php │ ├── prefs.php │ ├── registry.d │ │ └── README │ ├── registry.php │ └── spelling.php ├── index.php ├── install │ └── horde.php ├── js │ ├── accesskeys.js │ ├── activesyncadmin.js │ ├── activesyncprefs.js │ ├── addressbooksprefs.js │ ├── alarmprefs.js │ ├── autocomplete.js │ ├── calendar.js │ ├── categoryprefs.js │ ├── ckeditor │ │ ├── ckeditor_basic.js │ │ ├── ckeditor.js │ │ ├── config.js │ │ ├── contents.css │ │ ├── images │ │ │ └── spacer.gif │ │ ├── lang │ │ │ ├── af.js │ │ │ ├── ar.js │ │ │ ├── bg.js │ │ │ ├── bn.js │ │ │ ├── bs.js │ │ │ ├── ca.js │ │ │ ├── cs.js │ │ │ ├── cy.js │ │ │ ├── da.js │ │ │ ├── de.js │ │ │ ├── el.js │ │ │ ├── en-au.js │ │ │ ├── en-ca.js │ │ │ ├── en-gb.js │ │ │ ├── en.js │ │ │ ├── eo.js │ │ │ ├── es.js │ │ │ ├── et.js │ │ │ ├── eu.js │ │ │ ├── fa.js │ │ │ ├── fi.js │ │ │ ├── fo.js │ │ │ ├── fr-ca.js │ │ │ ├── fr.js │ │ │ ├── gl.js │ │ │ ├── gu.js │ │ │ ├── he.js │ │ │ ├── hi.js │ │ │ ├── hr.js │ │ │ ├── hu.js │ │ │ ├── id.js │ │ │ ├── is.js │ │ │ ├── it.js │ │ │ ├── ja.js │ │ │ ├── ka.js │ │ │ ├── km.js │ │ │ ├── ko.js │ │ │ ├── ku.js │ │ │ ├── _languages.js │ │ │ ├── lt.js │ │ │ ├── lv.js │ │ │ ├── mk.js │ │ │ ├── mn.js │ │ │ ├── ms.js │ │ │ ├── nb.js │ │ │ ├── nl.js │ │ │ ├── no.js │ │ │ ├── pl.js │ │ │ ├── pt-br.js │ │ │ ├── pt.js │ │ │ ├── ro.js │ │ │ ├── ru.js │ │ │ ├── sk.js │ │ │ ├── sl.js │ │ │ ├── sr.js │ │ │ ├── sr-latn.js │ │ │ ├── sv.js │ │ │ ├── th.js │ │ │ ├── tr.js │ │ │ ├── ug.js │ │ │ ├── uk.js │ │ │ ├── vi.js │ │ │ ├── zh-cn.js │ │ │ └── zh.js │ │ ├── LICENSE.html │ │ ├── nomargin.css │ │ ├── plugins │ │ │ ├── a11yhelp │ │ │ │ ├── dialogs │ │ │ │ │ └── a11yhelp.js │ │ │ │ └── lang │ │ │ │ ├── cs.js │ │ │ │ ├── cy.js │ │ │ │ ├── da.js │ │ │ │ ├── de.js │ │ │ │ ├── el.js │ │ │ │ ├── en.js │ │ │ │ ├── eo.js │ │ │ │ ├── fa.js │ │ │ │ ├── fi.js │ │ │ │ ├── fr.js │ │ │ │ ├── gu.js │ │ │ │ ├── he.js │ │ │ │ ├── it.js │ │ │ │ ├── ku.js │ │ │ │ ├── lv.js │ │ │ │ ├── mk.js │ │ │ │ ├── nb.js │ │ │ │ ├── nl.js │ │ │ │ ├── no.js │ │ │ │ ├── pt-br.js │ │ │ │ ├── ro.js │ │ │ │ ├── sk.js │ │ │ │ ├── tr.js │ │ │ │ ├── ug.js │ │ │ │ ├── vi.js │ │ │ │ └── zh-cn.js │ │ │ ├── about │ │ │ │ └── dialogs │ │ │ │ ├── about.js │ │ │ │ └── logo_ckeditor.png │ │ │ ├── adobeair │ │ │ │ └── plugin.js │ │ │ ├── ajax │ │ │ │ └── plugin.js │ │ │ ├── autogrow │ │ │ │ └── plugin.js │ │ │ ├── bbcode │ │ │ │ └── plugin.js │ │ │ ├── clipboard │ │ │ │ └── dialogs │ │ │ │ └── paste.js │ │ │ ├── colordialog │ │ │ │ └── dialogs │ │ │ │ └── colordialog.js │ │ │ ├── devtools │ │ │ │ ├── lang │ │ │ │ │ ├── bg.js │ │ │ │ │ ├── cs.js │ │ │ │ │ ├── cy.js │ │ │ │ │ ├── da.js │ │ │ │ │ ├── de.js │ │ │ │ │ ├── el.js │ │ │ │ │ ├── en.js │ │ │ │ │ ├── eo.js │ │ │ │ │ ├── et.js │ │ │ │ │ ├── fa.js │ │ │ │ │ ├── fi.js │ │ │ │ │ ├── fr.js │ │ │ │ │ ├── gu.js │ │ │ │ │ ├── he.js │ │ │ │ │ ├── hr.js │ │ │ │ │ ├── it.js │ │ │ │ │ ├── ku.js │ │ │ │ │ ├── lv.js │ │ │ │ │ ├── nb.js │ │ │ │ │ ├── nl.js │ │ │ │ │ ├── no.js │ │ │ │ │ ├── pl.js │ │ │ │ │ ├── pt-br.js │ │ │ │ │ ├── sk.js │ │ │ │ │ ├── tr.js │ │ │ │ │ ├── ug.js │ │ │ │ │ ├── uk.js │ │ │ │ │ ├── vi.js │ │ │ │ │ └── zh-cn.js │ │ │ │ └── plugin.js │ │ │ ├── dialog │ │ │ │ └── dialogDefinition.js │ │ │ ├── div │ │ │ │ └── dialogs │ │ │ │ └── div.js │ │ │ ├── docprops │ │ │ │ ├── dialogs │ │ │ │ │ └── docprops.js │ │ │ │ └── plugin.js │ │ │ ├── find │ │ │ │ └── dialogs │ │ │ │ └── find.js │ │ │ ├── flash │ │ │ │ ├── dialogs │ │ │ │ │ └── flash.js │ │ │ │ └── images │ │ │ │ └── placeholder.png │ │ │ ├── forms │ │ │ │ ├── dialogs │ │ │ │ │ ├── button.js │ │ │ │ │ ├── checkbox.js │ │ │ │ │ ├── form.js │ │ │ │ │ ├── hiddenfield.js │ │ │ │ │ ├── radio.js │ │ │ │ │ ├── select.js │ │ │ │ │ ├── textarea.js │ │ │ │ │ └── textfield.js │ │ │ │ └── images │ │ │ │ └── hiddenfield.gif │ │ │ ├── iframe │ │ │ │ ├── dialogs │ │ │ │ │ └── iframe.js │ │ │ │ └── images │ │ │ │ └── placeholder.png │ │ │ ├── iframedialog │ │ │ │ └── plugin.js │ │ │ ├── image │ │ │ │ └── dialogs │ │ │ │ └── image.js │ │ │ ├── link │ │ │ │ ├── dialogs │ │ │ │ │ ├── anchor.js │ │ │ │ │ └── link.js │ │ │ │ └── images │ │ │ │ └── anchor.gif │ │ │ ├── liststyle │ │ │ │ └── dialogs │ │ │ │ └── liststyle.js │ │ │ ├── pagebreak │ │ │ │ └── images │ │ │ │ └── pagebreak.gif │ │ │ ├── pastefromword │ │ │ │ └── filter │ │ │ │ └── default.js │ │ │ ├── pastetext │ │ │ │ └── dialogs │ │ │ │ └── pastetext.js │ │ │ ├── placeholder │ │ │ │ ├── dialogs │ │ │ │ │ └── placeholder.js │ │ │ │ ├── lang │ │ │ │ │ ├── bg.js │ │ │ │ │ ├── cs.js │ │ │ │ │ ├── cy.js │ │ │ │ │ ├── da.js │ │ │ │ │ ├── de.js │ │ │ │ │ ├── el.js │ │ │ │ │ ├── en.js │ │ │ │ │ ├── eo.js │ │ │ │ │ ├── et.js │ │ │ │ │ ├── fa.js │ │ │ │ │ ├── fi.js │ │ │ │ │ ├── fr.js │ │ │ │ │ ├── he.js │ │ │ │ │ ├── hr.js │ │ │ │ │ ├── it.js │ │ │ │ │ ├── ku.js │ │ │ │ │ ├── lv.js │ │ │ │ │ ├── nb.js │ │ │ │ │ ├── nl.js │ │ │ │ │ ├── no.js │ │ │ │ │ ├── pl.js │ │ │ │ │ ├── pt-br.js │ │ │ │ │ ├── sk.js │ │ │ │ │ ├── tr.js │ │ │ │ │ ├── ug.js │ │ │ │ │ ├── uk.js │ │ │ │ │ ├── vi.js │ │ │ │ │ └── zh-cn.js │ │ │ │ ├── placeholder.gif │ │ │ │ └── plugin.js │ │ │ ├── preview │ │ │ │ └── preview.html │ │ │ ├── scayt │ │ │ │ └── dialogs │ │ │ │ ├── options.js │ │ │ │ └── toolbar.css │ │ │ ├── showblocks │ │ │ │ └── images │ │ │ │ ├── block_address.png │ │ │ │ ├── block_blockquote.png │ │ │ │ ├── block_div.png │ │ │ │ ├── block_h1.png │ │ │ │ ├── block_h2.png │ │ │ │ ├── block_h3.png │ │ │ │ ├── block_h4.png │ │ │ │ ├── block_h5.png │ │ │ │ ├── block_h6.png │ │ │ │ ├── block_p.png │ │ │ │ └── block_pre.png │ │ │ ├── smiley │ │ │ │ ├── dialogs │ │ │ │ │ └── smiley.js │ │ │ │ └── images │ │ │ │ ├── angel_smile.gif │ │ │ │ ├── angry_smile.gif │ │ │ │ ├── broken_heart.gif │ │ │ │ ├── confused_smile.gif │ │ │ │ ├── cry_smile.gif │ │ │ │ ├── devil_smile.gif │ │ │ │ ├── embaressed_smile.gif │ │ │ │ ├── envelope.gif │ │ │ │ ├── heart.gif │ │ │ │ ├── kiss.gif │ │ │ │ ├── lightbulb.gif │ │ │ │ ├── omg_smile.gif │ │ │ │ ├── regular_smile.gif │ │ │ │ ├── sad_smile.gif │ │ │ │ ├── shades_smile.gif │ │ │ │ ├── teeth_smile.gif │ │ │ │ ├── thumbs_down.gif │ │ │ │ ├── thumbs_up.gif │ │ │ │ ├── tounge_smile.gif │ │ │ │ ├── whatchutalkingabout_smile.gif │ │ │ │ └── wink_smile.gif │ │ │ ├── specialchar │ │ │ │ ├── dialogs │ │ │ │ │ └── specialchar.js │ │ │ │ └── lang │ │ │ │ ├── cs.js │ │ │ │ ├── cy.js │ │ │ │ ├── de.js │ │ │ │ ├── el.js │ │ │ │ ├── en.js │ │ │ │ ├── eo.js │ │ │ │ ├── et.js │ │ │ │ ├── fa.js │ │ │ │ ├── fi.js │ │ │ │ ├── fr.js │ │ │ │ ├── he.js │ │ │ │ ├── hr.js │ │ │ │ ├── it.js │ │ │ │ ├── ku.js │ │ │ │ ├── lv.js │ │ │ │ ├── nb.js │ │ │ │ ├── nl.js │ │ │ │ ├── no.js │ │ │ │ ├── pt-br.js │ │ │ │ ├── sk.js │ │ │ │ ├── tr.js │ │ │ │ ├── ug.js │ │ │ │ └── zh-cn.js │ │ │ ├── styles │ │ │ │ └── styles │ │ │ │ └── default.js │ │ │ ├── stylesheetparser │ │ │ │ └── plugin.js │ │ │ ├── syntaxhighlight │ │ │ │ ├── dialogs │ │ │ │ │ └── syntaxhighlight.js │ │ │ │ ├── images │ │ │ │ │ └── syntaxhighlight.gif │ │ │ │ ├── lang │ │ │ │ │ └── en.js │ │ │ │ └── plugin.js │ │ │ ├── table │ │ │ │ └── dialogs │ │ │ │ └── table.js │ │ │ ├── tableresize │ │ │ │ └── plugin.js │ │ │ ├── tabletools │ │ │ │ └── dialogs │ │ │ │ └── tableCell.js │ │ │ ├── templates │ │ │ │ ├── dialogs │ │ │ │ │ └── templates.js │ │ │ │ └── templates │ │ │ │ ├── default.js │ │ │ │ └── images │ │ │ │ ├── template1.gif │ │ │ │ ├── template2.gif │ │ │ │ └── template3.gif │ │ │ ├── uicolor │ │ │ │ ├── dialogs │ │ │ │ │ └── uicolor.js │ │ │ │ ├── lang │ │ │ │ │ ├── bg.js │ │ │ │ │ ├── cs.js │ │ │ │ │ ├── cy.js │ │ │ │ │ ├── da.js │ │ │ │ │ ├── de.js │ │ │ │ │ ├── el.js │ │ │ │ │ ├── en.js │ │ │ │ │ ├── eo.js │ │ │ │ │ ├── et.js │ │ │ │ │ ├── fa.js │ │ │ │ │ ├── fi.js │ │ │ │ │ ├── fr.js │ │ │ │ │ ├── he.js │ │ │ │ │ ├── hr.js │ │ │ │ │ ├── it.js │ │ │ │ │ ├── ku.js │ │ │ │ │ ├── lv.js │ │ │ │ │ ├── mk.js │ │ │ │ │ ├── nb.js │ │ │ │ │ ├── nl.js │ │ │ │ │ ├── no.js │ │ │ │ │ ├── pl.js │ │ │ │ │ ├── pt-br.js │ │ │ │ │ ├── sk.js │ │ │ │ │ ├── tr.js │ │ │ │ │ ├── ug.js │ │ │ │ │ ├── uk.js │ │ │ │ │ ├── vi.js │ │ │ │ │ └── zh-cn.js │ │ │ │ ├── plugin.js │ │ │ │ ├── uicolor.gif │ │ │ │ └── yui │ │ │ │ ├── assets │ │ │ │ │ ├── hue_bg.png │ │ │ │ │ ├── hue_thumb.png │ │ │ │ │ ├── picker_mask.png │ │ │ │ │ ├── picker_thumb.png │ │ │ │ │ └── yui.css │ │ │ │ └── yui.js │ │ │ ├── wsc │ │ │ │ └── dialogs │ │ │ │ ├── ciframe.html │ │ │ │ ├── tmpFrameset.html │ │ │ │ ├── wsc.css │ │ │ │ └── wsc.js │ │ │ └── xml │ │ │ └── plugin.js │ │ ├── skins │ │ │ ├── kama │ │ │ │ ├── dialog.css │ │ │ │ ├── editor.css │ │ │ │ ├── icons.png │ │ │ │ ├── icons_rtl.png │ │ │ │ ├── images │ │ │ │ │ ├── dialog_sides.gif │ │ │ │ │ ├── dialog_sides.png │ │ │ │ │ ├── dialog_sides_rtl.png │ │ │ │ │ ├── mini.gif │ │ │ │ │ ├── noimage.png │ │ │ │ │ ├── sprites_ie6.png │ │ │ │ │ ├── sprites.png │ │ │ │ │ └── toolbar_start.gif │ │ │ │ ├── skin.js │ │ │ │ └── templates.css │ │ │ ├── office2003 │ │ │ │ ├── dialog.css │ │ │ │ ├── editor.css │ │ │ │ ├── icons.png │ │ │ │ ├── icons_rtl.png │ │ │ │ ├── images │ │ │ │ │ ├── dialog_sides.gif │ │ │ │ │ ├── dialog_sides.png │ │ │ │ │ ├── dialog_sides_rtl.png │ │ │ │ │ ├── mini.gif │ │ │ │ │ ├── noimage.png │ │ │ │ │ ├── sprites_ie6.png │ │ │ │ │ └── sprites.png │ │ │ │ ├── skin.js │ │ │ │ └── templates.css │ │ │ └── v2 │ │ │ ├── dialog.css │ │ │ ├── editor.css │ │ │ ├── icons.png │ │ │ ├── icons_rtl.png │ │ │ ├── images │ │ │ │ ├── dialog_sides.gif │ │ │ │ ├── dialog_sides.png │ │ │ │ ├── dialog_sides_rtl.png │ │ │ │ ├── mini.gif │ │ │ │ ├── noimage.png │ │ │ │ ├── sprites_ie6.png │ │ │ │ ├── sprites.png │ │ │ │ └── toolbar_start.gif │ │ │ ├── skin.js │ │ │ └── templates.css │ │ └── themes │ │ └── default │ │ └── theme.js │ ├── colorpicker.js │ ├── contextsensitive.js │ ├── date │ │ ├── ar-SY.js │ │ ├── bg-BG.js │ │ ├── bs-BA.js │ │ ├── ca-ES.js │ │ ├── cs-CZ.js │ │ ├── da-DK.js │ │ ├── date.js │ │ ├── de-DE.js │ │ ├── el-GR.js │ │ ├── en-US.js │ │ ├── es-ES.js │ │ ├── et-EE.js │ │ ├── eu-ES.js │ │ ├── extras.js │ │ ├── fa-IR.js │ │ ├── fi-FI.js │ │ ├── fr-FR.js │ │ ├── gl-ES.js │ │ ├── he-IL.js │ │ ├── hu-HU.js │ │ ├── id-ID.js │ │ ├── is-IS.js │ │ ├── it-IT.js │ │ ├── ja-JP.js │ │ ├── ko-KR.js │ │ ├── lt-LT.js │ │ ├── lv-LV.js │ │ ├── mk-MK.js │ │ ├── nb-NO.js │ │ ├── nl-NL.js │ │ ├── nn-NO.js │ │ ├── pl-PL.js │ │ ├── pt-BR.js │ │ ├── pt-PT.js │ │ ├── ro-RO.js │ │ ├── ru-RU.js │ │ ├── sk-SK.js │ │ ├── sl-SI.js │ │ ├── sv-SE.js │ │ ├── time.js │ │ ├── tr-TR.js │ │ ├── uk-UA.js │ │ ├── zh-CN.js │ │ └── zh-TW.js │ ├── dialog.js │ ├── dragdrop2.js │ ├── excanvas │ │ ├── excanvas.js │ │ └── excanvas.min.js │ ├── facebookclient.js │ ├── flotr2 │ │ └── flotr2.js │ ├── form_assign.js │ ├── form_ghost.js │ ├── form_helpers.js │ ├── form_sections.js │ ├── growler-jquery.js │ ├── growler.js │ ├── hordeblocks.js │ ├── hordecore.js │ ├── horde-jquery-init.js │ ├── horde-jquery.js │ ├── horde.js │ ├── hordetree.js │ ├── identityselect.js │ ├── ieescguard.js │ ├── image.js │ ├── imple.js │ ├── inplaceeditor.js │ ├── jquery.mobile │ │ ├── images │ │ │ ├── ajax-loader.gif │ │ │ ├── icons-18-black.png │ │ │ ├── icons-18-white.png │ │ │ ├── icons-36-black.png │ │ │ └── icons-36-white.png │ │ ├── jquery.js │ │ ├── jquery.min.js │ │ ├── jquery.mobile.js │ │ ├── jquery.mobile.min.css │ │ ├── jquery.mobile.min.js │ │ └── plugins │ │ ├── autocomplete.js │ │ ├── form.js │ │ └── swipebutton.js │ ├── json2.js │ ├── jstorage.js │ ├── keynavlist.js │ ├── liquidmetal.js │ ├── login.js │ ├── logintasks-jquery.js │ ├── logintasks.js │ ├── map │ │ ├── bing.js │ │ ├── google.js │ │ ├── horde.js │ │ ├── img │ │ │ ├── blank.gif │ │ │ ├── cloud-popup-relative.png │ │ │ ├── drag-rectangle-off.png │ │ │ ├── drag-rectangle-on.png │ │ │ ├── east-mini.png │ │ │ ├── layer-switcher-maximize.png │ │ │ ├── layer-switcher-minimize.png │ │ │ ├── marker.png │ │ │ ├── measuring-stick-off.png │ │ │ ├── measuring-stick-on.png │ │ │ ├── north-mini.png │ │ │ ├── panning-hand-off.png │ │ │ ├── panning-hand-on.png │ │ │ ├── slider.png │ │ │ ├── south-mini.png │ │ │ ├── west-mini.png │ │ │ ├── zoombar.png │ │ │ ├── zoom-minus-mini.png │ │ │ ├── zoom-plus-mini.png │ │ │ └── zoom-world-mini.png │ │ ├── lang │ │ │ ├── ar-SY.js │ │ │ ├── bg-BG.js │ │ │ ├── ca-ES.js │ │ │ ├── cs-CZ.js │ │ │ ├── da-DK.js │ │ │ ├── de-DE.js │ │ │ ├── el-GR.js │ │ │ ├── en-CA.js │ │ │ ├── es-ES.js │ │ │ ├── fi-FI.js │ │ │ ├── fr-FR.js │ │ │ ├── gl-ES.js │ │ │ ├── hr-HR.js │ │ │ ├── hu-HU.js │ │ │ ├── id-ID.js │ │ │ ├── is-IS.js │ │ │ ├── it-IT.js │ │ │ ├── ja-JP.js │ │ │ ├── km-KH.js │ │ │ ├── nl-NL.js │ │ │ ├── nn-NO.js │ │ │ ├── no-NO.js │ │ │ ├── pt-BR.js │ │ │ ├── pt-PT.js │ │ │ ├── ru-RU.js │ │ │ ├── sk-SK.js │ │ │ ├── sv-SE.js │ │ │ ├── te-TE.js │ │ │ ├── vi-VI.js │ │ │ ├── zh-CN.js │ │ │ └── zh-TW.js │ │ ├── map.js │ │ ├── mapquest.js │ │ ├── null.js │ │ ├── ocm.js │ │ ├── OpenLayers-debug.js │ │ ├── OpenLayers.js │ │ ├── osm.js │ │ ├── owm.js │ │ └── theme │ │ └── default │ │ ├── framedCloud.css │ │ ├── google.css │ │ ├── google.tidy.css │ │ ├── ie6-style.css │ │ ├── ie6-style.tidy.css │ │ ├── img │ │ │ ├── add_point_off.png │ │ │ ├── add_point_on.png │ │ │ ├── blank.gif │ │ │ ├── close.gif │ │ │ ├── drag-rectangle-off.png │ │ │ ├── drag-rectangle-on.png │ │ │ ├── draw_line_off.png │ │ │ ├── draw_line_on.png │ │ │ ├── draw_point_off.png │ │ │ ├── draw_point_on.png │ │ │ ├── draw_polygon_off.png │ │ │ ├── draw_polygon_on.png │ │ │ ├── editing_tool_bar.png │ │ │ ├── move_feature_off.png │ │ │ ├── move_feature_on.png │ │ │ ├── navigation_history.png │ │ │ ├── overview_replacement.gif │ │ │ ├── panning-hand-off.png │ │ │ ├── panning-hand-on.png │ │ │ ├── pan_off.png │ │ │ ├── pan_on.png │ │ │ ├── pan-panel-NOALPHA.png │ │ │ ├── pan-panel.png │ │ │ ├── remove_point_off.png │ │ │ ├── remove_point_on.png │ │ │ ├── ruler.png │ │ │ ├── save_features_off.png │ │ │ ├── save_features_on.png │ │ │ ├── view_next_off.png │ │ │ ├── view_next_on.png │ │ │ ├── view_previous_off.png │ │ │ ├── view_previous_on.png │ │ │ ├── zoom-panel-NOALPHA.png │ │ │ └── zoom-panel.png │ │ ├── style.css │ │ └── style.tidy.css │ ├── md5.js │ ├── obrowser.js │ ├── open_html_helper.js │ ├── plupload │ │ ├── i18n │ │ │ ├── cs.js │ │ │ ├── da.js │ │ │ ├── de.js │ │ │ ├── es.js │ │ │ ├── fi.js │ │ │ ├── fr.js │ │ │ ├── it.js │ │ │ ├── ja.js │ │ │ ├── lv.js │ │ │ ├── nl.js │ │ │ ├── pt-br.js │ │ │ ├── ru.js │ │ │ └── sv.js │ │ ├── plupload.browserplus.js │ │ ├── plupload.flash.js │ │ ├── plupload.flash.swf │ │ ├── plupload.full.js │ │ ├── plupload.gears.js │ │ ├── plupload.html4.js │ │ ├── plupload.html5.js │ │ ├── plupload.js │ │ ├── plupload.silverlight.js │ │ ├── plupload.silverlight.xap │ │ └── uploader.js │ ├── popup.js │ ├── prefs.js │ ├── prettyautocomplete.js │ ├── problem.js │ ├── prototype.js │ ├── quickfinder.js │ ├── redbox.js │ ├── scriptaculous │ │ ├── builder.js │ │ ├── controls.js │ │ ├── dragdrop.js │ │ ├── effects.js │ │ ├── scriptaculous.js │ │ ├── slider.js │ │ ├── sound.js │ │ └── unittest.js │ ├── sidebar.js │ ├── slider2.js │ ├── smartmobile.js │ ├── smartmobile-login.js │ ├── sorter.js │ ├── sourceselect.js │ ├── spellchecker.js │ ├── stripe.js │ ├── syncmlprefs.js │ ├── syntaxhighlighter │ │ ├── LGPL-LICENSE │ │ ├── MIT-LICENSE │ │ ├── scripts │ │ │ ├── shAutoloader.js │ │ │ ├── shBrushAppleScript.js │ │ │ ├── shBrushAS3.js │ │ │ ├── shBrushBash.js │ │ │ ├── shBrushColdFusion.js │ │ │ ├── shBrushCpp.js │ │ │ ├── shBrushCSharp.js │ │ │ ├── shBrushCss.js │ │ │ ├── shBrushDelphi.js │ │ │ ├── shBrushDiff.js │ │ │ ├── shBrushErlang.js │ │ │ ├── shBrushGroovy.js │ │ │ ├── shBrushJavaFX.js │ │ │ ├── shBrushJava.js │ │ │ ├── shBrushJScript.js │ │ │ ├── shBrushPerl.js │ │ │ ├── shBrushPhp.js │ │ │ ├── shBrushPlain.js │ │ │ ├── shBrushPowerShell.js │ │ │ ├── shBrushPython.js │ │ │ ├── shBrushRuby.js │ │ │ ├── shBrushSass.js │ │ │ ├── shBrushScala.js │ │ │ ├── shBrushSql.js │ │ │ ├── shBrushVb.js │ │ │ ├── shBrushXml.js │ │ │ ├── shCore.js │ │ │ ├── shLegacy.js │ │ │ ├── syntaxhighlighter.js │ │ │ └── syntaxhighlighter.js.map │ │ ├── src │ │ │ ├── shAutoloader.js │ │ │ ├── shCore.js │ │ │ ├── shLegacy.js │ │ │ ├── syntaxhighlighter.js │ │ │ └── syntaxhighlighter.js.map │ │ └── styles │ │ ├── shCore.css │ │ ├── shCoreDefault.css │ │ ├── shCoreDjango.css │ │ ├── shCoreEclipse.css │ │ ├── shCoreEmacs.css │ │ ├── shCoreFadeToGrey.css │ │ ├── shCoreMDUltra.css │ │ ├── shCoreMidnight.css │ │ ├── shCoreRDark.css │ │ ├── shThemeDefault.css │ │ ├── shThemeDjango.css │ │ ├── shThemeEclipse.css │ │ ├── shThemeEmacs.css │ │ ├── shThemeFadeToGrey.css │ │ ├── shThemeMDUltra.css │ │ ├── shThemeMidnight.css │ │ ├── shThemeRDark.css │ │ └── theme.css │ ├── tables.js │ ├── textarearesize.js │ ├── toggle_quotes.js │ ├── tooltips.js │ ├── topbar.js │ ├── twitterclient.js │ ├── userupdate.js │ ├── vatid.js │ └── webnotification.js ├── lib │ ├── Ajax │ │ ├── Application │ │ │ ├── FacebookHandler.php │ │ │ ├── Handler.php │ │ │ └── TwitterHandler.php │ │ └── Application.php │ ├── Api.php │ ├── Application.php │ ├── Block │ │ ├── Account │ │ │ ├── Base.php │ │ │ ├── Finger.php │ │ │ ├── Ldap.php │ │ │ └── Localhost.php │ │ ├── Account.php │ │ ├── Cloud.php │ │ ├── FbStream.php │ │ ├── Feed.php │ │ ├── Fortune.php │ │ ├── Google.php │ │ ├── Iframe.php │ │ ├── Metar.php │ │ ├── Moon.php │ │ ├── Sunrise.php │ │ ├── Time.php │ │ ├── TwitterTimeline.php │ │ ├── Vatid.php │ │ └── Weather.php │ ├── core.php │ ├── LoginTasks │ │ ├── SystemTask │ │ │ ├── GarbageCollection.php │ │ │ └── Upgrade.php │ │ └── Task │ │ ├── AdminCheck.php │ │ ├── LastLogin.php │ │ └── TosAgreement.php │ ├── Prefs │ │ └── Special │ │ ├── Activesync.php │ │ ├── Category.php │ │ ├── Facebook.php │ │ ├── Syncml.php │ │ └── Twitter.php │ ├── Test.php │ ├── tests │ │ └── webroot.phpt │ ├── Tree │ │ └── Renderer │ │ ├── Menu.php │ │ └── Sidebar.php │ └── View │ ├── Sidebar.php │ └── Topbar.php ├── locale │ ├── ar │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── bg │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── bs │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── ca │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── cs │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── da │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── de │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── el │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── en │ │ └── help.xml │ ├── es │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── et │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── eu │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── fa │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── fi │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── fr │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── gl │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── he │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── horde.pot │ ├── hr │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── hu │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── id │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── is │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── it │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── ja │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── km │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── ko │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── lt │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── lv │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── mk │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── nb │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── nl │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── nn │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── pl │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── pt │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── pt_BR │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── ro │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── ru │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── sk │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── sl │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── sv │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── tr │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── uk │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ ├── zh_CN │ │ ├── help.xml │ │ └── LC_MESSAGES │ │ ├── horde.mo │ │ └── horde.po │ └── zh_TW │ ├── help.xml │ └── LC_MESSAGES │ ├── horde.mo │ └── horde.po ├── login.php ├── rampage.php ├── rpc │ └── index.php ├── rpc.php ├── services │ ├── ajax.php │ ├── cache.php │ ├── cacheview.php │ ├── changepassword.php │ ├── confirm.php │ ├── download │ │ └── index.php │ ├── facebook │ │ └── index.php │ ├── go.php │ ├── help │ │ └── index.php │ ├── images │ │ ├── pixel.php │ │ └── view.php │ ├── language.php │ ├── logintasks.php │ ├── obrowser │ │ └── index.php │ ├── portal │ │ ├── cloud_search.php │ │ ├── edit.php │ │ ├── index.php │ │ └── smartmobile.php │ ├── prefs.php │ ├── problem.php │ ├── resetpassword.php │ ├── shares │ │ └── edit.php │ ├── snooze.php │ └── twitter │ └── index.php ├── signup.php ├── static │ └── README ├── templates │ ├── activesync │ │ └── device_table.html.php │ ├── admin │ │ ├── activesync.html.php │ │ ├── alarms │ │ │ └── list.html.php │ │ ├── cmdshell.html.php │ │ ├── config │ │ │ ├── config.html.php │ │ │ ├── diff.html.php │ │ │ └── index.html.php │ │ ├── groups │ │ │ ├── add.inc │ │ │ ├── delete.inc │ │ │ └── edit.inc │ │ ├── locks │ │ │ └── list.html.php │ │ ├── menu.inc │ │ ├── phpshell.html.php │ │ ├── sessions.html.php │ │ ├── sqlshell.html.php │ │ └── user │ │ ├── approve.inc │ │ ├── clear.inc │ │ ├── listfail.inc │ │ ├── list.inc │ │ ├── noadd.inc │ │ ├── nolist.inc │ │ ├── remove.inc │ │ ├── removequeued.inc │ │ └── update.inc │ ├── block │ │ ├── cloud.inc │ │ ├── facebook_story.html.php │ │ ├── twitter-layout.html.php │ │ └── twitter_tweet.html.php │ ├── common │ │ ├── footer.html.php │ │ └── header.html.php │ ├── data │ │ ├── csvinfo.inc │ │ ├── csvmap.inc │ │ ├── date.inc │ │ ├── datemap.inc │ │ ├── datetime.inc │ │ ├── time.inc │ │ └── tsvinfo.inc │ ├── help │ │ ├── index.inc │ │ ├── menu.inc │ │ └── sidebar.inc │ ├── login │ │ ├── login.inc │ │ ├── resetpassword.inc │ │ ├── signup.inc │ │ └── smartmobile.html.php │ ├── logintasks │ │ ├── logintasks.html.php │ │ └── smartmobile.html.php │ ├── portal │ │ ├── add.inc │ │ ├── block.inc │ │ ├── edit.inc │ │ ├── layout.inc │ │ ├── new.inc │ │ └── smartmobile.inc │ ├── prefs │ │ ├── activesync.html.php │ │ ├── addressbooks.html │ │ ├── alarm.html │ │ ├── app.html │ │ ├── begin.html │ │ ├── category.html.php │ │ ├── checkbox.html │ │ ├── end.html │ │ ├── enum.html │ │ ├── error_end.html │ │ ├── error_start.html │ │ ├── facebook.html.php │ │ ├── identityselect.html │ │ ├── link.html │ │ ├── multienum.html │ │ ├── number.html │ │ ├── overview.html │ │ ├── password.html │ │ ├── rawhtml.html │ │ ├── rpc.html │ │ ├── source.html │ │ ├── syncml.html.php │ │ ├── textarea.html │ │ ├── text.html │ │ └── twitter.html.php │ ├── problem │ │ └── problem.inc │ ├── services │ │ └── obrowser.html.php │ ├── shares │ │ └── edit.inc │ ├── sidebar │ │ ├── _container.html.php │ │ ├── _rowresource.html.php │ │ ├── _rowtree.html.php │ │ └── sidebar.html.php │ ├── test │ │ ├── extensions.inc │ │ ├── footer.inc │ │ ├── header.inc │ │ ├── php_version.inc │ │ ├── test.css │ │ └── version.inc │ ├── topbar │ │ ├── _menubar.html.php │ │ ├── _subbar.html.php │ │ └── topbar.html.php │ └── tree │ ├── menu.html.php │ ├── _row.html.php │ ├── sidebar.html.php │ └── _submenu.html.php ├── test.php ├── themes │ └── default │ ├── block │ │ └── screen.css │ ├── embed.css │ ├── facebook.css │ ├── feed-rss.xsl │ ├── graphics │ │ ├── add_group.png │ │ ├── administration.png │ │ ├── alerts │ │ │ ├── alarm.png │ │ │ ├── error.png │ │ │ ├── message.png │ │ │ ├── success.png │ │ │ └── warning.png │ │ ├── app-unknown.png │ │ ├── avatars │ │ │ ├── alien.jpg │ │ │ ├── aly.jpg │ │ │ ├── angryboy.gif │ │ │ ├── ape.jpg │ │ │ ├── au.jpg │ │ │ ├── baby.gif │ │ │ ├── barbarian.jpg │ │ │ ├── bart.gif │ │ │ ├── batman.gif │ │ │ ├── bert2.jpg │ │ │ ├── bert.jpg │ │ │ ├── bobafett.gif │ │ │ ├── boo.jpg │ │ │ ├── boyandmower.gif │ │ │ ├── boyandpc.gif │ │ │ ├── bret.jpg │ │ │ ├── bunny.gif │ │ │ ├── charlie_brown.gif │ │ │ ├── clown.jpg │ │ │ ├── cocky.jpg │ │ │ ├── devil.gif │ │ │ ├── digimon.gif │ │ │ ├── dilbert.gif │ │ │ ├── dino.gif │ │ │ ├── dog.gif │ │ │ ├── duck.gif │ │ │ ├── einstein.jpg │ │ │ ├── elmerfudd.gif │ │ │ ├── elmo.jpg │ │ │ ├── evil.jpg │ │ │ ├── female1.jpg │ │ │ ├── female2.jpg │ │ │ ├── franc.jpg │ │ │ ├── fredflinstone.gif │ │ │ ├── garfield.gif │ │ │ ├── gopher.gif │ │ │ ├── greenhead.gif │ │ │ ├── gremlin.jpg │ │ │ ├── grover.jpg │ │ │ ├── homer.gif │ │ │ ├── hump.jpg │ │ │ ├── iceskatekid.gif │ │ │ ├── jeri.jpg │ │ │ ├── kid.gif │ │ │ ├── kirk.jpg │ │ │ ├── kryton.jpg │ │ │ ├── linux.gif │ │ │ ├── lisa.gif │ │ │ ├── lovebird.gif │ │ │ ├── male1.jpg │ │ │ ├── male2.jpg │ │ │ ├── man.jpg │ │ │ ├── marge.gif │ │ │ ├── maul.gif │ │ │ ├── melon.jpg │ │ │ ├── mib.gif │ │ │ ├── monkey.jpg │ │ │ ├── neo.jpg │ │ │ ├── ninja.jpg │ │ │ ├── paintingbird.gif │ │ │ ├── picard.jpg │ │ │ ├── puff.jpg │ │ │ ├── redcreature.gif │ │ │ ├── rei2.jpg │ │ │ ├── rei.jpg │ │ │ ├── ryu.gif │ │ │ ├── sexy.gif │ │ │ ├── smiley.gif │ │ │ ├── smurfs.gif │ │ │ ├── sonic.gif │ │ │ ├── speedy.gif │ │ │ ├── stan.jpg │ │ │ ├── superman.gif │ │ │ ├── sylvester.gif │ │ │ ├── thomas.gif │ │ │ ├── tigger.gif │ │ │ ├── trin.jpg │ │ │ ├── us.jpg │ │ │ ├── vampire2.jpg │ │ │ ├── vampire.jpg │ │ │ ├── wacko.gif │ │ │ ├── winnie.gif │ │ │ ├── wizard.jpg │ │ │ ├── wolverine.jpg │ │ │ ├── woman.jpg │ │ │ ├── woodie.jpg │ │ │ └── xena.gif │ │ ├── az.png │ │ ├── blank.gif │ │ ├── block │ │ │ ├── down.png │ │ │ ├── large_down.png │ │ │ ├── large_left.png │ │ │ ├── large_right.png │ │ │ ├── large_up.png │ │ │ ├── left.png │ │ │ ├── moon │ │ │ │ ├── firstquarter.png │ │ │ │ ├── fullmoon.png │ │ │ │ ├── lastquarter.png │ │ │ │ └── newmoon.png │ │ │ ├── right.png │ │ │ ├── sunrise │ │ │ │ ├── sunrise.png │ │ │ │ └── sunset.png │ │ │ ├── up.png │ │ │ └── weatherdotcom │ │ │ ├── 23x23 │ │ │ │ ├── 0.png │ │ │ │ ├── 10.png │ │ │ │ ├── 11.png │ │ │ │ ├── 12.png │ │ │ │ ├── 13.png │ │ │ │ ├── 14.png │ │ │ │ ├── 15.png │ │ │ │ ├── 16.png │ │ │ │ ├── 17.png │ │ │ │ ├── 18.png │ │ │ │ ├── 19.png │ │ │ │ ├── 1.png │ │ │ │ ├── 20.png │ │ │ │ ├── 21.png │ │ │ │ ├── 22.png │ │ │ │ ├── 23.png │ │ │ │ ├── 24.png │ │ │ │ ├── 25.png │ │ │ │ ├── 26.png │ │ │ │ ├── 27.png │ │ │ │ ├── 28.png │ │ │ │ ├── 29.png │ │ │ │ ├── 2.png │ │ │ │ ├── 30.png │ │ │ │ ├── 31.png │ │ │ │ ├── 32.png │ │ │ │ ├── 33.png │ │ │ │ ├── 34.png │ │ │ │ ├── 35.png │ │ │ │ ├── 36.png │ │ │ │ ├── 37.png │ │ │ │ ├── 38.png │ │ │ │ ├── 39.png │ │ │ │ ├── 3.png │ │ │ │ ├── 40.png │ │ │ │ ├── 41.png │ │ │ │ ├── 42.png │ │ │ │ ├── 43.png │ │ │ │ ├── 44.png │ │ │ │ ├── 45.png │ │ │ │ ├── 46.png │ │ │ │ ├── 47.png │ │ │ │ ├── 4.png │ │ │ │ ├── 5.png │ │ │ │ ├── 6.png │ │ │ │ ├── 7.png │ │ │ │ ├── 8.png │ │ │ │ ├── 9.png │ │ │ │ └── na.png │ │ │ └── 32x32 │ │ │ ├── 0.png │ │ │ ├── 10.png │ │ │ ├── 11.png │ │ │ ├── 12.png │ │ │ ├── 13.png │ │ │ ├── 14.png │ │ │ ├── 15.png │ │ │ ├── 16.png │ │ │ ├── 17.png │ │ │ ├── 18.png │ │ │ ├── 19.png │ │ │ ├── 1.png │ │ │ ├── 20.png │ │ │ ├── 21.png │ │ │ ├── 22.png │ │ │ ├── 23.png │ │ │ ├── 24.png │ │ │ ├── 25.png │ │ │ ├── 26.png │ │ │ ├── 27.png │ │ │ ├── 28.png │ │ │ ├── 29.png │ │ │ ├── 2.png │ │ │ ├── 30.png │ │ │ ├── 31.png │ │ │ ├── 32.png │ │ │ ├── 33.png │ │ │ ├── 34.png │ │ │ ├── 35.png │ │ │ ├── 36.png │ │ │ ├── 37.png │ │ │ ├── 38.png │ │ │ ├── 39.png │ │ │ ├── 3.png │ │ │ ├── 40.png │ │ │ ├── 41.png │ │ │ ├── 42.png │ │ │ ├── 43.png │ │ │ ├── 44.png │ │ │ ├── 45.png │ │ │ ├── 46.png │ │ │ ├── 47.png │ │ │ ├── 4.png │ │ │ ├── 5.png │ │ │ ├── 6.png │ │ │ ├── 7.png │ │ │ ├── 8.png │ │ │ ├── 9.png │ │ │ ├── na.png │ │ │ └── TWClogo_32px.png │ │ ├── block.png │ │ ├── button-active-bg.png │ │ ├── buttonbar-bg.png │ │ ├── button-default.png │ │ ├── button-delete.png │ │ ├── button.png │ │ ├── button-split.png │ │ ├── calendar.png │ │ ├── checkbox_off.png │ │ ├── checkbox_on.png │ │ ├── close.png │ │ ├── collapse.png │ │ ├── color-picker-cursor.gif │ │ ├── color-picker-palette.png │ │ ├── colorpicker.png │ │ ├── color-picker-resize.gif │ │ ├── colorscale.png │ │ ├── config.png │ │ ├── data.png │ │ ├── delete.png │ │ ├── delete-small.png │ │ ├── devel.png │ │ ├── download.png │ │ ├── edit.png │ │ ├── edit-sidebar-000.png │ │ ├── edit-sidebar-fff.png │ │ ├── edit-small.png │ │ ├── emoticons │ │ │ ├── angel.png │ │ │ ├── angelwink.png │ │ │ ├── angry.png │ │ │ ├── annoyed.png │ │ │ ├── asleep.png │ │ │ ├── bigfrown.png │ │ │ ├── biggrin.png │ │ │ ├── blush.png │ │ │ ├── clown.png │ │ │ ├── confused.png │ │ │ ├── coolgrin.png │ │ │ ├── cool.png │ │ │ ├── cooltongue.png │ │ │ ├── dazed.png │ │ │ ├── devil.png │ │ │ ├── deviltongue.png │ │ │ ├── disappointed.png │ │ │ ├── embarrassed.png │ │ │ ├── enraged.png │ │ │ ├── frown.png │ │ │ ├── frustrated.png │ │ │ ├── grin.png │ │ │ ├── hangover.png │ │ │ ├── hippiegrin.png │ │ │ ├── hippie.png │ │ │ ├── hippietongue.png │ │ │ ├── hurt.png │ │ │ ├── indifferent.png │ │ │ ├── love.png │ │ │ ├── mad.png │ │ │ ├── mrt.png │ │ │ ├── punkmohawk.png │ │ │ ├── punk.png │ │ │ ├── punktongue.png │ │ │ ├── raspberry.png │ │ │ ├── sad.png │ │ │ ├── shout.png │ │ │ ├── smile.png │ │ │ ├── tired.png │ │ │ ├── tongueout.png │ │ │ ├── vampire.png │ │ │ ├── winkgrin.png │ │ │ ├── wink.png │ │ │ ├── winktongueout.png │ │ │ ├── winktongue.png │ │ │ └── worried.png │ │ ├── expand.png │ │ ├── external.png │ │ ├── favicon.ico │ │ ├── feed.png │ │ ├── filter.png │ │ ├── filter-topbar.png │ │ ├── flags │ │ │ ├── ad.png │ │ │ ├── ae.png │ │ │ ├── af.png │ │ │ ├── ag.png │ │ │ ├── ai.png │ │ │ ├── al.png │ │ │ ├── am.png │ │ │ ├── an.png │ │ │ ├── ao.png │ │ │ ├── ar.png │ │ │ ├── as.png │ │ │ ├── at.png │ │ │ ├── au.png │ │ │ ├── aw.png │ │ │ ├── ax.png │ │ │ ├── az.png │ │ │ ├── ba.png │ │ │ ├── bb.png │ │ │ ├── bd.png │ │ │ ├── be.png │ │ │ ├── bf.png │ │ │ ├── bg.png │ │ │ ├── bh.png │ │ │ ├── bi.png │ │ │ ├── bj.png │ │ │ ├── bm.png │ │ │ ├── bn.png │ │ │ ├── bo.png │ │ │ ├── br.png │ │ │ ├── bs.png │ │ │ ├── bt.png │ │ │ ├── bv.png │ │ │ ├── bw.png │ │ │ ├── by.png │ │ │ ├── bz.png │ │ │ ├── ca.png │ │ │ ├── cc.png │ │ │ ├── cd.png │ │ │ ├── cf.png │ │ │ ├── cg.png │ │ │ ├── ch.png │ │ │ ├── ci.png │ │ │ ├── ck.png │ │ │ ├── cl.png │ │ │ ├── cm.png │ │ │ ├── cn.png │ │ │ ├── co.png │ │ │ ├── cr.png │ │ │ ├── cs.png │ │ │ ├── cu.png │ │ │ ├── cv.png │ │ │ ├── cx.png │ │ │ ├── cy.png │ │ │ ├── cz.png │ │ │ ├── de.png │ │ │ ├── dj.png │ │ │ ├── dk.png │ │ │ ├── dm.png │ │ │ ├── do.png │ │ │ ├── dz.png │ │ │ ├── ec.png │ │ │ ├── ee.png │ │ │ ├── eg.png │ │ │ ├── eh.png │ │ │ ├── er.png │ │ │ ├── es.png │ │ │ ├── et.png │ │ │ ├── eu.png │ │ │ ├── fam.png │ │ │ ├── fi.png │ │ │ ├── fj.png │ │ │ ├── fk.png │ │ │ ├── fm.png │ │ │ ├── fo.png │ │ │ ├── fr.png │ │ │ ├── ga.png │ │ │ ├── gb.png │ │ │ ├── gd.png │ │ │ ├── ge.png │ │ │ ├── gf.png │ │ │ ├── gh.png │ │ │ ├── gi.png │ │ │ ├── gl.png │ │ │ ├── gm.png │ │ │ ├── gn.png │ │ │ ├── gp.png │ │ │ ├── gq.png │ │ │ ├── gr.png │ │ │ ├── gs.png │ │ │ ├── gt.png │ │ │ ├── gu.png │ │ │ ├── gw.png │ │ │ ├── gy.png │ │ │ ├── hk.png │ │ │ ├── hm.png │ │ │ ├── hn.png │ │ │ ├── hr.png │ │ │ ├── ht.png │ │ │ ├── hu.png │ │ │ ├── id.png │ │ │ ├── ie.png │ │ │ ├── il.png │ │ │ ├── in.png │ │ │ ├── io.png │ │ │ ├── iq.png │ │ │ ├── ir.png │ │ │ ├── is.png │ │ │ ├── it.png │ │ │ ├── jm.png │ │ │ ├── jo.png │ │ │ ├── jp.png │ │ │ ├── ke.png │ │ │ ├── kg.png │ │ │ ├── kh.png │ │ │ ├── ki.png │ │ │ ├── km.png │ │ │ ├── kn.png │ │ │ ├── kp.png │ │ │ ├── kr.png │ │ │ ├── kw.png │ │ │ ├── ky.png │ │ │ ├── kz.png │ │ │ ├── la.png │ │ │ ├── lb.png │ │ │ ├── lc.png │ │ │ ├── li.png │ │ │ ├── lk.png │ │ │ ├── lr.png │ │ │ ├── ls.png │ │ │ ├── lt.png │ │ │ ├── lu.png │ │ │ ├── lv.png │ │ │ ├── ly.png │ │ │ ├── ma.png │ │ │ ├── mc.png │ │ │ ├── md.png │ │ │ ├── me.png │ │ │ ├── mg.png │ │ │ ├── mh.png │ │ │ ├── mk.png │ │ │ ├── ml.png │ │ │ ├── mm.png │ │ │ ├── mn.png │ │ │ ├── mo.png │ │ │ ├── mp.png │ │ │ ├── mq.png │ │ │ ├── mr.png │ │ │ ├── ms.png │ │ │ ├── mt.png │ │ │ ├── mu.png │ │ │ ├── mv.png │ │ │ ├── mw.png │ │ │ ├── mx.png │ │ │ ├── my.png │ │ │ ├── mz.png │ │ │ ├── na.png │ │ │ ├── nc.png │ │ │ ├── ne.png │ │ │ ├── nf.png │ │ │ ├── ng.png │ │ │ ├── ni.png │ │ │ ├── nl.png │ │ │ ├── no.png │ │ │ ├── np.png │ │ │ ├── nr.png │ │ │ ├── nu.png │ │ │ ├── nz.png │ │ │ ├── om.png │ │ │ ├── pa.png │ │ │ ├── pe.png │ │ │ ├── pf.png │ │ │ ├── pg.png │ │ │ ├── ph.png │ │ │ ├── pk.png │ │ │ ├── pl.png │ │ │ ├── pm.png │ │ │ ├── pn.png │ │ │ ├── pr.png │ │ │ ├── ps.png │ │ │ ├── pt.png │ │ │ ├── pw.png │ │ │ ├── py.png │ │ │ ├── qa.png │ │ │ ├── re.png │ │ │ ├── ro.png │ │ │ ├── rs.png │ │ │ ├── ru.png │ │ │ ├── rw.png │ │ │ ├── sa.png │ │ │ ├── sb.png │ │ │ ├── scotland.png │ │ │ ├── sc.png │ │ │ ├── sd.png │ │ │ ├── se.png │ │ │ ├── sg.png │ │ │ ├── sh.png │ │ │ ├── si.png │ │ │ ├── sj.png │ │ │ ├── sk.png │ │ │ ├── sl.png │ │ │ ├── sm.png │ │ │ ├── sn.png │ │ │ ├── so.png │ │ │ ├── sr.png │ │ │ ├── st.png │ │ │ ├── sv.png │ │ │ ├── sy.png │ │ │ ├── sz.png │ │ │ ├── tc.png │ │ │ ├── td.png │ │ │ ├── tf.png │ │ │ ├── tg.png │ │ │ ├── th.png │ │ │ ├── tj.png │ │ │ ├── tk.png │ │ │ ├── tl.png │ │ │ ├── tm.png │ │ │ ├── tn.png │ │ │ ├── to.png │ │ │ ├── tp.png │ │ │ ├── tr.png │ │ │ ├── tt.png │ │ │ ├── tv.png │ │ │ ├── tw.png │ │ │ ├── tz.png │ │ │ ├── ua.png │ │ │ ├── ug.png │ │ │ ├── uk.png │ │ │ ├── um.png │ │ │ ├── us.png │ │ │ ├── uy.png │ │ │ ├── uz.png │ │ │ ├── va.png │ │ │ ├── vc.png │ │ │ ├── ve.png │ │ │ ├── vg.png │ │ │ ├── vi.png │ │ │ ├── vn.png │ │ │ ├── vu.png │ │ │ ├── wales.png │ │ │ ├── wf.png │ │ │ ├── ws.png │ │ │ ├── ye.png │ │ │ ├── yt.png │ │ │ ├── yu.png │ │ │ ├── za.png │ │ │ ├── zm.png │ │ │ └── zw.png │ │ ├── google.png │ │ ├── group.png │ │ ├── head-bg.png │ │ ├── help_index.png │ │ ├── help.png │ │ ├── hide_panel.png │ │ ├── horde.png │ │ ├── horde-power1.png │ │ ├── horde-power2.png │ │ ├── horde-power3.png │ │ ├── image │ │ │ ├── crop.png │ │ │ ├── flip.png │ │ │ ├── grayscale.png │ │ │ ├── mirror.png │ │ │ ├── ratio.png │ │ │ ├── refresh.png │ │ │ ├── rotate-180.png │ │ │ ├── rotate-270.png │ │ │ └── rotate-90.png │ │ ├── info_icon.png │ │ ├── info.png │ │ ├── keyboard.png │ │ ├── keys │ │ │ ├── down.png │ │ │ ├── left.png │ │ │ ├── right.png │ │ │ └── up.png │ │ ├── layout.png │ │ ├── lhand.png │ │ ├── loading.gif │ │ ├── locked-inv.png │ │ ├── locked.png │ │ ├── login.png │ │ ├── logo.png │ │ ├── logout.png │ │ ├── map │ │ │ ├── marker.png │ │ │ └── marker-shadow.png │ │ ├── map_eu.png │ │ ├── map.png │ │ ├── mime │ │ │ ├── audio.png │ │ │ ├── binary.png │ │ │ ├── compressed.png │ │ │ ├── deb.png │ │ │ ├── encryption.png │ │ │ ├── html.png │ │ │ ├── icalendar.png │ │ │ ├── image.png │ │ │ ├── mail.png │ │ │ ├── msexcel.png │ │ │ ├── mspowerpoint.png │ │ │ ├── msword.png │ │ │ ├── ooo_calc.png │ │ │ ├── ooo_draw.png │ │ │ ├── ooo_impress.png │ │ │ ├── ooo_math.png │ │ │ ├── ooo_writer.png │ │ │ ├── pdf.png │ │ │ ├── php.png │ │ │ ├── rpm.png │ │ │ ├── script-js.png │ │ │ ├── source-c.png │ │ │ ├── source-cpp.png │ │ │ ├── source-h.png │ │ │ ├── source-java.png │ │ │ ├── source-python.png │ │ │ ├── text.png │ │ │ ├── vcard.png │ │ │ ├── video.png │ │ │ ├── wordperfect.png │ │ │ └── xml.png │ │ ├── minus.png │ │ ├── mobile.png │ │ ├── myaccount.png │ │ ├── nav │ │ │ ├── bottom-grey.png │ │ │ ├── bottom.png │ │ │ ├── down-grey.png │ │ │ ├── down.png │ │ │ ├── first-grey.png │ │ │ ├── first.png │ │ │ ├── last-grey.png │ │ │ ├── last.png │ │ │ ├── left-grey.png │ │ │ ├── left.png │ │ │ ├── right-grey.png │ │ │ ├── right.png │ │ │ ├── top-grey.png │ │ │ ├── top.png │ │ │ ├── up-grey.png │ │ │ └── up.png │ │ ├── navi-arrow-active.png │ │ ├── navi-arrow-normal.png │ │ ├── navi-center-active.png │ │ ├── navi-left-active.png │ │ ├── navi-right-active.png │ │ ├── navi-subnavi-active.png │ │ ├── navi-subnavi.png │ │ ├── office.png │ │ ├── organizing.png │ │ ├── perms.png │ │ ├── phone.png │ │ ├── php.png │ │ ├── plus.png │ │ ├── plus-sidebar.png │ │ ├── popdown.png │ │ ├── popright.png │ │ ├── prefs.png │ │ ├── print.png │ │ ├── problem.png │ │ ├── radiobox_off.png │ │ ├── radiobox_on.png │ │ ├── redbox_spinner.gif │ │ ├── reload.png │ │ ├── required.png │ │ ├── rhand.png │ │ ├── save.png │ │ ├── search.png │ │ ├── search-topbar.png │ │ ├── settings-active.png │ │ ├── settings.png │ │ ├── shadow.gif │ │ ├── shadow.png │ │ ├── shell.png │ │ ├── show_panel.png │ │ ├── sidebar-active-bg.png │ │ ├── sidebar-new-bg.png │ │ ├── sidebar-new.png │ │ ├── sidebar-refresh.png │ │ ├── sidebar-split.png │ │ ├── slidehoriz-bg.png │ │ ├── slidehoriz.png │ │ ├── slidevert-bg.png │ │ ├── slidevert.png │ │ ├── sql.png │ │ ├── tab-active.png │ │ ├── tab_bottom.gif │ │ ├── tablehead-bg.png │ │ ├── tablehead-split.png │ │ ├── tab.png │ │ ├── tabset.png │ │ ├── tags.png │ │ ├── tree │ │ │ ├── blank.png │ │ │ ├── folderopen.png │ │ │ ├── folder.png │ │ │ ├── joinbottom-down.png │ │ │ ├── joinbottom.png │ │ │ ├── join.png │ │ │ ├── leaf.png │ │ │ ├── line.png │ │ │ ├── minusbottom.png │ │ │ ├── minusonly.png │ │ │ ├── minus.png │ │ │ ├── minustop.png │ │ │ ├── nullonly.png │ │ │ ├── plusbottom.png │ │ │ ├── plusonly.png │ │ │ ├── plus.png │ │ │ ├── plustop.png │ │ │ ├── rev-joinbottom-down.png │ │ │ ├── rev-joinbottom.png │ │ │ ├── rev-join.png │ │ │ ├── rev-leaf.png │ │ │ ├── rev-line.png │ │ │ ├── rev-minusbottom.png │ │ │ ├── rev-minusonly.png │ │ │ ├── rev-minus.png │ │ │ ├── rev-minustop.png │ │ │ ├── rev-nullonly.png │ │ │ ├── rev-plusbottom.png │ │ │ ├── rev-plusonly.png │ │ │ ├── rev-plus.png │ │ │ └── rev-plustop.png │ │ ├── unlocked.png │ │ ├── user.png │ │ ├── weather │ │ │ ├── 23x23 │ │ │ │ ├── 0.png │ │ │ │ ├── 10.png │ │ │ │ ├── 11.png │ │ │ │ ├── 12.png │ │ │ │ ├── 13.png │ │ │ │ ├── 14.png │ │ │ │ ├── 15.png │ │ │ │ ├── 16.png │ │ │ │ ├── 17.png │ │ │ │ ├── 18.png │ │ │ │ ├── 19.png │ │ │ │ ├── 1.png │ │ │ │ ├── 20.png │ │ │ │ ├── 21.png │ │ │ │ ├── 22.png │ │ │ │ ├── 23.png │ │ │ │ ├── 24.png │ │ │ │ ├── 25.png │ │ │ │ ├── 26.png │ │ │ │ ├── 27.png │ │ │ │ ├── 28.png │ │ │ │ ├── 29.png │ │ │ │ ├── 2.png │ │ │ │ ├── 30.png │ │ │ │ ├── 31.png │ │ │ │ ├── 32.png │ │ │ │ ├── 33.png │ │ │ │ ├── 34.png │ │ │ │ ├── 35.png │ │ │ │ ├── 36.png │ │ │ │ ├── 37.png │ │ │ │ ├── 38.png │ │ │ │ ├── 39.png │ │ │ │ ├── 3.png │ │ │ │ ├── 40.png │ │ │ │ ├── 41.png │ │ │ │ ├── 42.png │ │ │ │ ├── 43.png │ │ │ │ ├── 44.png │ │ │ │ ├── 45.png │ │ │ │ ├── 46.png │ │ │ │ ├── 47.png │ │ │ │ ├── 4.png │ │ │ │ ├── 5.png │ │ │ │ ├── 6.png │ │ │ │ ├── 7.png │ │ │ │ ├── 8.png │ │ │ │ ├── 9.png │ │ │ │ └── na.png │ │ │ ├── 32x32 │ │ │ │ ├── 0.png │ │ │ │ ├── 10.png │ │ │ │ ├── 11.png │ │ │ │ ├── 12.png │ │ │ │ ├── 13.png │ │ │ │ ├── 14.png │ │ │ │ ├── 15.png │ │ │ │ ├── 16.png │ │ │ │ ├── 17.png │ │ │ │ ├── 18.png │ │ │ │ ├── 19.png │ │ │ │ ├── 1.png │ │ │ │ ├── 20.png │ │ │ │ ├── 21.png │ │ │ │ ├── 22.png │ │ │ │ ├── 23.png │ │ │ │ ├── 24.png │ │ │ │ ├── 25.png │ │ │ │ ├── 26.png │ │ │ │ ├── 27.png │ │ │ │ ├── 28.png │ │ │ │ ├── 29.png │ │ │ │ ├── 2.png │ │ │ │ ├── 30.png │ │ │ │ ├── 31.png │ │ │ │ ├── 32.png │ │ │ │ ├── 33.png │ │ │ │ ├── 34.png │ │ │ │ ├── 35.png │ │ │ │ ├── 36.png │ │ │ │ ├── 37.png │ │ │ │ ├── 38.png │ │ │ │ ├── 39.png │ │ │ │ ├── 3.png │ │ │ │ ├── 40.png │ │ │ │ ├── 41.png │ │ │ │ ├── 42.png │ │ │ │ ├── 43.png │ │ │ │ ├── 44.png │ │ │ │ ├── 45.png │ │ │ │ ├── 46.png │ │ │ │ ├── 47.png │ │ │ │ ├── 4.png │ │ │ │ ├── 5.png │ │ │ │ ├── 6.png │ │ │ │ ├── 7.png │ │ │ │ ├── 8.png │ │ │ │ ├── 9.png │ │ │ │ └── na.png │ │ │ └── wundergroundlogo.png │ │ ├── website.png │ │ └── za.png │ ├── ie8.css │ ├── info.php │ ├── mozilla.css │ ├── opera.css │ ├── rtl.css │ ├── screen.css │ ├── smartmobile │ │ └── screen.css │ ├── sounds │ │ ├── doorbell.wav │ │ ├── gnid3.wav │ │ ├── jetsndb.wav │ │ ├── reminder.wav │ │ └── theetone.wav │ └── webkit.css └── util └── icon_browser.php 292 directories, 1824 files
Update von Horde / Pear
In (un)regelmäßigen Abständen, werden für die im System bekannten Channels und installierten Paketen Updates angeboten.
PEAR Optionen
Einen ersten Überblick über die Optionen des Programms verschafft man sich mit nachfolgendem Aufruf.
# pear help
Commands: build Build an Extension From C Source bundle Unpacks a Pecl Package channel-add Add a Channel channel-alias Specify an alias to a channel name channel-delete Remove a Channel From the List channel-discover Initialize a Channel from its server channel-info Retrieve Information on a Channel channel-login Connects and authenticates to remote channel server channel-logout Logs out from the remote channel server channel-update Update an Existing Channel clear-cache Clear Web Services Cache config-create Create a Default configuration file config-get Show One Setting config-help Show Information About Setting config-set Change Setting config-show Show All Settings convert Convert a package.xml 1.0 to package.xml 2.0 format cvsdiff Run a "cvs diff" for all files in a package cvstag Set CVS Release Tag download Download Package download-all Downloads each available package from the default channel info Display information about a package install Install Package list List Installed Packages In The Default Channel list-all List All Packages list-channels List Available Channels list-files List Files In Installed Package list-upgrades List Available Upgrades login Connects and authenticates to remote server [Deprecated in favor of channel-login] logout Logs out from the remote server [Deprecated in favor of channel-logout] makerpm Builds an RPM spec file from a PEAR package package Build Package package-dependencies Show package dependencies package-validate Validate Package Consistency pickle Build PECL Package remote-info Information About Remote Packages remote-list List Remote Packages run-scripts Run Post-Install Scripts bundled with a package run-tests Run Regression Tests search Search remote package database shell-test Shell Script Test sign Sign a package distribution file svntag Set SVN Release Tag uninstall Un-install Package update-channels Update the Channel List upgrade Upgrade Package upgrade-all Upgrade All Packages [Deprecated in favor of calling upgrade with no parameters] Usage: pear [options] command [command-options] <parameters> Type "pear help options" to list all options. Type "pear help shortcuts" to list all command shortcuts. Type "pear help <command>" to get the help for the specified command.
Channel-Übersicht
Möchte man einen Überblick über die im System bekannten Channels, so bedient man sich folgenden Aufrufs.
# pear list-channels
Registered Channels: ==================== Channel Alias Summary doc.php.net phpdocs PHP Documentation Team pear.horde.org horde Horde PEAR server pear.php.net pear PHP Extension and Application Repository pecl.php.net pecl PHP Extension Community Library __uri __uri Pseudo-channel for static packages
Updateübersicht abrufen
Einen Überblick über aktuell anstehende Updates einzelner Pakete/Channels bekommt man, wenn man die Option list-upgrades beim Aufruf von pear verwendet.
# pear list-upgrades
Channel pear.horde.org: No upgrades available PEAR.PHP.NET AVAILABLE UPGRADES (STABLE): ========================================= CHANNEL PACKAGE LOCAL REMOTE SIZE pear.php.net Net_URL2 2.1.2 (stable) 2.2.1 (stable) 19.6kB pear.php.net XML_Util 1.4.2 (stable) 1.4.3 (stable) 18.4kB WARNING: channel "pecl.php.net" has updated its protocols, use "pear channel-update pecl.php.net" to update PECL.PHP.NET AVAILABLE UPGRADES (STABLE): ========================================= CHANNEL PACKAGE LOCAL REMOTE SIZE pecl.php.net igbinary 2.0.1 (stable) 2.0.4 (stable) 67kB
Channel Updaten
Will man einen Channel Updaten hat man zwei Möglichkeiten. Entweder man spricht den Channel übe seinen Alias oder über seinen vollständigen Channel-Namen an, also entweder
# pear upgrade -a -B -c pear.horde.org
oder eben
# pear upgrade -a -B -c pear
Das Ergebnis wird dabei am Bildschirm ausgegeben.
WARNING: channel "pecl.php.net" has updated its protocols, use "pear channel-update pecl.php.net" to update downloading igbinary-2.0.4.tgz ... Starting to download igbinary-2.0.4.tgz (68,294 bytes) .................done: 68,294 bytes upgrade ok: channel://pecl.php.net/igbinary-2.0.4downloading Horde_ActiveSync-2.1.4.tgz ... Starting to download Horde_ActiveSync-2.1.4.tgz (157,386 bytes) .................................done: 157,386 bytes upgrade ok: channel://pear.horde.org/Horde_ActiveSync-2.1.4
Deinstallation von Horde
Deinstallation einer Horde-Applikation
Hat man aus Neugierde oder einfach so zum Testen eine Horde-Applikation installiert und möchte diese wieder restlos vom System bekommen, so kann man natürlich nicht auf die Boardmittel rpm oder yum zurückgreifen, da wir die Installationsquelle PEAR bei der Installation verwendet hatten.
Wie schon bei der Installation und beim Upgrade greifen wir auch hier auf den Befehl pear zurück. In folgendem Beispiel entfernen wir die Anwendung ingo vom System.
# pear uninstall horde/ingo
uninstall ok: channel://pear.horde.org/ingo-3.0.2
Übrig bleiben dabei nur die local erzeugten bzw. bearbeiteten (Konfigurations-)Dateien und deren Verzeichnisse. Im gezeigten Beispiel der Anwendung ingo sind dies folgende Reste.
/srv/www/html/horde │ ├── ingo │ └── config │ ├── backends.local.php │ ├── conf.bak.php │ └── conf.php
Diese können später wiederverwenden, wenn wir uns entscheiden sollten die Applikation wieder neu zu installieren.
Deinstallation der gesamten Horde-Installation
Auch die gesamte Hordeinstallation lässt sich genauso leicht entfernen, wie eine einzelne Applikation.
# pear uninstall `pear list -c horde | tail -n +4 | awk '{ print "horde/"$1 }'`
uninstall ok: channel://pear.horde.org/kronolith-4.0.3 uninstall ok: channel://pear.horde.org/Horde_Role-1.0.1 uninstall ok: channel://pear.horde.org/nag-4.0.2 uninstall ok: channel://pear.horde.org/Horde_Service_Facebook-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Rpc-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Timezone-1.0.1 uninstall ok: channel://pear.horde.org/Horde_SyncMl-2.0.2 uninstall ok: channel://pear.horde.org/content-2.0.1 uninstall ok: channel://pear.horde.org/timeobjects-2.0.2 uninstall ok: channel://pear.horde.org/mnemo-4.0.2 uninstall ok: channel://pear.horde.org/turba-4.0.2 uninstall ok: channel://pear.horde.org/imp-6.0.3 uninstall ok: channel://pear.horde.org/horde-5.0.3 uninstall ok: channel://pear.horde.org/Horde_Form-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Vfs-2.0.4 uninstall ok: channel://pear.horde.org/Horde_Core-2.1.5 uninstall ok: channel://pear.horde.org/Horde_Serialize-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Routes-2.0.2 uninstall ok: channel://pear.horde.org/Horde_ActiveSync-2.1.4 uninstall ok: channel://pear.horde.org/Horde_Mime_Viewer-2.0.2 uninstall ok: channel://pear.horde.org/Horde_LoginTasks-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Service_Twitter-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Oauth-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Pdf-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Rdo-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Template-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Token-2.0.2 uninstall ok: channel://pear.horde.org/Horde_View-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Xml_Element-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Xml_Wbxml-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Text_Filter_Csstidy-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Text_Diff-2.0.1 uninstall ok: channel://pear.horde.org/Horde_SessionHandler-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Share-2.0.2 uninstall ok: channel://pear.horde.org/Horde_SpellChecker-2.1.0 uninstall ok: channel://pear.horde.org/Horde_Lock-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Service_Weather-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Notification-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Feed-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Controller-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Group-2.0.1 uninstall ok: channel://pear.horde.org/Horde_History-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Image-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Http-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Crypt-2.1.1 uninstall ok: channel://pear.horde.org/Horde_ListHeaders-1.0.1 uninstall ok: channel://pear.horde.org/Horde_Date_Parser-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Data-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Tree-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Url-2.0.1 uninstall ok: channel://pear.horde.org/Horde_ElasticSearch-1.0.1 uninstall ok: channel://pear.horde.org/Horde_Editor-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Imsp-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Compress-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Browser-2.0.3 uninstall ok: channel://pear.horde.org/Horde_Kolab_Server-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Kolab_Storage-2.0.3 uninstall ok: channel://pear.horde.org/Horde_Auth-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Alarm-2.0.3 uninstall ok: channel://pear.horde.org/Horde_Argv-2.0.3 uninstall ok: channel://pear.horde.org/Horde_Kolab_Format-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Kolab_Session-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Injector-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Perms-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Ldap-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Itip-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Prefs-2.1.0 uninstall ok: channel://pear.horde.org/Horde_Date-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Translation-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Cli-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Constraint-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Cache-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Crypt_Blowfish-1.0.2 uninstall ok: channel://pear.horde.org/Horde_Util-2.0.3 uninstall ok: channel://pear.horde.org/Horde_Autoloader-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Stream_Filter-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Nls-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Imap_Client-2.5.0 uninstall ok: channel://pear.horde.org/Horde_Secret-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Mime-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Memcache-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Log-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Mail-2.0.3 uninstall ok: channel://pear.horde.org/Horde_Icalendar-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Exception-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Db-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Text_Filter-2.0.4 uninstall ok: channel://pear.horde.org/Horde_Text_Flowed-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Test-2.1.0 uninstall ok: channel://pear.horde.org/Horde_Support-2.0.2 uninstall ok: channel://pear.horde.org/Horde_Stream-1.2.0 uninstall ok: channel://pear.horde.org/Horde_Scribe-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Stream_Wrapper-2.0.1 uninstall ok: channel://pear.horde.org/Horde_Thrift-2.0.1
Anschließend können wir entweder das verbliebene Verzeichis /srv/www/html/horde löschen oder wir heben die Konfigurationsdateien für eine spätere Neuinstallation auf.
Wollen wir die Konfigurationsdateien für später sichern, löschen wir als erstes die beiden Unterverzeichnisse js und static löschen wir noch einzeln.
# rm -rf /srv/www/html/horde/static /srv/www/html/horde/js
Somit verbleiben nur noch die lokal erzeugten Konfigurationsdateien und der Verzeichnisse.
/srv/www/html/horde ├── config │ ├── conf.bak.php │ ├── conf.php │ ├── conf.php.old │ ├── hooks.php │ └── registry.local.php ├── imp │ └── config │ ├── backends.local.php │ ├── backends.php.dist │ ├── conf.bak.php │ ├── conf.php │ ├── filter.txt │ ├── hooks.php │ └── menu.php ├── ingo │ └── config │ ├── backends.local.php │ ├── conf.bak.php │ └── conf.php ├── kronolith │ └── config │ ├── conf.bak.php │ ├── conf.php │ ├── hooks.php │ └── menu.php ├── mnemo │ └── config │ ├── conf.bak.php │ ├── conf.php │ └── hooks.php ├── nag │ └── config │ ├── conf.bak.php │ ├── conf.php │ ├── hooks.php │ └── menu.php └── turba └── config ├── backends.local.php ├── conf.bak.php ├── conf.php ├── hooks.php └── menu.php 13 directories, 31 files
Die Reste packen wir uns nun für später in ein tar.gz-Archiv und löschen anschließend das Verzeichnis.
# tar cfvj /root/horde_config.tar.bz2 /srv/www/html/horde
# rm -rf /srv/www/html/horde
alle Tabellen der Horde-Datenbank löschen
Wollen horde neu installieren, so ist es notwendig, die zugehörige Datenbank „auf Null zurückzusetzen“, also alle Tabellen zu löschen, aber die Datenbank an sich nicht zu löschen.
Hat man keinen Zugriff auf die Datenbank mit Hilfe einer Web-GUI wie phpMyAdmin, so kann man das gewünschte Ergebnis auch schnell und einfach von der Konsole aus mit dem Befehl mysql bewerkstelligen.
Um jetzt nicht alle Tabellen einzeln mit dem truncate-Befehl zu löschen greifen wir auf einen einfachen aber effektiven Einzeiler zurück.
# mysql -D <datenbankname> -h <datenbankhost> -u <datenbankuser> --password=<passwort> -e "show tables" | grep -v Tables_in | grep -v "+" | gawk '{print "drop table " $1 ";"}' | mysql -D <datenbankname> -h <datenbankhost> -u <datenbankuser> --password=<passwort>
Voila, schon haben wir wieder eine jungfräuliche, also mit keinen Datenbanktabellen, Datenbank und wir können beim Applikationstest wieder von vorne beginnen.