\documentclass{article}
\usepackage{ulem}
\usepackage{graphicx}
\usepackage{hyperref}
\pagestyle{headings}
\begin{document}
\part{Installation}
Horde requires some prerequisite software before you can use it.   In addition, there are other software packages which, while<br />
not required, are recommended as without them you will experience very limited functionality.  The following helps you to<br />
install the required and recommended software packages on a Fedora Core 4 system.

\section{Apache packages}
Horde is a web application, and as such, you need to provide a web server to use it.  If you do not already have the Apache web<br />
server installed, you should do so at this time:

<pre><code>
yum install httpd
chkconfig httpd on
/etc/init.d/httpd start
</code></pre>
\section{PHP Packages}
As Horde is a PHP application, it requires that you have PHP installed.  In addition to the base php package, Horde and<br />
its applications require several other PHP packages.  The following installs the most commonly needed PHP packages.

<pre><code>
yum install php php-xml php-imap
</code></pre>
\section{PEAR}
The Fedora Core PHP package contains a PEAR installation, but it is missing some PEAR modules needed by Horde.<br />
You can install these modules using the following command:

<pre><code>
pear install -f Net\_IMAP Log Mail\_Mime File Date Console\_Getopt
</code></pre>
Note for Fedora Core 5 you should also install the DB package for pear.

<pre><code>
pear install -f DB
</code></pre>
Read the note at: <a href="http://pear.php.net/bugs/bug.php?id=5113">http://pear.php.net/bugs/bug.php?id=5113</a><br />
If you've faced this problem then you can download a patched file via:

<pre><code>
pear install http://www.iptp.net/files/File-1.2.1.tgz
</code></pre>
\section{SQL}
While a SQL server is not required to run Horde, it is recommended as much of the Horde functionality will be lost without it.<br />
You may run either MySQL or PostgreSQL, but you should not run both!

While you do not need to run the SQL server on the same machine that runs the Horde web applications, that is the most common setup for small sites, and hence the following assumes this type of setup.

\subsection{MySQL}
<pre><code>
yum install php-mysql mysql mysql-server
/sbin/chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start
</code></pre>
(You might need more packages depending your installation.)

\textit{OR}

\subsection{PostgreSQL}
<pre><code>
yum install postgresql-server php-pgsql postgresql-libs mod\_auth\_pgsql postgresql
/sbin/chkconfig --levels 235 postgresql
/etc/init.d/postgresql start
</code></pre>
\section{CVS}
The instructions below install Horde and its applications from CVS.  In order to use CVS, you will need to have the<br />
cvs package installed in your machine.  The following command can be used to install the cvs package.

<pre><code>
yum install cvs
</code></pre>
\section{Horde}
The following commands can be used to install Horde along with the more popular Horde applications, using anonymous<br />
CVS.  There are other ways to install Horde and its applications other than CVS.  However, this documentation only covers<br />
using CVS for installation.

<pre><code>
cd /var/www/html
cvs -d :pserver:cvsread@anoncvs.horde.org:/repository login
Password: horde
cvs -d :pserver:cvsread@anoncvs.horde.org:/repository checkout horde
cd horde
cvs -d :pserver:cvsread@anoncvs.horde.org:/repository checkout framework imp kronolith mnemo nag passwd turba ingo
cd framework
pear channel-discover pear.horde.org
php install-packages.php
mkdir -p /var/horde/vfs
chown -R apache:apache /var/horde
</code></pre>
\part{Configuration}
Once all the software is installed, you need to configure it for use with Horde.  Below is some information on how to<br />
configure the various software packages.  Note that configuration will vary depending on your needs, and the following<br />
is just a basic guide; you may need to adjust your configuration for your needs.

\section{MySQL}
Before you can use the MySQL server with Horde, you must setup the SQL server and create the needed database tables.

\subsection{Create a MySQL account}
First, you need to create a SQL user.  In the instructions below, replace 'password' with the actual password you want to<br />
set for this account.

<pre><code>
mysqladmin -u root password 'password'
mysqladmin -u root -h your.host.name password 'password'
</code></pre>
\subsection{Creating the MySQL Database and Tables}
Next, you need to create the database and its tables.  First, you must edit the database scripts Horde provides to set the<br />
database password to the password you set in the previous step.

<pre><code>
cd /var/www/html/horde/scripts/sql
vi create.mysql.sql
</code></pre>
Then change the database password in the file, and save it.  Once you have set the password correctly in the script,<br />
you should run the script in order to create the database:

<pre><code>
mysql -u root -p < create.mysql.sql
</code></pre>
\section{PostgreSQL}
Before you can use the PostgreSQL server with Horde, you must setup the SQL server and create the needed database tables.

<pre><code>
cd /var/www/html/horde/scripts/sql
vi pgsql\_create.sql
</code></pre>
Then change the database password in the file and save it.  Once you have set the password correctly in the script,<br />
you should run the script in order to create the database:

<pre><code>
psql -d template1 -f pgsql\_create.sql -U postgres
psql -d horde -U horde -f auth.sql
psql -d horde -U horde -f category.sql
psql -d horde -U horde -f prefs.sql
</code></pre>
Note that you may see some NOTICE messages from PostreSQL noting that implicit indexes have been created; these are normal and can be ignored.

\section{Horde}
First, you need to install the distribution default configuration files, present in the config subdirectory within each Horde application (including the base Horde configuration directory itself):

<pre><code>
cd /var/www/html/horde
for a in . mnemo nag turba imp ingo kronolith passwd; do cd /var/www/html/horde/\$a/config; for f in *.dist; do cp \$f `basename \$f .dist`; done; done
</code></pre>
Next, we want to make sure that all the files have the correct file permissions:

<pre><code>
cd /var/www/html
chown -R apache:apache horde
chmod -R o-rwx horde
</code></pre>
Finally, you now need to do the basic configuration of all the Horde applications using the Horde Administrative Interface . Log in to your Horde installation, at <a href="http://your.host.name/horde/">http://your.host.name/horde/</a>. Once you're in, click on the \texttt{Administration} link on the sidebar, then the \texttt{Setup} sub-option. The Default Administrator password is mailadmin. You should see a list of available Horde applications in the main frame - you now need to go through this list and configure each Horde application as you please. Click on an entry in this list; you should be brought to a configuration screen. Go through each tab within this screen (if there are multiple tabs; otherwise there will just be a single page) and change any settings as you see fit (although the default options are usually sufficient if you don't feel comfortable editing all the available variables). Once you have finished configuring an application, click on the \texttt{Generate XXX Configuration} button at the bottom of the page to auto-generate the relevant \texttt{conf.php} file for the specific application. Repeat this process for every application in the \texttt{Setup} page.

Note that the above only configures the base configuration of the applications.  There are other configuration files which you may<br />
also want to configure for each application.  Such configuration must be done by hand.  See the docs/INSTALL file for each<br />
application for more information on configuring that application.

\textit{v at kangin dot org}

\end{document}
