Chapter 3. Installing Under Windows

Install PHP

  1. Extract the PHP zip file to c:\ and rename the install directory (ie. 'php5.0.1') to 'php'.

  2. If using PHP 4, move the files in c:\php\dlls to c:\php.

  3. Add the following to your Windows PATH environement variable c:\php. The Windows path can be accessed via the Control Panel at: 'System', 'Advanced', 'Environment'.

  4. Add the following three environment variables to your system using the procedure above: MIBS=ALL, MIBSDIR=c:\php\mibs, and PHPRC=c:\php.

  5. If using PHP 4.3.5 or less (not recommended), create the following directory c:\tmp.

  6. Rename the file c:\php\php.ini.dist to php.ini, and make the following changes to it:

    If using PHP 4 add the following lines.

    extension_dir = c:\php\extensions
    extension=php_snmp.dll
    extension=php_sockets.dll
    

    If using PHP 5 add the following lines.

    extension_dir = c:\php\ext
    extension=php_mysql.dll
    extension=php_snmp.dll
    extension=php_sockets.dll
    

    If using PHP 4.3.5 or less include the following line. If using 4.3.6 or greater, you should remove this line if present.

    session.save_path=c:\tmp
    
  7. If you have had previous versions of PHP installed, you had likely moved the PHP system files to in the Windows directory structure. If so, you will have to remove those files. Please review your PHP installation documentation for instructions on removing those files.

Configure the Webserver (Apache)

  1. Make sure you have stopped any IIS web servers before you proceed with Apache installation.

  2. Install the Apache web server. This is as simple as double clicking the .msi file and following the prompts. Make sure to install it as a service and for the sake of the HOWTO, install it to c:\apache or c:\apache2.

  3. If you are using Apache 1.3.x, installation of PHP 5 is not recommended. If using PHP 4, add the following lines to your httpd.conf file in the c:\apache\conf directory:

    LoadModule php4_module c:\php\sapi\php4apache.dll
    AddModule mod_php4.c
    AddType application/x-httpd-php .php
    DirectoryIndex index.html index.htm index.php
    
  4. If you are using Apache 2.x, add the following lines to your httpd.conf file in the c:\apache2\conf directory:

    If using PHP 4, then add the following lines.

    LoadModule php4_module c:\php\sapi\php4apache2.dll
    AddType application/x-httpd-php .php
    DirectoryIndex index.html index.htm index.php
    

    If using PHP 5, then add the following lines.

    LoadModule php5_module c:\php\php5apache2.dll
    AddType application/x-httpd-php .php
    DirectoryIndex index.html index.htm index.php
    

Configure the Webserver (IIS)

  1. Start the Microsoft Management Console, right click on Default Web Site (in most cases) and select Properties.

  2. Under the Home Directory tab, select Configuration and click Add. Browse to the path of php4isapi.dll or php5isapi.dll, and type in .php as the extension.

  3. Under the ISAPI Filters tab, click Add and browse to the php4isapi.dll or php5isapi.dll file. Name the filter "php" and click OK.

  4. Under the Documents tab, add index.php to the list.

  5. Completely stop and start the IIS service using the following commands:

    net stop iisadmin
    net start w3svc
    
  6. Give the IUSR_XXXX user read and execute permissions to the file c:\winnt\system32\cmd.exe.

Install RRDTool

  1. Extract the RRDTool zip file to c:\rrdtool and copy c:\rrdtool\src\tool_release\rrdtool.exe to c:\rrdtool.

Install MySQL

  1. Extract the MySQL zip file to a temp directory and run setup.exe.

  2. Install MySQL to the c:\mysql directory.

  3. Start MySQL by running c:\mysql\bin\winmysqladmin.exe.

  4. Set a password for the root user

    shell> cd mysql\bin
    shell> mysqladmin --user=root password somepassword
    shell> mysqladmin --user=root --password reload
    
  5. Create the MySQL database:

    shell> mysqladmin --user=root --password create cacti
    
  6. Import the default Cacti database:

    shell> mysql --user=root --password cacti < c:\apache2\htdocs\cacti\cacti.sql
    
  7. Optional: Create a MySQL username and password for Cacti.

    shell> mysql --user=root --password mysql
    mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'somepassword';
    mysql> flush privileges;
    

Install Net-SNMP

  1. If you plan to use any hosts with SNMP v2c support, you must download and install the Net-SNMP libraries. Net-SNMP provides installers to install their product. However, caution must be taken not to use long file names as Cacti does not support them in this version. We suggest you install Net-SNMP in a directory such as c:\net-snmp.

Install Cactid

  1. Extract the Cactid zip file to c:\cactid and modify the cactid.conf file to include the following statements.

    DB_Host        IP_Address or Hostname (not localhost)
    DB_Database    cacti
    DB_User        cactiuser
    DB_Password    cacti
    

    All other pre 0.8.6 settings are obsolete. Cactid may not complain if you leave them in, but they are not longer required. Cactid now comes with a binary distribution. Therefore, a full installation of Cygwin is not longer required.

  2. If you either have Cygwin installed, or plan on installing it, remove the 3 DLL files and the SH.EXE file from the c:\cactid directory.

Install Cacti

  1. Extract the Cacti distribution archive. These instructions will assume that the archive has been extracted to C:\Apache\htdocs\cacti, although you can use a different path if you wish. Make sure you extract with "Use folder names" enabled, so that the necessary sub-folders will be used.

  2. Edit include/config.php and specify the MySQL user, password and database for your Cacti configuration.

    $database_default = "cacti";
    $database_hostname = "localhost";
    $database_username = "cactiuser";
    $database_password = "cacti";
    
  3. You are going to need to schedule a task so poller.php can run every 5 minutes. Make sure the Task Scheduler service is started and follow the steps below to begin.

    Note: The following instructions are based on Windows XP and Windows Server 2003. You should be able to follow these instructions close enough for Windows 2000 as well.

    1. Select Start --> Settings --> Control Panel and double click on Scheduled Tasks.

    2. Double click on Add Scheduled Task.

    3. Click Next and Browse on the following screen. Find c:\php and select php.exe. If using PHP 5, use php-win.exe instead. Choose Daily on and click Next.

    4. Click Next again without changing the time or date settings.

    5. When entering a username and password make sure the user has read and write access to the following directories:

      c:\apache2\htdocs\cacti\rra
      c:\apache2\htdocs\cacti\log
      

      Make sure the user has read, write, and execute access to the following directories:

      c:\php
      c:\php\sapi
      
    6. Click Next and Finish to close the wizard.

    7. Right click on the task you just created, and select Properties.

    8. Select the Schedule tab.

    9. Make sure Daily is selected and click the Advanced button.

    10. Check the Repeat checkbox, set it for 5 minutes and set the duration for 24 hours.

    11. Click Ok

    12. In the Run textbox enter the following text making sure to use the appropriate paths.

      c:\php\php.exe c:\mycacti\website\cacti\poller.php
      

      The start in box should say c:\mycacti\website\cacti.

  4. Point your web browser to:

    http://your-server/cacti/

    Log in the with a username of admin and password of admin. You will be required to change this password immediately.

    Once logged in, you must go to Settings->Paths and verify/update your paths to point to the correct locations. Recommended examples are posted below.

    PHP Binary Path:

    If using PHP 4, you should change this to:

    c:\php\php.exe
    

    If using PHP 5, you should change this to:

    c:\php\php-win.exe
    

    RRDTool Binary Path:

    c:\rrdtool\rrdtool.exe
    

    SNMPGET, SNMPWALK Paths:

    c:\net-snmp\bin\snmpget.exe
    c:\net-snmp\bin\snmpget.exe
    

    Cacti Logfile Path:

    c:\mycacti\website\cacti\log\cacti.log
    

    Cactid Path:

    c:\cactid\cactid.exe