\documentclass{article}
\usepackage{ulem}
\usepackage{graphicx}
\usepackage{hyperref}
\pagestyle{headings}
\begin{document}
\part{How To Install Horde CVS on IIS6 Windows Server 2003.}
\begin{itemize}
\item This document assumes the following:
\begin{itemize}
\item If this is small-usaged server you want to use the CGI version of PHP. It's easier to setup but on the other hand the ISAPI version works much better. II have two links which describe this in detail: <a href="https://hosting.kingridge.org/support/index.php?\_m=knowledgebase\&amp;\_a=viewarticle\&amp;kbarticleid=47\&amp;nav=0,2">https://hosting.kingridge.org/support/index.php?\textbackslash\{\}\_m=knowledgebase\textbackslash\{\}\&\textbackslash\{\}\_a=viewarticle\textbackslash\{\}\&kbarticleid=47\textbackslash\{\}\&nav=0,2</a> and <a href="http://www.iis-resources.com/modules/AMS/article.php?storyid=615">http://www.iis-resources.com/modules/AMS/article.php?storyid=615</a>


\item Windows Server 2003 has been installed with the default options. In other words \%WINDIR\%=C:\textbackslash\{\}Windows and IIS6 has been installed with the default options. 2003 Server does not install IIS by default. I used Add/Remove Programs-Add/Remove Windows Components to install IIS6.


\item All available patches have been applied using: <a href="http://v4.windowsupdate.microsoft.com/en/default.asp">http://v4.windowsupdate.microsoft.com/en/default.asp</a>


\item You have some knowledge of how to use the windows command line.


\end{itemize}

\item This document is specific to the following software versions.
\begin{itemize}
\item PHP 4.3.7RC1  Download the php-4.3.7RC1-Win32.zip from <a href="http://www.php.net/downloads.php">http://www.php.net/downloads.php</a>. Do NOT use the Windows Installer version.


\item MySQL 4.0.20  Download mysql-4.0.20a-win.zip from <a href="http://dev.mysql.com/downloads/mysql/4.0.html">http://dev.mysql.com/downloads/mysql/4.0.html</a> Unlike PHP it is recommended that you use the Windows installer version.


\item Aspell 0.05-3  Download the full installer from <a href="http://aspell.net/win32/">http://aspell.net/win32/</a> dictionaries can be downloaded at the same URL


\item !WinCvs13b17-2 -- Download !WinCvs13b17-2.zip from <a href="http://sourceforge.net/projects/cvsgui/">http://sourceforge.net/projects/cvsgui/</a> Even though this is a complete GUI Im only interested in cvs.exe so I can connect to the Horde cvs repository from the command line.


\end{itemize}

\end{itemize}
\section{Install PHP 4.3.7RC1}
\begin{itemize}
\item Extract the files in the ZIP archive to \texttt{C:\textbackslash\{\}}. Extracting the files will create a folder called \texttt{C:\textbackslash\{\}php-4.3.7RC1-Win32}. Rename the folder to \texttt{C:\textbackslash\{\}php}.


\item Copy \texttt{C:\textbackslash\{\}php\textbackslash\{\}php4ts.dll} to \texttt{C:\textbackslash\{\}Windows\textbackslash\{\}System32}.


\item Copy \texttt{C:\textbackslash\{\}php\textbackslash\{\}php-ini-recommended} to \texttt{C:\textbackslash\{\}Windows}. Rename \texttt{php-ini-recommended} to \texttt{php.ini}


\item Just to be safe, change the permissions on \texttt{php.ini} to EVERYONE: Read \& Execute, Read. Ignore any warning you might see when you apply the permissions.


\item Open \texttt{C:\textbackslash\{\}Windows\textbackslash\{\}php.ini} for editing
\begin{itemize}
\item Search for extension\_dir and change it to read: \texttt{extension\_dir = ".\textbackslash\{\}extensions"}


\item Search for browscap. Uncomment the \texttt{browscap =} line and change it to read: \texttt{browscap = c:\textbackslash\{\}windows\textbackslash\{\}system32\textbackslash\{\}inetsrv\textbackslash\{\}browscap.ini}


\item Search for cgi.force\_redirect. Uncomment the \texttt{cgi.force\_redirect =} line and change it to read: \texttt{cgi.force\_redirect = 0}


\item Search for upload. By default uploads are enabled. Decide where you want the upload temporary directory to live, if necessary create that folder. Decide what the maximum allowed upload size and set: \_


\end{itemize}

\end{itemize}
<pre><code>
upload\_tmp\_dir = whatever folder you like
upload\_max\_filesize = whatever size you like
</code></pre>
\_<br />
I use \texttt{C:\textbackslash\{\}temp} and 64M respectively. The reason I set this directive is because if its not set PHP uses \%TEMP\% which is \texttt{C:\textbackslash\{\}Windows\textbackslash\{\}Temp}. I like to keep temp stuff clear of my \%SYSTEMROOT\%. Alternately you could change the \%TEMP\% and \%TMP\% system variables and leave this directive commented out. 64 megabytes might seem a bit excessive, but I run a small installation so I dont worry about this as much as someone running a larger installation.

\begin{itemize}
\item Optionally you can search for doc\_root and change it to \texttt{C:\textbackslash\{\}Inetpub}. That way any website created under that folder will have PHP capabilities. I left this directive blank.


\item Search for Windows Extensions. Youll need to uncomment the following:
\begin{itemize}
\item extension=php\_domxml.dll


\item extension=php\_gd2.dll


\item extension=php\_gettext.dll


\item extension=php\_iconv.dll


\item extension=php\_imap.dll


\item extension=php\_ldap.dll


\item extension=php\_mbstring.dll


\item extension=php\_mcrypt.dll


\item extension=php\_mime\_magic.dll


\item extension=php\_openssl.dll


\item extension=php\_pgsql.dll


\end{itemize}

\item You might not need all of the extensions listed here. In fact you probably dont but I uncommented all of the extensions reported in the PHP Module Capabilities section of the Horde test script.


\item Save and close the updated \texttt{php.ini} file.


\item In order to get mcrypt support on Windows youll need \texttt{libmcrypt.dll}. (Refer to <a href="http://www.php.net/mcrypt\">http://www.php.net/mcrypt\textbackslash\{\}</a>). The dll is available at <a href="http://ftp.emini.dk/pub/php/win32/mcrypt/">http://ftp.emini.dk/pub/php/win32/mcrypt/</a>. Browse to this address, right-click on \texttt{libmcrypt.dll} and choose Save Target as Save the dll in \texttt{C:\textbackslash\{\}php\textbackslash\{\}dlls}


\end{itemize}
\section{Configure IIS6 to Allow PHP extensions}
Before you start this process I recommend adding \texttt{C:\textbackslash\{\}php;C:\textbackslash\{\}php\textbackslash\{\}dlls} to the system path. From what Ive read about installing PHP on IIS6 this is a preference rather that a must. I added it for two reasons. The first is convenience; the second and more important is because there are a number of files in the dlls folder that are required to run the PHP extensions used by Horde. If the dlls folder is not in the path you have to copy the necessary dll to \texttt{c:\textbackslash\{\}Windows\textbackslash\{\}system32} folder. So to avoid having to find and copy the appropriate dlls I strongly recommend adding these entries into the system path.

\begin{itemize}
\item Click "Start -> Administrative Tools -> Internet Information Services (IIS) Manger".


\item Expand the local computer tree then click Web Service Extensions in the left-hand pane.


\item Click the Add a new Web service extension link under Tasks in the right hand pane.


\item Enter \texttt{PHP} in the Extension name: box.


\item Click the Set extension status to Allowed check box (Should be checked).


\item Click the Add button then click the Browse button. Browse to \texttt{C:\textbackslash\{\}php}, change the Files of type: box to read CGI exe files (*.exe). Double-click on \texttt{php.exe}. Finally click the "OK" button twice.


\end{itemize}
\section{Add PHP to IIS6 Web Sites}
There is a decision to make at this point. We can add PHP functionality to the Web Sites folder or we can simply add it to the Default Web Site. The benefit to adding PHP to the Web Sites folder is that any new web site will inherit the settings. Conversely, if you choose not to configure the Web Sites folder to use PHP then youll have to add the functionality to each new web site as you create it. Ill cover both options here.

\begin{itemize}
\item Right Click on the Default Web Site entry under the Web Sites folder in the left-hand pane and choose Properties OR Right-click on the Web Sites folder in the left-hand pane and choose Properties.


\item Click the Home Directory tab then click the Configuration button


\item Click the Add button. Browse to \texttt{C:\textbackslash\{\}php}, change the Files of type: box to read CGI exe files (*.exe). Double-click on \texttt{php.exe}.


\item Enter PHP in the Extensions: box. Make sure the Script Engine box is checked. Leave Verify file exists checked if you want or you may uncheck it. I chose to  uncheck it.


\item Click the OK button twice to return to the Default Web Site Properties page. If you are applying these changes to the Web Sites folder youll return to the Web Sites Properties page.


\item Change the Execute Permission box to read Scripts and Executables


\item Click the Documents tab.


\item Click the Add button and enter index.php in to the Default content page: box.


\item Click the Move up button until index.php appears at the top of the list.


\item Click the OK button.


\item If you are applying these setting to the Web Sites folder you will see an Inheritance Overrides dialog box asking which Child Nodes to apply the settings to. Click the Select All button then the OK button.


\end{itemize}
\section{Test the PHP installation}
\begin{itemize}
\item First its a good idea to stop and start the IIS services. I found it much easier and cleaner to do this from a Command Prompt. So open a Command Prompt and type:
\begin{itemize}
\item \texttt{net stop iisadmin <enter>}


\item Say YES to the following message: \_


\end{itemize}

\end{itemize}
<pre><code>
The following services are dependent on the IIS Admin Service service.
Stopping the IIS Admin Service service will also stop these services.
World Wide Web Publishing Service
HTTP SSL
Do you want to continue this operation? (Y/N) [N]:
</code></pre>
\begin{itemize}
\item The services will stop and you will be returned to the Command Prompt. To start the IIS services type: \_


\end{itemize}
<pre><code>
net start w3svc <enter>
</code></pre>
\begin{itemize}
\item Open notepad and enter the following text: \_


\end{itemize}
<pre><code>
<? phpinfo(); ?>
</code></pre>
\begin{itemize}
\item Save the file as \texttt{C:\textbackslash\{\}Inetpub\textbackslash\{\}wwwroot\textbackslash\{\}phptest.php} \_<br />
CAUTION: Dont forget that Windows will try to add .txt to the end of the filename.


\item Open your favorite browser and go to <a href="http://hostname/phptest.php">http://hostname/phptest.php</a> If all is well youll see: \_


\end{itemize}
<pre><code>
PHP Version 4.3.7RC1

System 
Windows NT HATRICK 5.2 build 3790 
Build Date 
May 25 2004 15:27:35 
Server API 
CGI/FastCGI 
Virtual Directory Support 
enabled 
Configuration File (php.ini) Path 
C:\textbackslash\{\}WINDOWS\textbackslash\{\}php.ini 
PHP API 
20020918 
PHP Extension 
20020429 
Zend Extension 
20021010 
Debug Build 
no 
Thread Safety 
enabled 
Registered PHP Streams 
php, http, ftp, compress.zlib 

This program makes use of the Zend Scripting Language Engine:
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
</code></pre>
\section{Install PEAR Using the Provided PHP Scripts}
\begin{itemize}
\item Open a Command Prompt


\item CD to \texttt{C:\textbackslash\{\}php}


\item Execute: \texttt{go-pear.bat <enter>}. Youll see: \_


\end{itemize}
<pre><code>
Welcome to go-pear!

Go-pear will install the 'pear' command and all the files needed by
it.  This command is your tool for PEAR installation and maintenance.

Go-pear also lets you download and install the PEAR packages bundled
with PHP: DB, Net\_Socket, Net\_SMTP, Mail, XML\_Parser, PHPUnit-0.6.2.

If you wish to abort, press Control-C now, or press Enter to continue:
</code></pre>
\begin{itemize}
\item Press Enter to continue. Youll see: \_


\end{itemize}
<pre><code>
HTTP proxy (http://user:password@proxy.myhost.com:port), or Enter for none:
</code></pre>
\begin{itemize}
\item Enter the proxy information if needed, otherwise Enter to continue. Youll see: \_


\end{itemize}
<pre><code>
Below is a suggested file layout for your new PEAR installation.  To
change individual locations, type the number in front of the
directory.  Type 'all' to change all of them or simply press Enter to
accept these locations.
 1. Installation prefix               : C:\textbackslash\{\}php
 2. Binaries directory                : \$prefix
 3. PHP code directory (\$php\_dir)     : \$prefix\textbackslash\{\}pear
 4. Documentation base directory      : \$php\_dir\textbackslash\{\}docs
 5. Data base directory               : \$php\_dir\textbackslash\{\}data
 6. Tests base directory              : \$php\_dir\textbackslash\{\}tests
 7. php.exe path                      : C:\textbackslash\{\}php\textbackslash\{\}cli\textbackslash\{\}php.exe
1-7, 'all' or Enter to continue:
</code></pre>
\begin{itemize}
\item Make any changes you need and press Enter to continue. Based on these installation instructions the defaults are acceptable.


\item Say YES to the following prompt: \_


\end{itemize}
<pre><code>
The following PEAR packages are bundled with PHP: DB, Net\_Socket, Net\_SMTP,
Mail, XML\_Parser, PHPUnit-0.6.2.
Would you like to install these as well? [Y/n] :
</code></pre>
\begin{itemize}
\item Youll see: \_


\end{itemize}
<pre><code>
Loading zlib: ok
Using local package: PEAR.............ok
Using local package: Archive\_Tar......ok
Using local package: Console\_Getopt....ok
Using local package: XML\_RPC..........ok
Bootstrapping: PEAR...................(local) ok
Bootstrapping: Archive\_Tar............(local) ok
Bootstrapping: Console\_Getopt.........(local) ok
Using local package: DB...............ok
Using local package: Net\_Socket.......ok
Using local package: Net\_SMTP.........ok
Using local package: Mail.............ok
Using local package: XML\_Parser.......ok
Downloading package: PHPUnit-0.6.2....ok
Extracting installer..................ok
install ok: PEAR 1.3.1
install ok: Archive\_Tar 1.1
install ok: Console\_Getopt 1.2
install ok: XML\_RPC 1.1.0
install ok: DB 1.6.1
install ok: Net\_Socket 1.0.1
install ok: Net\_SMTP 1.2.5
install ok: Mail 1.1.2
install ok: XML\_Parser 1.0.1
install ok: PHPUnit 0.6.2

******************************************************************************
WARNING!  The include\_path defined in the currently used php.ini does not
contain the PEAR PHP directory you just specified:
<C:\textbackslash\{\}php\textbackslash\{\}pear>
If the specified directory is also not in the include\_path used by
your scripts, you will have problems getting any PEAR packages working.

Would you like to alter php.ini <C:\textbackslash\{\}WINDOWS\textbackslash\{\}php.ini>? [Y/n] :
</code></pre>
\begin{itemize}
\item Say YES to updating your php.ini file. Youll see: \_


\end{itemize}
<pre><code>
php.ini <C:\textbackslash\{\}WINDOWS\textbackslash\{\}php.ini> include\_path updated.
Note: this entry is added at the very bottom of your php.ini.

Current include path           	: .;c:\textbackslash\{\}php4\textbackslash\{\}pear
Configured directory           	: C:\textbackslash\{\}php\textbackslash\{\}pear
Currently used php.ini (guess) 	: C:\textbackslash\{\}WINDOWS\textbackslash\{\}php.ini
Press Enter to continue:
</code></pre>
\begin{itemize}
\item Press Enter and youll see: \_


\end{itemize}
<pre><code>
The 'pear' command is now at your service at C:\textbackslash\{\}php\textbackslash\{\}pear.bat

* WINDOWS ENVIRONMENT VARIABLES *
For convenience, a REG file is available under C:\textbackslash\{\}php\textbackslash\{\}PEAR\_ENV.reg .
This file creates ENV variables for the current user.

Double-click this file to add it to the current user registry.

Press any key to continue . . .
</code></pre>
\begin{itemize}
\item Press any key to return to the command prompt.


\item Browse to \texttt{C:\textbackslash\{\}php} and double-click on \texttt{PEAR\_ENV.reg} to import the registry information.


\item Next add the PEAR packages which are required by Horde (You should already be in \texttt{C:\textbackslash\{\}php}, if not CD to that directory):
\begin{itemize}
\item Log  From the command prompt: \texttt{pear install log <enter>}. Ignore the message: Optional dependencies: 'sqlite' PHP extension is recommended to utilize some features.


\item Mail Mime  From the command prompt: \texttt{pear install mail\_mime <enter>}


\item Date -- From the command prompt: \texttt{pear install date <enter>}


\item Auth\_SASL -- From the command prompt: \texttt{pear install auth\_sasl <enter>}


\item HTTP\_Request -- Has pre-requisites. Follow this path:
\begin{itemize}
\item From the command prompt: \texttt{pear install net\_url <enter>}


\item From the command prompt: \texttt{pear upgrade net\_socket <enter>}


\item From the command prompt: \texttt{pear install http\_request <enter>}


\end{itemize}

\item File: -- From the command prompt: \texttt{pear install file <enter>}


\item Services\_Weather -- Has pre-requisites. Follow this path:
\begin{itemize}
\item From the command prompt: \texttt{pear install cache <enter>}


\item From the command prompt: \texttt{pear install net\_dime-beta <enter>}


\item From the command prompt: \texttt{pear install soap-beta <enter>}


\item From the command prompt: \texttt{pear install xml\_util <enter>}


\item From the command prompt: \texttt{pear upgrade xml\_parser <enter>}


\item From the command prompt: \texttt{pear upgrade xml\_serializer <enter>}


\item From the command prompt: \texttt{pear install services\_weather <enter>}


\end{itemize}

\item Just for grins and giggles execute \texttt{pear upgrade-all <enter>}


\end{itemize}

\end{itemize}
\section{Install MySQL 4.0.18}
\begin{itemize}
\item Extract the files from \texttt{mysql-4.0.20a-win.zip} into a temporary folder.


\item Browse to that folder and double-click on \texttt{SETUP.EXE}.


\item The installation wizard will start. You can simply accept all of the defaults. Click the Finish button when the installation finished.


\item Optionally add \texttt{C:\textbackslash\{\}mysql\textbackslash\{\}bin} to the system path. I do this out of convenience. It makes it easier when you execute the Horde DB scripts.


\item Open notepad or your favorite text editor and enter the following text: \_


\end{itemize}
<pre><code>
[mysqld]
\# set basedir to your installation path
basedir=C:\textbackslash\{\}\textbackslash\{\}mysql
\# set datadir to the location of your data directory
datadir=C:\textbackslash\{\}\textbackslash\{\}mysql\textbackslash\{\}\textbackslash\{\}data

[WinMySQLAdmin]
Server=C:\textbackslash\{\}\textbackslash\{\}mysql\textbackslash\{\}\textbackslash\{\}bin\textbackslash\{\}\textbackslash\{\}mysqld-nt.exe
QueryInterval=10
</code></pre>
\begin{itemize}
\item If you installed MySQL into a different folder youll need to change the \texttt{basedir =} to point to your installation point. Additionally you need to add a different path to the system path variable. If you want to store your databases in a different location, create that folder structure and change the \texttt{datadir=} to point to that location. Beware that if you want to use back slashes in your my.ini, you need to use \textbackslash\{\}\textbackslash\{\} otherwise use forward slashes.


\item Save the file as \texttt{C:\textbackslash\{\}Windows\textbackslash\{\}my.ini} \_<br />
CAUTION: Dont forget that Windows will try to add .txt to the end of the filename.


\item Open a Command Prompt and give MySQL a test by entering: \_


\end{itemize}
<pre><code>
mysqld console <enter>
</code></pre>
\_<br />
Of all the information displayed, youre only interested in weather or not MySQL reports:

<pre><code>
mysqld: ready for connections.
Version: '4.0.20a-debug'  socket: ''  port: 3306 
Press CTRL+C to stop MySQL
</code></pre>
\begin{itemize}
\item Now we can install the MySQL daemon as a service by entering: \_


\end{itemize}
<pre><code>
mysqld install <enter>
</code></pre>
\_<br />
You should receive a \texttt{Service successfully installed}.

\begin{itemize}
\item Start the MySQL service by typing \_


\end{itemize}
<pre><code>
net start mysql <enter>
</code></pre>
\_<br />
You should see: \texttt{The MySQL service was started successfully}.

\begin{itemize}
\item Reset the MySQL root password by entering: \_


\end{itemize}
<pre><code>
mysql -u root <enter>
</code></pre>
\_<br />
Youll get a \texttt{mysql>} prompt. Enter the following command replacing newpwd with whatever password you want to use:

<pre><code>
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd'); <enter>
</code></pre>
\_<br />
You should see: \texttt{Query OK, 0 rows affected (0.14 sec)}

\begin{itemize}
\item Test the MySQL installation by entering: \_


\end{itemize}
<pre><code>
mysql user=root password=your\_password mysql
</code></pre>
\_<br />
You should see:

<pre><code>
Welcome to the MySQL monitor.  Commands end with ; or \textbackslash\{\}g.
Your MySQL connection id is 5 to server version: 4.0.20a-debug

Type 'help;' or '\textbackslash\{\}h' for help. Type '\textbackslash\{\}c' to clear the buffer.

mysql>
</code></pre>
\_<br />
Type \texttt{exit <enter>} to close the MySQL shell.

\section{Install Aspell 0.05-3 with the English dictionary.}
\begin{itemize}
\item Double-click \texttt{Aspell-0-50-3-3-Setup.exe} to start the Aspell installation wizard.


\item Click the \texttt{Next >} button twice.


\item Change the Destination Directory to \texttt{C:\textbackslash\{\}aspell} and click the \texttt{Next >} button.


\item Accept the defaults for the remainder of the installation wizard. The last screen will ask if you want to view manual.html. Leave it checked if you do, otherwise uncheck it and click the Finish button.


\item Double-click \texttt{Aspell-en-0.50-2-3.exe} to start the Aspell dictionary installation wizard.


\item The installer should find your base Aspell installation directory and simply add the dictionary so you should be able to accept the defaults for the entire installation wizard.


\item You can type \texttt{\textbackslash\{\}aspell\textbackslash\{\}bin\textbackslash\{\}aspell config <enter>} at a Command Prompt to see your current configuration.


\end{itemize}
\section{Install WinCVS}
\begin{itemize}
\item Extract the contents of \texttt{!WinCvs13b17-2.zip} to a temporary folder.


\item Execute \texttt{setup.exe} to start the installation wizard.


\item Click the \texttt{Next >} button


\item Click I accept the agreement radio button then the \texttt{Next >} button twice.


\item If desired change the destination directory and click the \texttt{Next >} button. Im keeping things consistent so I changed the destination directory to \texttt{C:\textbackslash\{\}WinCVS}.


\item If desired, change the installation type and click the \texttt{Next >} button. As I said earlier, Im only interested in the command line version so I changed the installation to custom and unchecked everything except Core executable files and Command line client files.


\item Check Dont create a Start Menu folder then click the \texttt{Next >} button


\item Uncheck Create a desktop item and Create a shell context menu and click the \texttt{Next >} button.


\item Click the Install button then the Finish button.


\end{itemize}
\section{Checkout Horde and Horde Framework Modules from CVS.}
The first item to consider is where to put your Horde installation. Like I said I have a relatively small installation, however I support two domains. Im writing this document while installing Horde on my development server which is much different than my production server. So Im going to choose C:\textbackslash\{\}Inetpub\textbackslash\{\}horde as my installation point. This seen the easiest place to put Horde, plus if you set the doc\_root directive in your php.ini to \texttt{C:\textbackslash\{\}Inetpub}, it keeps things simple. In any case, I think its important to give some thought to where you want Horde to live. Nowhere we go

\begin{itemize}
\item Open a Command Prompt


\item CD to \texttt{C:\textbackslash\{\}Inetpub}


\item Execute the following: \_


\end{itemize}
<pre><code>
SET CVSROOT=:pserver:cvsread@anoncvs.horde.org:/repository <enter>
\textbackslash\{\}WinCVS\textbackslash\{\}CVSNT\textbackslash\{\}cvs login <enter>
</code></pre>
\_<br />
Youll be prompted with:

<pre><code>
Logging in to :pserver:cvsread@anoncvs.horde.org:2401:/repository
CVS password: 
</code></pre>
\begin{itemize}
\item Type the password and press Enter. Youre now logged into the CVS repository.


\item Type \texttt{\textbackslash\{\}WinCVS\textbackslash\{\}CVSNT\textbackslash\{\}cvs co -r HEAD horde <enter>}


\item Once the download completes, make your directory C:\textbackslash\{\}Inetpub\textbackslash\{\}horde and execute: \_


\end{itemize}
<pre><code>
\textbackslash\{\}WinCVS\textbackslash\{\}CVSNT\textbackslash\{\}cvs co -r HEAD framework <enter>
</code></pre>
\begin{itemize}
\item Now that you have the basic framework installed you can continue to check out other modules you want. Personally I use IMP, Ingo, Jonah, Klutz (for fun) Kronolith, Mnemo, Nag, Passwd, and Turba.


\item Once youve got all the modules you want execute \texttt{\textbackslash\{\}WinCVS\textbackslash\{\}CVSNT\textbackslash\{\}cvs logout <enter>}.


\item CD to \texttt{Inetpub\textbackslash\{\}horde\textbackslash\{\}config} directory


\item Execute \texttt{copy *.dist  *. <enter>}


\item If youve downloaded any other modules, CD into their respective config (e.g. \texttt{\textbackslash\{\}imp\textbackslash\{\}config}) folders and execute the copy command from step \#10.


\end{itemize}
\section{Install the Horde Framework.}
Before moving on we need to install the Horde Framework. Follow these steps to complete this process.

\begin{itemize}
\item Open a Command Prompt.


\item CD to \texttt{C:\textbackslash\{\}Inetpub\textbackslash\{\}horde\textbackslash\{\}framework}


\item Execute \texttt{\textbackslash\{\}php\textbackslash\{\}cli\textbackslash\{\}php q install-packages.php <enter>}<br />
Note that if you do not specify the path to the client php executable the system will generate a Bad Option error message. This is one because the system path specifies \texttt{C:\textbackslash\{\}php} and the \texttt{php.exe} that lives there is the CGI executable.


\end{itemize}
\section{Add the Horde Site to IIS6.}
\begin{itemize}
\item Click "Start -> Administrative Tools -> Internet Information Services (IIS) Manger".


\item Expand the local computer tree then right-click the Web Sites folder and select New then Web Site


\item The Web Site Creation Wizard will start. Simply click the \texttt{Next >} button to continue.


\item Enter a description in the Description: box and click the \texttt{Next >} button.


\item Set the appropriate IP Address and Port settings. The defaults should be fine. Click the \texttt{Next >} button.


\item Enter \texttt{C:\textbackslash\{\}Inetpub\textbackslash\{\}} for the path. Leave Allow anonymous access to this Web site checked and click the Next > button.


\item Check Execute (Such as ISAPI application or CGI) and click the \texttt{Next >} button.


\item Click the \texttt{Finish} button.


\item Stop the Default Web Site using the Stop item button on the IIS Manager Tool bar.


\item Start your new web site using the Start item button on the IIS Manager Tool bar.<br />
If you added PHP to the Web Sites folder you can move onto the next step. Otherwise youll need to repeat the from the Add PHP to IIS6 Web Sites section above steps on your new web site.


\end{itemize}
\section{Testing Horde}
Open your favorite browser and go to <a href="http://hostname/horde/test.php">http://hostname/horde/test.php</a>. If all is well youll see:

Notes:<br />
According the PHP web site MCAL is not supported on Windows. See the notes section of <a href="http://www.php.net/manual/en/ref.mcal.php">http://www.php.net/manual/en/ref.mcal.php</a>

I tried to install the PECL fileinfo extension using the pear install fileinfo-beta command. However, it errors out with: The DSP Fileinfo.dsp does not exist. To date I have not found a workaround.

\end{document}
