\documentclass{article}
\usepackage{ulem}
\pagestyle{headings}
\begin{document}
\part{ Horde Administrator's FAQ}
\section{ Obtaining and Installing Prerequisite Packages}
\tableofcontents

\section{ About this FAQ section}
This section of the FAQ addresses issues that routinely come up while installing programs and packages upon which Horde and its components depend. This is \textsl{not} a step-by-step guide to installing any of the components. In other words, you'll still need to read the installation instructions (usually in docs/INSTALL) of the prerequisite packages you need to install.

\section{ General prerequisites}
\subsection{ What does Horde need to run?}
See http://www.horde.org/apps/horde/docs/INSTALL\#prerequisites\footnote{http://www.horde.org/apps/horde/docs/INSTALL\#prerequisites}

\subsection{ Does Horde work with PHP 4?}
\textbf{[Horde 3.x]:} Yes.

\textbf{[Horde 4.x]:} No.

\subsection{ How do I build Apache with PHP?}
Please read the excellent installation manual\footnote{http://www.php.net/manual/en/install.php} on the PHP website.

\subsection{ Do I really need gettext support?}
\textbf{[Horde 3.x/4.x]:} At a minimum, Horde 3.x/4.x and its applications require gettext support in PHP. Horde \textbf{will not run} without gettext support in php. In addition, if you wish to have the messages translated, then you will require working gettext support in the operating system and the desired locales installed for the languages you want to support. Some operating system specific notes follow.

\textbf{Debian Linux:} You can configure the locale support with the command \textsl{dpkg-reconfigure locales}.

(In the rare case that the above command returns an error about locales not being installed, you should use the command \texttt{apt-get install locales} to install and configure the locales).

\textbf{RedHat Linux:} You will need the RPMS \textsl{gettext} and \textsl{php-gettext} installed.

With RedHat 8.0 and above, if your only getting English no matter what language you select, try re-installing glibc-common. You can do this with a command such as: \texttt{rpm -Uhv --force glibc-common-2.2.93-5.i386.rpm}

\textbf{Slackware Linux:} Make sure you have the \textsl{glibc-i18n} package installed. Make sure in \texttt{/etc/apache/php.ini} you set \texttt{register\_argc\_argv = On} (it's Off by default) and that you enable the gettext extension by setting adding or uncommenting \texttt{extension=gettext.so} also (also not enabled by default).

\textbf{SuSE Linux:} Make sure you have the \textsl{glibc-locale} and \textsl{php5-gettext} packages installed. You can install them via the \textsl{yast} configuration tool.

\textbf{Solaris:} On Solaris 7, you must have installed the \textsl{Partial Locales} (SUNWploc) and \textsl{Supplementary Partial Locales} (SUNWploc1) packages. On Solaris 8, you must install the local packages required for the locales you desire (for example, you may need to install SUNWweuos for Western European locales or SUNWmeaos for Middle Eastern locales). Horde assumes that the Sun Solaris gettext implementation is in place. If you have installed the GNU gettext instead or in addition, you may have problems. In particular you must make sure that your web server software and php software are linked to the same version of gettext (e.g. libintl.so). See the file horde/docs/TRANSLATIONS\footnote{http://www.horde.org/apps/horde/docs/TRANSLATIONS\#solaris}) for more information.

\textbf{Ubuntu:} You can install additional locales with the command \texttt{locale-gen de\_DE.UTF-8} (installing German locales in this example). This command is part of the \texttt{locales} package that need to be installed.

On some systems, in particular on Solaris, you will need to rebuild the Horde locale files. You may need to restart the web server after rebuilding the locale files in order for the web server to see the new files.

For more information, see the file horde/docs/TRANSLATIONS\footnote{http://www.horde.org/apps/horde/docs/TRANSLATIONS}.

\subsection{ Which database should I use?}
The one you already have, of course!

Well, no, that's not exactly true. Horde 3 supports a wide variety of database backends. The database support in Horde 4 is more limited. The most stable databases to use with Horde are MySQL\footnote{http://www.mysql.com/} and PostgreSQL\footnote{http://www.postgresql.org/}. Since they are free (and Oracle, MS-SQL, Informix and Sybase are not), they're the ones that get the most use by developers and by those installing IMP who don't already have a commercial RDBMS lying around. Choosing between MySQL and PostgreSQL is as much a religious issue as a technical one; MySQL was traditionally considered to be faster but at the expense of robustness and providing commercial-RDBMS features, while PostgreSQL was traditionally considered to suffer slightly in performance and ease of management while being more of an enterprise-class database. Recent versions of PostgreSQL and MySQL are probably of about the same performance. MySQL is probably more popular however due to these historical circumstances and considerations.

Those of you with existing Oracle, MS-SQL, Informix or Sybase installations will be happy to know that you can use them at least with Horde 3 as well. The only disadvantage to that is that it might require a little more work to configure, simply because it hasn't been tested to the extent that the free databases have. If you need support for one of these databases in Horde 4 too, consider sponsoring the development\footnote{http://www.horde.org/services} of additional database drivers for the Horde DB abstraction layer.

\subsection{ Can I run Horde without a database?}
You \textsl{can}, but database functionality such as persistent preferences will not be available. We strongly recommend using a database with Horde.

\section{ IMP prerequisites}
\subsection{ What does IMP need to run?}
See http://www.horde.org/apps/imp/docs/INSTALL\#prerequisites\footnote{http://www.horde.org/apps/imp/docs/INSTALL\#prerequisites}

\subsection{ I don't use UW-IMAP. How can I build IMAP support into PHP?}
IMP up to version 4.x requires that PHP be built with IMAP support; IMP 5.x no longer requires IMAP support in PHP.

PHP requires that the UW-IMAP \textsl{c-client} library be available during compilation. This library is the reference IMAP implementation and is only an IMAP \textsl{client}. Many distributions ship with the c-client library, often with the package name \textsl{imap-devel}.

c-client has nothing to do with the IMAP server that you use; even if you use the Courier or Cyrus IMAP server, you must download the UW-IMAP package and build c-client on the same machine as the webserver. The steps to build only the c-client libraries are as follows:

\renewcommand{\labelenumi}{\arabic{enumi}}
\begin{enumerate}
\item{Move to the top directory of the UW-IMAP distribution.}
\item{Run make with the correct argument for your operating system (see \texttt{Makefile} in the c-client distribution for a list of arguments to use with the make command).}
\end{enumerate}
and then point PHP configure's \texttt{--with-imap} option at the top directory of the UW-IMAP distribution. (There is no need to \texttt{make install} in the IMAP distribution.)

\subsection{ How can I use secure/encrypted IMAP-SSL connections?}
Some IMAP servers also support IMAP-SSL, which encrypts the connection between the client and the server so as to protect passwords and message content which would otherwise be passed in plaintext.

\textbf{[IMP 3.x/4.x]:} If PHP is built against a recent version of c-client and using the configuration flag \texttt{--with-imap-ssl}, IMP supports IMAP-SSL and POP-SSL natively. Use \texttt{imap/ssl} or \texttt{pop/ssl} as the protocol type in \texttt{horde/imp/config/servers.php}.

\textbf{[IMP 5.x]:} You need the OpenSSL\footnote{http://example.com/index.php?page=OpenSSL} extension for PHP installed if you want to use IMAP SSL/TLS connections.

\subsection{ How can I use Microsoft Exchange as my IMAP server?}
First, you must enable IMAP access in the Exchange Administrator. Expand your main container, and click \textsl{Protocols}. Double-click \textsl{IMAP4}. Check the \textsl{Enable Protocol} check box. Jason Haar also suggests unchecking the \textsl{Enable Fast Message Retrieval} check box if you experience problems with missing attachments. If you only want certain users to have IMP access, you can use the Exchange Administrator to disable IMAP for individual mailboxes.

\textbf{[IMP 4.x/5.x]:} Recent versions of IMP have an example configuration for Exchange servers in the \texttt{imp/config/servers.php.dist} resp. \texttt{imp/config/backends.php} file.

For the IMP username, use \texttt{nt\_domain\\nt\_login\_id\\exchange\_alias}. If your Exchange alias is the same as your NT login id, you may be able to use just the Exchange alias for the IMP username. Use your NT domain password for the IMP password.

Once logged in, you will have access to all your Exchange data, including calendar, tasks, contacts, etc. You can use the Imp folder management interface to subscribe and unsubscribe from these folders. Exchange serves up everything via IMAP, and IMP will happily display the contents of the non-email folders as if they were email messages. As a result, they aren't terribly useful and not at all editable, but at least you can see some detail.

\subsection{ Can I use POP3 instead of IMAP?}
\textbf{[IMP 4.x/5.x]:} Certainly! IMP supports IMAP and POP3; just specify the appropriate protocol for each server in \texttt{horde/imp/config/servers.php} resp. \texttt{horde/imp/config/backends.php} as described in the comments at the top of that file.

Keep in mind that for IMP 4 PHP will \textsl{always} have to be compiled with the \texttt{--with-imap} option to \texttt{configure}, and built against the IMAP c-client libraries, even if you're not going to use it with an IMAP server.

\subsection{ Is Sendmail required?}
No, IMP can use either a local sendmail (compatible) program, or connect to a remote SMTP gateway. So if you have access to a remote SMTP gateway, then there is no need to install sendmail (or equivalent) on the webserver.

\section{ Turba prerequisites}
\subsection{ What does Turba need to run?}
See http://www.horde.org/apps/turba/docs/INSTALL\#prerequisites\footnote{http://www.horde.org/apps/turba/docs/INSTALL\#prerequisites}

\end{document}
