Installations
Configure PHP
If using PHP 4, move the files in c:\php\dlls to c:\php.
Add the following to your Windows PATH environment variable c:\php. The Windows path can be accessed via the Control Panel at: System | Advanced | Environment Variables | System Variables..
Add the following two new environment variables to your
system using
the procedure above: PHPRC=c:\php.
If using PHP 4.3.5 or less (not recommended), create the following directory c:\tmp.
Rename the file c:\php\php.ini.dist to php.ini, and make the following changes to it:
If using PHP 4 uncomment the following lines:
extension_dir = c:\php\extensions
extension=php_snmp.dll
extension=php_sockets.dll
cgi.force_redirect = 0
If using PHP 5 uncomment the following lines:
extension_dir = c:\php\ext
extension=php_mysql.dll
extension=php_snmp.dll
extension=php_sockets.dll
cgi.force_redirect = 0
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
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.
file_uploads = On
Configure the Webserver (Apache)
Make sure you have stopped any IIS web servers before you proceed with Apache installation.
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
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)
Start the Internet Information Services (IIS) Manager, right click on Default Web Site (in most cases) and select Properties.
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.
IIS6:
Enable All Verbs and Script Engine.
Under the ISAPI Filters tab, click Add and browse to the php4isapi.dll or php5isapi.dll file. Name the filter "php" and click OK.
Under the Documents tab, add index.php to the top of the list.
Completely stop and start the IIS service using the following commands:
net stop iisadmin
net start w3svc
Install Cygwin (optional)
Base (whole thing)
Libs
libart_lgpl
libfreetype26
libpng12
zlib
Utils
patch
Web
wget
Install RRDTool
Configure MySQL
Start MySQL by running c:\mysql\bin\winmysqladmin.exe.
Set a password for the root user
shell> cd mysql\bin
shell> mysqladmin --user=root password somepassword
shell> mysqladmin --user=root --password reload
Create the MySQL database:
shell> mysqladmin --user=root --password create cacti
Import the default Cacti database:
shell> mysql --user=root --password cacti < c:\apache2\htdocs\cacti\cacti.sql
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;
--old-passwords
shell> UPDATE mysql.user SET Password = OLD_PASSWORD('cactipw') WHERE Host = 'localhost' AND User = 'cactiuser';
mysql> FLUSH PRIVILEGES;
--sql-mode=MYSQL40
Install Net-SNMP
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.
Modify the cactid.conf file in c:\cactid to include the following statements.
DB_Host IP_Address or Hostname (not localhost)
DB_Database cacti
DB_User cactiuser
DB_Password cactipw
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 basic installation of Cygwin is not longer required, but suggested to help maintain dll version conflicts.
If you have Cygwin installed, remove the DLL files and the SH.EXE file from the c:\cactid directory.
Edit <web root>/cacti/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 = "cactipw";
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. If you plan on using Cactid, then it is very important that your all your paths and scripts use forward slashes.
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.exe
RRDTool Binary Path:
c:/rrdtool/rrdtool.exe
RRDTool Default Font Path:
c:/windows/fonts/arial.ttf
RRDTool Version:
Select the appropriate version
SNMPGET, SNMPWALK Paths:
c:/net-snmp/bin/snmpget.exe
c:/net-snmp/bin/snmpwalk.exe
Cacti Logfile Path:
c:/mycacti/website/cacti/log/cacti.log
Cactid Path:
c:/cactid/cactid.exe
Description: localhost
Hostname: localhost
Host Template: Windows 2000/XP
php c:\<web root>\cacti\poller.php
C:\>php c:\inetpub\wwwroot\cacti\poller.phpAfter this has ran once, you should have cacti.log in /cacti/log/ and rrd files in /cacti/rra/.
OK u:0.00 s:0.06 r:1.32
OK u:0.00 s:0.06 r:1.32
OK u:0.00 s:0.16 r:2.59
OK u:0.00 s:0.17 r:2.62
10/28/2005 04:57:12 PM - SYSTEM STATS: Time:4.7272 Method:cmd.php Processes:1 Threads:N/A Hosts:1 HostsPerProcess:2 DataSources:4 RRDsProcessed:2
You are going to need to schedule a task while logged on as an Administrator account, so poller.php can run every 5 minutes. Make sure the Task Scheduler service is started and follow the steps below to begin.
Select Start --> Settings --> Control Panel and double click on Scheduled Tasks.
Double click on Add Scheduled Task.
Click Next and Browse on the following screen. Find c:\php and select php.exe. If using PHP 5 with Cacti 0.8.6f or earlier, use php-win.exe instead. Choose Daily on and click Next.
Click Next again without changing the time or date settings.
When entering a username and password make sure the user has modify access to the following directories:
c:\<web root>\cacti\rra\
c:\<web root>\cacti\log\
Make sure the user has read, and execute access to the following directories:
c:\php\
c:\<web root>\cacti\
Click Next and Finish to close the wizard.
Right click on the task you just created, and select Properties.
Select the Schedule tab.
Make sure Daily is selected and click the Advanced button.
Check the Repeat checkbox, set the repetition for every 5 minutes, set the duration for 24 hours, and check the If the task is still running, stop it at this time checkbox.
Click Ok
In the Run textbox enter the following text making sure to use the appropriate paths.
c:\php\php.exe c:\<web root>\cacti\poller.php
The start in box should say c:\<web root>\cacti.
#The memory allocated to store results from old queries.
query_cache_size=16M
#Don't cache results that are bigger than this.
query_cache_limit=1M
#Query cache type to use.
query_cache_type=1