|
HOWTO The Home Network for Beginners
|
|
|
[edit] Pitfalls
The biggest pitfall you're about to encounter is permissions. Before trying to do anything via the web interface, make sure that all of the files and directories are owned by apache:apache and have suitable permissions (I use 774, but this doesn't mean you have to). You'd do something like this before using the web interface:
# chmod -R 774 /var/www/localhost/htdocs/mail/
# chown -R apache:apache /var/www/localhost/htdocs/mail/
Also, keep in mind that "localhost" and "mail" should be replaced with the desired virtual host and directory name, if you want to change them.
[edit] Testing
All of the modules that plug into the Horde Application Framework (as well as Horde itself) have a test page. You can run it at http://localhost/mail/<module name>/test.php. It will let you know if you're missing any libraries or anything. (to test Horde, go to http://localhost/mail/test.php)
[edit] Installing Horde Application Framework
# echo "www-apps/horde" >> /etc/portage/package.keywords
# emerge horde
# webapp-config -I -h localhost -d mail horde VERSION
This will install horde and put it in the mail directory of the localhost virtual host.
# cd /var/www/localhost/htdocs/mail/config
# for f in *.dist; do cp $f `basename $f .dist`; done
Horde suffixes all config files with .dist; this command removed it.
# nano -w /var/www/localhost/htdocs/mail/scripts/sql/create.mysql.sql
This file will already exist and is heavily commented. Change what it asks you to do and/or for your environment.
# mysql -u root -p < /var/www/localhost/htdocs/mail/scripts/sql/create.mysql.sql
Enter your MySQL root password. This will import the SQL you just edited.
# cd /var/www/localhost/htdocs/mail/scripts
# php setup.php
If this returns "is accessible" for all of the files it checks, you're good to continue. Otherwise, please make sure you ran the for f in *.dist code> stuff.
Next, emerge the following optional package, if you want (if you're using PHP4, replace php5 with php4):
# emerge dev-php5/pecl-fileinfo
Now, go to http://localhost/mail/. You'll be logged in. Go to Administration and set up your Horde! If you want to setup IMAP authentication over SSL, use a connection string of {localhost:993/imap/ssl/novalidate-cert} code>
[edit] Installing Horde IMP Webmail Client
# echo "www-apps/horde-imp" >> /etc/portage/package.keywords
# emerge horde-imp
If this went well, Horde IMP is now installed! Now, to add it to our virtual host. It needs to go below the main Horde directory.
# webapp-config -I -h localhost -d mail/imp horde-imp VERSION
# cd /var/www/localhost/htdocs/mail/imp/config/
# for f in *.dist; do cp $f `basename $f .dist`; done
Again, this just makes the config files usable.
# nano -w servers.php
Edit this file to match your configuration.
Go to http://localhost/mail/, go to Setup, and you'll now see IMP there. Configure IMP as needed.
[edit] Installing Horde Turba Contact Manager
# echo "www-apps/horde-turba" >> /etc/portage/package.keywords
# emerge horde-turba
# webapp-config -I -h localhost -d mail/turba horde-turba VERSION
This will put the Turba contact manager inside your existing Horde installation.
# mysql -u root -p horde < /var/www/localhost/htdocs/mail/turba/scripts/sql/turba_objects.mysql.sql
You didn't need to make any SQL changes, so import the SQL they want you to import. Make sure you include "horde", or else MySQL won't know what database to put it into!
# cd /var/www/localhost/htdocs/mail/turba/config
# for f in *.dist; do cp $f `basename $f .dist`; done
Again, this makes the config files available for editing. Remember to chmod and chown! :)
Go to http://localhost/mail/ and go back to setup, and configure Turba now.
[edit] Installing Horde Passsword Changer
# echo "www-apps/horde-passwd" >> /etc/portage/package.keywords
# emerge horde-passwd
# webapp-config -I -h localhost -d mail/passwd horde-passwd VERSION
It's now installed inside of Horde.
# cd /var/www/localhost/htdocs/mail/passwd/config
# for f in *.dist; do cp $f `basename $f .dist`; done
Now, edit backends.php in the config directory to match your setup (read the comments). After that, go to http://localhost/mail/ and continue setting it up.
[edit] Installing Horde Ingo Email Filter Rules Manager
# echo "www-apps/horde-ingo" >> /etc/portage/package.keywords
# emerge horde-ingo
# webapp-config -I -h localhost -d mail/ingo horde-ingo VERSION
# cd ingo/config
# for f in *.dist; do cp $f `basename $f .dist`; done
# nano -w conf.php
| File: /var/www/localhost/htdocs/mail/ingo/config/conf.php
|
|
|
# chown apache:apache conf.php
# cd ..
# chmod 644 test.php
# rm test.php
# cd ..
[edit] Installing Horde Kronolith Calendar Application
# echo "www-apps/horde-kronolith" >> /etc/portage/package.keywords
# emerge horde-kronolith
# webapp-config -I -h localhost -d mail/kronolith horde-kronolith VERSION
# nano -w kronolith/scripts/sql/kronolith.mysql.sql
| File: /var/www/localhost/htdocs/mail/kronolith/scripts/sql/kronolith.mysql.sql
|
|
|
# mysql -u root -p < kronolith/scripts/sql/kronolith.mysql.sql
# cd kronolith/config
# for foo in *.dist; do cp $foo `basename $foo .dist`; done
# nano -w conf.php
| File: /var/www/localhost/htdocs/mail/kronolith/config/conf.php
|
|
|
# chown apache:apache conf.php
# cd ../..
[edit] Installing Horde Mnemo Note Manager
# echo "www-apps/horde-mnemo" >> /etc/portage/package.keywords
# emerge horde-mnemo
# webapp-config -I -h localhost -d mail/mnemo horde-mnemo VERSION
# nano -w mnemo/scripts/sql/mnemo.mysql.sql
| File: /var/www/localhost/htdocs/mail/mnemo/scripts/sql/mnemo.mysql.sql
|
|
|
# mysql -u root -p < mnemo/scripts/sql/mnemo.mysql.sql
# cd mnemo/config
# for foo in *.dist; do cp $foo `basename $foo .dist`; done
# nano -w conf.php
| File: /var/www/localhost/htdocs/mail/mnemo/config/conf.php
|
|
|
# chown apache:apache conf.php
# cd ../..
[edit] Installing Horde Nag Task Manager
# echo "www-apps/horde-nag" >> /etc/portage/package.keywords
# emerge horde-nag
# webapp-config -I -h localhost -d mail/nag horde-nag VERSION
# nano -w nag/scripts/sql/nag.mysql.sql
| File: /var/www/localhost/htdocs/mail/nag/scripts/sql/nag.mysql.sql
|
|
|
# mysql -u root -p < nag/scripts/sql/nag.mysql.sql
# cd nag/config
# for foo in *.dist; do cp $foo `basename $foo .dist`; done
# nano -w conf.php
| File: /var/www/localhost/htdocs/mail/nag/config/conf.php
|
|
|
# chown apache:apache conf.php
# cd ../..
# nano -w /etc/portage/package.keywords
| File: /etc/portage/package.keywords
|
|
|