Windows 7 – Installation Internet Information Service IIS PHP MySQL Cacti RRDTool

System ist ein Windows 7 x64 auf dem der Webserver von Microsoft, der Internet Information Service, kurz IIS, mit PHP installiert werden soll. Nachfolgend eine Möglichkeit, bzw. wie es bei mir funktioniert hat:

1. Installation von PHP 5.5 von http://php.net . Achtung die Entwickler von Cacti empfehlen nicht PHP 5.6 zu verwenden, da es hier bekannte Probleme mit Cacti gibt. Für Windows mit IIS sind die None Thread Safe Binaries und Sourcen empfohlen: http://windows.php.net/download/

1.1 Konfiguration von PHP

Im PHP Verzeichnis liegen die Konfigurationsdateien “php.ini-development” und “php.ini-production”. Ich will nur testen, benenne also die “php.ini-development” in “php.ini” um.

Nun erfolgt eine einfache, erste Konfigurtion in dem zuerst die php.ini in z.B. Notepad++ geöffnet wird und folgendes aktiviert bzw. geändert wird:

  • cgi.fix_pathinfo=1
  • fastcgi.impersonate = 1
  • fastcgi.logging = 0
  • cgi.force_redirect = 0
  • extension_dir = “ext”
  • doc_root = c:\Inetpub\wwwroot
  • session.save_path = “c:\php\Session” (Verzeichnis muss von Hand erstellt werden)
  • error_log = C:\php\php_errors.txt oder error_log = syslog
  • date.timezone = Europe/Berlin
  • ; open_basedir = c:\inetpub\wwwroot\ <- deaktiviert oder Tools ins www Dir verlegen, ansonsten open_basedir restriction Fehler

Noch Extension aktivieren:

  • extension=php_gd2.dll
  • extension=php_mbstring.dll
  • extension=php_mysql.dll
  • extension=php_mysqli.dll
  • extension=php_sockets.dll

Noch Ressourcen ändern:

  • max_execution_time = 60
  • max_input_time = 120
  • memory_limit = 128M

Speichern und die php.ini zusätzlich in das c:\windows\ verzeichnis kopieren.

1.2 PHP Umgebungsvariable in Windows 7 setzen

Start -> rechte Maustaste auf Computer -> Eigenschaften

Windows 7 Computer Eigenschaften

Windows 7 Computer Eigenschaften

Nun unter Einstellungen für Computernamen, Domäne und Arbeitsgruppe, rechts auf Einstellungen ändern klicken

Windows7 Computer Eigenschaften

Windows7 Computer Eigenschaften

Im Reiter Erweitert unten auf den Button Umgebungsvariable klicken

Windows7 Umgebungsvariable

Windows7 Umgebungsvariable

Nun wird Unter Benutzervariable die Variable PHP mit dem Wert c:\php und unter Systemvariable die bestehende Path Variable um ;c:\php\; ergänzt

Windows7 Umgebgungsvariablen PHP

Windows7 Umgebgungsvariablen PHP

1. Installation Internet Information Service

Installation der WWW-Dienste und hier der .NET-Erweiterbarkeit und CGI Anwendungsentwicklungsfeatures

Windows7 IIS installieren

Windows7 IIS installieren

Nachdem die Installation beendet wurde, es ist keine Bestätigung zu sehen, kann geprüft werden ob der Aufruf der Willkommens Seite des IIS funktioniert. Hierfür einfach im Browser “localhost” eingeben, wenn es funktioniert ist folgendes zu sehen:

Windows7 IIS Welcome Page

Windows7 IIS Welcome Page

Der Dokumentenpfad ist unter “C:\inetpub\wwwroot”

2.1 Internet Information Service – Standard Document index.php setzen

Host auswählen und im Abschnitt IIS auf Standarddokument doppel klicken.

Windows7 IIS Default Document index.php

Windows7 IIS Default Document index.php

Nun auf der rechten Seite unter Aktion Hinzufügen klicken und index.php als Standarddokument hinzufügen.

Windows7 IIS Default Doc index.php

Windows7 IIS Default Doc index.php

2.1 Internet Information Service IIS konfigurieren

Start-> inetmgr eingeben und ausführen, falls er fehlt liegt es an den nicht installierten Verwaltungstools für den IIS <- siehe Punkt1

Nun wird ein neues Modul in der Handlerzuordnung hinzugefügt. Hierfür links unter Verbindungen auf die auf den Hostnamen klicken, Ansicht unten sollte Features sein, dann Doppelklick auf Handlerzuordnung und rechts auf Modulzuordnung hinzufügen.

Windows7 IIS Handlerzuordnung

Windows7 IIS Handlerzuordnung

Hier wird nun der Anforderungspfad *.php, das Modul FastCgiModul, die Ausführbare Datei c:\php\php-cgi.exe und ein Name wie PHP FastCGI eingetragen. Danach noch unter Einschränkungen den Handler nur bei folgender Zuordnung aufrufen: Datei und Ordner

Windows7 IIS PHP FastCGI Handler Modul Zugriff

Windows7 IIS PHP FastCGI Handler Modul Zugriff

noch bestätigen

Windows7 IIS Modul akzeptieren

Windows7 IIS Modul akzeptieren

So sollte es dann fertig ausehen und PHP FastCGI ist für alle Webseiten aktiviert:

Windows7 IIS Modul PHP

Windows7 IIS Modul PHP

Nun noch den IIS neustarten. Entweder per Befehl iisreset oder über den Manager nach Auswahl des Hosts und rechts unter Aktion -> Neu starten

Windows7 IIS Restart

Windows7 IIS Restart

3. Testen von PHP im IIS 

Hierfür in das Verzeichnis “c:\inetpub\wwwroot” eine Datei wie “phpinfo.php” erstellen und folgendes eintragen: <?php phpinfo(); ?> <- speichern und im Browser aufrufen “localhost/phpinfo.php”

Windows7 IIS PHP PHPinfo Test

Windows7 IIS PHP PHPinfo Test

4. Datenbank Oracle MySQL 5.6 installieren

Dies geht relativ schnell und einfach. Die Community Edition kann unter http://www.mysql.com/downloads/ herunter geladen werden. Der 32bit Installer der auch den x64 für Windows installiert ist hier zu finden: http://dev.mysql.com/downloads/windows/installer/ . Aktuell in Version 5.6.23.0 mit ca. 280Mb, eine Registrierung ist nicht notwendig, Link ist unten auf der Seite zu finden. Doppelklick auf die .msi startet die Installation. Nachfolgende Schritte im Schnelldurchlauf als Gallerie:

4.1 MySQL Datenbank cacti erstellen

Hierfür starte ich den mit installierte MySQL Command Line Client, der das zuvor festgelegte Passwort für root benötigt:

Windows7 Oracle MySQL Command Line Client

Windows7 Oracle MySQL Command Line Client

Anlegen der Datenbank mittels: mysql >create database cacti; -> Query Ok, 1 row affected  (0.00 sec)

5. RRDTool unter Windows7 installieren

Cacti empfiehlt eine Version größer 1.2.15, da diese Cygwin nicht mehr benötigen. Download unter: http://oss.oetiker.ch/rrdtool/download.en.html Ich habe die Version 1.5.0-RC2 heruntergeladen und den Inhalt in c:\RRDTool entpackt.

Ich hatte jedoch Probleme, Kompilieren wollte ich nicht auch noch und so habe ich folgendes gemacht:

Download rrdtool-1.2.15-cygwin-1.5.20.zip -> Inhalt nach c:\rrdtool\
Download rrdtool-1.2.30-win32-perl510.zzip -> Inhalt nach c:\rrdtool\

Ich habe zusätzlich den IIS_IUSRS, also den für den IIS auf den c:\rrdtool Ordner mit Schreibrechten, berechtigt.

6. Net-SNMP unter Windows7 für Cacti installieren

Der Windowsdienst SNMP soll funktionieren – brauche ich jedoch vorerst nicht.

7. Cacti im IIS unter Windows7 installieren

Als nächstes lade ich die aktuelleste Version von Cacti 0.8.8c vom 23.11.2014 von http://www.cacti.net/downloads/cacti-0.8.8c.zip herunter und extrahiere es nach “C:\inetpub\wwwroot\cacti\”

Nun die Tabellenstruktur in die Datenbank importieren, der MySQL Command Line Client wird gestartet:

mysql>use database cacti;
mysql>source c:/inetpub/wwwroot/cacti/cacti.sql

Nun noch einen User “cactiuser” für die Datenbank cacti mit dem Passwort cactiuser anlegen und ihm alle Rechte auf dieser geben. Achtung cactiuser ist Default und sollte auf jeden Fall geändert werden.

mysql>GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘cactiuser’;
mysql>Flush Privileges;

Kontrolle ob der Benutzer angelegt wurde:

mysql>Select user From mysql.user;
+———–+
| user |
+———–+
| cactiuser |
| root |
+———–+
2 rows in set (0.00 sec)

Kontrolle ob die Berechtigungen gesetz wurden:

mysql> show grants for cactiuser@localhost;
+——————————————————————————————————————+
| Grants for cactiuser@localhost
+——————————————————————————————————————+
| GRANT USAGE ON *.* TO ‘cactiuser’@’localhost’ IDENTIFIED BY PASSWORD ‘xxxxx’ |
| GRANT ALL PRIVILEGES ON `cacti`.* TO ‘cactiuser’@’localhost’
+——————————————————————————————————————+
2 rows in set (0.00 sec)

Der Benutzer ist ebenso in der Konfiguration von Cacti hinterlegt und muss entsprechend angepasst werden, wenn ihr einen anderen als den Default cactiuser, verwendet. “C:\inetpub\wwwroot\cacti\include\config.php” Hier auch die Default URL eintragen:

$url_path = “/cacti/”;

7.1 Cacti Installer unter Windows7 und IIS ausführen: im Browser: http://localhost/cacti/install/index.php

Hierfür die Schritte wie angezeigt durchlaufen. Es werden die erkannten Tools, RRDTool.exe,PHP.exe und der Cacti Log Pfad erkannt. Version hatte ich 1.2x gelassen.

8. Windows7 Aufgabenplanung für Cacti Poller

Windows -> Start -> Aufgabenplanung -> Aktionen -> Aufgabe erstellen

Windows7 Aufgabenplanung

Windows7 Aufgabenplanung

Windows7 Aufgabenplanung erstellen

Windows7 Aufgabenplanung erstellen

Nun wird ein Task für den Start des Cacti Poller angelegt. Name und Benutzer entsprechend den eigenen Anforderungen und mit höchsten Privilegien ausführen eintragen.

Windows7 Aufgabenplanung Cacti Rechte

Windows7 Aufgabenplanung Cacti Rechte

Reiter Trigger – hier den Zeitplan für die Ausführung des Poller ausfüllen. Ich habe täglich, jede Minute für die Dauer von einer Minute eingetragen.

Windows7 Aufgabenplan Cacti Trigger

Windows7 Aufgabenplan Cacti Trigger

Reiter Aktionen – hier wird der Programm start ausgewhält um dann im Anschluss als Skript “c:\php\php.exe” mit dem Pfad zum Cacti Poller als Argument “c:\inetpub\wwwroot\cacti\poller.php” und als Start “den Pfad zum Cacti Verzeichnis”c:\inetpub\wwwroot\cacti\”

Windows7 Aufgabenplan Cacti Poller PHP

Windows7 Aufgabenplan Cacti Poller PHP

Das wars. Alle Schritte waren erfolgreich, dauerten etwas, aber nun läuft auf meiner Windows 7 x64 Maschine der Internet Information Service mit PHP, MySQL, Cacti und dem RRDTool. Fragen Anregungen gerne an mich. Demnächst folgen dann Anleitungen zur Abfrage von Performancedaten und der Erstellung von Graphen 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.