
Doch! Nur hat Microsoft eine verbesserte Firewall im Service Pack 2 (SP2) mitgeliefert, die automatisch startet. Diese blockiert dann die wichtigen Ports 80 (http) und 443 (https) und der Apache Server will nicht (mehr) starten.
Die schnelle Lösung:
Die Microsoft Firewall über die Taskleiste deaktivieren und den XAMPP erneut versuchen zu starten. Besser ist es allerdings, entsprechende Ausnahmen im Sicherheitscenter zu definieren.
Folgende Ports werden benötigt für eine grundlegende Funktionalität:
- Apache (HTTP):
- Port 80
- Apache (WebDAV):
- Port 81
- Apache (HTTPS):
- Port 443
- MySQL:
- Port 3306
- FileZilla (FTP):
- Port 21
- FileZilla (Admin):
- Port 14147
- Mercury (SMTP):
- Port 25
- Mercury (POP3):
- Port 110
- Mercury (IMAP):
- Port 143
- Mercury (HTTP):
- Port 2224
- Mercury (Finger):
- Port 79
- Mercury (PH):
- Port 105
- Mercury (PopPass):
- Port 106
- Tomcat (AJP/1.3):
- Port 8009
- Tomcat (HTTP):
- Port 8080
Unter Micrsosoft Windows Vista hauptsächlich zwei neuartige Probleme auf:
1) Benutzerkontenschutz (UAC = User Account Control)
-
Fehlende Schreibrechte:
Unter "C:\Programme" haben Sie als Administrator keine oder nur eingeschränkte Schreibrechte (beispielsweise für ".\xampp\htdocs"). Änderungen in Ihrem Editor schlagen somit nicht durch.
Lösung:Erweitern Sie die Schreibrechte für das Verzeichnis über den Explorer (Rechtsklick/Sicherheit) oder schalten Sie den Benutzerkontenschutz (UAC) ab.
-
Dienste und Programme lassen sich nicht über das Control Panel starten oder stoppen:
Sie haben unter "C:\xampp" den Apache/MySQL als Dienst installiert. Trotzdem können Sie über das "XAMPP Control Panel" weder Apache/MySQL starten/stoppen noch die Dienste hierüber entfernen.
Lösung: Benutzen Sie die Dienste-Verwaltung von Windows unter Systemsteuerung | Verwaltung | Dienste oder schalten Sie den Benutzerkontenschutz (UAC) ab.
Benutzerkontensteuerung (UAC) deaktivieren
Um die Benutzerkontensteuerung zu deaktivieren, benutzen Sie das Windowsprogramm "msconfig" (Start -> Ausführen -> msconfig). Alternativ geben Sie in der Eingabeaufforderung "msconfig" ein. Im Programm "msconfig" wählen Sie die Tools-Oberfläche. Dort markieren Sie "Benutzerkontenschutz deaktivieren" und bestätigen Ihre Auswahl mit dem "Start"-Button. Ein Neustart ist jetzt nötig damit Ihre Auswahl wirksam wird. Über "Benutzerkontenschutz aktivieren" können Sie übrigens den Benutzerkontenschutz mit der selben Vorgehensweise wieder aktivieren.
2) Das fiktive "Programme"-Verzeichnis
Eine weitere Änderung in Vista ist das fehlende "Programme"-Verzeichnis. Zwar zeigt der Explorer ("Arbeitsplatz") dem Benutzer einen "C:\Programme"-Ordner an. Jedoch handelt es sich hier nun tatsächlich um das Verzeichnis "C:\program files". Das kann damit zu Problemen bei der Konfiguration von Anwendungen führen, wenn man in den Konfigurationsdateien die Pfade so angibt wie man sie im Explorer sieht, anstatt das tatsächliche welches das Programm benutzt.
Der Dokumenten-Ordner (DocumentRoot) ist "\xampp\htdocs". Dort ist die Index-Seite (index.php) die eigentliche Startseite, die beim Aufruf von "http://localhost/" angezeigt wird. Wahlweise kann diese auch gelöscht und eine eigene "index.php" oder "index.html" erstellt werden.
Auch wenn man in diesem DocumentRoot die Index-Seite austauscht, kommt man immer noch mit http://localhost/xampp/ zu den XAMPP Beispielen.
Dafür gibt es die XAMPP AddOns für win32. Diese Zusatzpakete funktionieren mit dem XAMPP Hauptpaket, aber i.d.R. nicht mir dem XAMPP Lite! Folgende AddOns gibt es zur Zeit:
- Perl mit mod_perl (seit XAMPP 1.7.2 mit im Basispaket)
- Tomcat mit mod_jk2 und Java JRE.
Alle aktuellen AddOns für win32 findet ihr auf der XAMPP für Windows Seite. Daneben gibt es noch weitere AddOns für XAMPP unter der URI:
http://sourceforge.net/projects/xamppaddon/
Um Dateien auf "Gleichheit" zu überprüfen, bedient man sich oft sogenannter Prüfsummen. Als Quasistandard zur Berechnung einer Prüfsumme hat sich MD5 (Message Digest Algorithm 5) durchgesetzt.
Mit Hilfe dieser MD5-Prüfsumme könnt Ihr jetzt überprüfen, ob der Download eines XAMPP Paketes in Ordnung ist (bzw. die Echtheit eines Programms). Dazu notwendig ist natürlich ein Programm um diese MD5-Prüfsumme zu erzeugen. Für Windows könnt Ihr z.B. direkt eines bei Microsoft herunterladen:
Verfügbarkeit und Beschreibung des Programms "File Checksum Integrity Verifier"
Es geht natürlich auch jedes andere Programm zur Erzeugung einer MD5-Prüfsumme, wie das GNU md5sum.
Nachdem ihr ein solches Programm (z.B. fciv.exe) installiert habt, geht Ihr folgendermaßen vor:
- XAMPP herunterladen (z.B. "xampp-win32-1.7.2.exe")
-
Berechnen der Prüfsumme mit:
fciv.exe xampp-win32-1.7.2.exe
-
Das Programm gibt dann z.B. dieses aus:
14c2e3e35f9792b9aec674548472348b xampp-win32-1.7.2.exe
- Diese Prüfsumme dann mit der vergleichen, die Ihr auf der XAMPP für Windows Webseite findet.
Stimmen jetzt beide Prüfsummen überein, ist alles in Ordung. Wenn nicht, war der Download nicht in Ordnung oder die Datei wurde verfälscht.
Die "php.ini" liegt seit dem XAMPP 1.7.1 nur in dem Verzeichnis "\xampp\php". Bis XAMPP 1.7.0 war sie im Verzeichnis "\xampp\apache\bin".
Sollte eine Änderung in der "richtigen" nicht übernommen werden, benutzt PHP vielleicht doch eine andere. Überprüfen kann man das mit phpinfo(). Einfach diese Seite http://localhost/xampp/phpinfo.php aufrufen und nach "Loaded Configuration File" suchen. Dieser Wert zeigt dir an, welche "php.ini" tatsächlich benutzt.
Info:
Nach einer Änderung in der "php.ini" den Apachen neu starten, damit die Änderung auch übernommen wird.
Leider gibt es immer wieder Virusscanner, die eine Datei fälschlicherweise als Virus oder unerwünschtes Programm erkennen. Wenn ein erkanntes Programm durch den Scanner blockiert oder gelöscht wird, kann man i.d.R. die XAMPP Server nicht mehr korrekt beenden. Oder er lässt sich erst gar nicht installieren, wenn schon das heruntergeladene Archiv blockiert wird.
Früher wurde da gerne das Programm "kill.exe" oder "pv.exe" erkannt. Mittlerweile ist es manchmal noch das Programm "xampp-control.exe".
Vor dem Upload eines XAMPP Paketes, wird es von uns auf jedenfall mit einem Virusscanner überprüft. Derzeit wird dazu der Kaspersky Online-Scanner benutzt.
Diese Fehlermeldung tritt nur unter Homesystemen wie Windows 95/98/ME. Windows reserviert dort für die "command.com" höchstens 160 KB Umgebungsspeicher. Unsere Server brauchen bisweilen aber mehr.
Lösung:
In der Datei "c:\config.sys" die folgenden Zeile hinzufügen:
shell=c:\windows\command.com c:\windows /e:2048 /p
Danach Neustart des gesamten Systems und XAMPP nochmals probieren. Der Speicher kann nun 2048 KB groß werden. Das sollte wirklich reichen!
Das kann mehrere Gründe haben:
-
Du hast parallel noch einen anderen Webserver gestartet (IIS, Sambar, ZEUS usw.). Es kann aber nur immer ein Webserver den Port 80 belegen. Folgende Fehlermeldung des Apache sind ein Indiz dafür:
"(OS 10048)... make_sock: could not bind to adress 0.0.0.0:80
no listening sockets available, shutting down"
-
Du hast weitere Software, wie z.B. das Internettelefon "Skype", dass auch den Port 80 belegt. Im Falle von Skype kann man aber ändern:
Dazu geht man in Skype auf Aktionen --> Optionen... --> Verbindung --> Häkchen bei "Port 80 als Alternative für eingehende Verbindungen verwenden." entfernen und Skype neu starten, dann sollte es auch funktionieren.
-
Bei Dir läuft eine Firewall, die den Apache blockt. Leider ist nicht jede Firewall kompatibel mit dem Apache, so dass selbst eine Deaktivierung nicht langt, und diese sogar deinstalliert werden muss. Folgende Fehlermeldungen des Apache sind ein Indiz für eine Firewall:
"(OS 10038)Socket operation on non-socket: make_sock: for address 0.0.0.0:80,
apr_socket_opt_set: (SO_KEEPALIVE)
Wenn der Apache startet, der Browser aber keine Verbindung bekommt, spricht das auch für eine Firewall.
-
Das selbe wie für Firwalls, ist auch für manche Virusscanner gültig.
-
Du hast XP Professional ohne Service Pack 1. Die Installation von mindestens SP1 ist in diesem Fall dringend empfohlen.
-
Du hast Windows 95 mit einer veralteten Winsock bzw. die Winsock auf deinem System ist defekt. In diesem Fall bei Microsoft das
Winsock2 Update herunterladen und installieren. Der Apache benötigt mindestens Winsock 2.
-
Deine Winsocks 2 wurde durch weitere Internetprogramme (Würmer, Viren) so verändert, dass der Apache nicht startet. in diesem Fall kannst Du z.B. mit der Software
WinSock XP Fix eine Reparatur versuchen.
Tip:
Bei Problemen mit belegten Ports, kann Dir vielleicht das im Paket enthaltene "xampp-portcheck.exe" weiterhelfen.
... oder der Browser kann sich mit dem Server verbinden, bricht dann aber nach einiger Zeit mit einer Zeitüberschreitung ab. In diesem Fall in der Datei "\xampp\apache\conf\extra\httpd-mpm.conf" bei der Zeile "#Win32DisableAcceptEx" das "#" wegmachen. Oder wenn diese nicht vorhanden ist, am Schluss hinzufügen. Also:
Win32DisableAcceptEx
Hin und wieder kann es auch vorkommen, dass Bilder oder Stylesheets nicht korrekt angezeigt werden. Inspesondere wenn die Dateien auf einem Netzwerklaufwerk liegen. In diesem Fall eine oder beide der folgenden Zeilen in der Datei "\xampp\apache\conf\httpd.conf" aktivieren (oder hinzufügen):
EnableSendfile off
EnableMMAP off
Es wurde auch schon berichtet, dass zum Beispiel ein Programm zum Bandbreitregulieren, wie der "NetLimiter", dafür verantwortlich ist.
Jeder Server lässt sich unter Windows 2000, Windows XP, Vista auch als Windows Dienst einrichten. Dazu einfach im jeweiligen Verzeichnis die Batchdatei ausführen. Zum Beispiel bei MySQL:
\xampp\mysql\mysql_installservice.bat
Zum Installieren kann man auch im Control Panel einen Hacken bei der Box "Svc" machen.
Zum Deinstallieren gibt es dann auch wieder eine entsprechende Batchdatei. z.B. MySQL:
\xampp\mysql\mysql_uninstallservice.bat
Der einfachste Weg ist die mitgelieferte Security-Konsole, die man unter http://localhost/security/ erreichen kann.
Diese "Konsole" richtet das Passwort für den MySQL "root" User ein und passt auch die phpMyAdmin-Konfiguration entsprechend an.
Über die "XAMPP Shell" (Eingabeaufforderung) kann man das Passwort auch ändern. Dazu öffnet man die Shell und gibt folgendes Kommando ein:
mysqladmin.exe -u root password geheim
Anstatt "geheim" natürlich ein eigenes Passwort nehmen. Dann muss man noch phpMyAdmin für das neue Passwort konfigurieren. In der Datei "\xampp\phpMyAdmin\config.inc.php" die Zeilen:
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
ändern in:
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'geheim';
Anstatt in der XAMPP Shell, könnte man hier auch das Passwort mit phpMyAdmin selbst ändern, und dann die Konfiguration für phpMyAdmin anpassen.
Warum nicht! Einfach den MySQL-Server im XAMPP nicht starten, statt dessen Deinen eigenen MySQL hochfahren. Zwei Server dürfen nicht laufen! Falls ihr ein anderes Kennwort für den MySQL-User "root" vergeben habt, unbedingt die Datei "\xampp\phpMyAdmin\config.inc.php" editieren, um phpMyAdmin das neue Passwort des Users "root" bekannt zu machen.
In der Grundeinstellung des XAMPP für Windows ist phpMyAdmin offen zugänglich. Diese Sicherheitslücke also unbedingt schließen, wenn ihr mit dem XAMPP ans Netz geht! Dazu im phpMyAdmin Verzeichnis die Datei "config.inc.php" mit einem Editor öffnen und den 'auth_type' verändern:
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'geheim';
wird zu:
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'geheim';
Ab jetzt wird User und Passwort abgefragt, bevor phpMyAdmin auf den MySQL Server zugreifen darf. Ein Passwort für den User "root" in MySQL sollte zuvor gesetzt sein!
Im XAMPP ist der IMAP Support für PHP standardmäßig deaktiviert, da es bei bei manchen Homeversionen wie Windows 98 zu rätselhaften Initialisierungsfehlern kam. Wer NT Systeme benutzt, sollte die Datei "\xampp\php\php.ini" öffnen und dort die Zeile ";extension=php_imap.dll" auskommentieren, also das Semikolon entfernen. Also:
extension=php_imap.dll
Jetzt noch den Apache neu starten und IMAP sollte aktiviert sein. Das funktionoert genau so auch bei jeder anderen Extension, die standardmäßig nicht geladen sind.
Linux und Windows sind doch unterschiedlich. Auch wenn vieles bei z.B. PHP bei jedem Betriebsystem gleich funktioniert, gibt es doch einige Sachen die sich jeweils anders Verhalten. Gerade OSS wird oft nur auf Linux "gestrickt", ohne daran zu denken, dass etwas bei einem anderen OS anderes funktioniert und der Code entsprechend variabel reagieren muss. Auch gibt es z.B. bei PHP Funktion exklusiv für Windows oder Linux.
Nein, besser nicht. Für alle Zusatzpakete (AddOns) und Upgrades werden die dortigen Scripts teilweise noch gebraucht.
Eine Frontpage Unterstützung für den Apache gibt es nur für Linux, aber nicht für den Apache/Windows.
Ja, für den XAMPP ist diese Möglichkeit vorgesehen. Nach dem Verschieben oder Kopieren des gesamten XAMPP in das neue Verzeichnis, unbedingt die "setup_xampp.bat" benutzen. Die Konfigurationsdateien werden damit auf die neuen Pfade angepasst.
Wenn man die Server als Windows Dienste eingerichtet hatte, muss man diese vor dem Verschieben löschen, und nach dem verschieben wieder einrichten.
Achtung:
Die Konfigurationsdateien deiner eigenen Skripte, wie z.B. der Forensoftware phpBB, werden dadurch nicht angepasst. Dieses musst du selbst erledigen. Es gäbe aber die Möglichkeit, sich dafür ein "PlugIn" für den Installer zu schreiben, damit auch solche fremde Dateien angepasst werden.
Wie jede andere (Zend-) Extension, wirde dieser in der "php.ini" aktiviert. Dort die Zeile ";zend_extension = "\xampp\php\ext\php_eaccelerator.dll"" auskommentieren, also das Semikolon wegmachen. Also:
zend_extension = "\xampp\php\ext\php_eaccelerator.dll"
Wenn die entsprechende PHP Extension in der "php.ini" geladen wurde, kommt es manchmal zu Zugriffsproblemen auf einen Microsoft SQL Server (2000), wenn nur TCP/IP benutzt wird. Dieser kann behoben werden, wenn die "ntwdblib.dll" in "\xampp\apache\bin" und "\xampp\php" mit einer neueren Version von Microsoft ersetzt wird. Die "ntwdblib.dll" liegt PHP bei. Eine Aktualisierung dieser Datei kann ApacheFriends im XAMPP aus lizenzrechtlichen Gründen leider nicht vornehmen.
Dafür habe ich ein Topic im Forum aufgemacht. Mit Beispielen, aber auch mit den Problemen:
http://www.apachefriends.org/f/viewtopic.php?t=3012
Nein. Und Apache::ASP im Perl AddOn ist nicht ganz dasselbe. Apache::ASP kennt nur Perl-Script, wohingegen das ASP vom Internet Information Server (IIS) auch das normal benutzte VBScript kennt.
Für ASP.NET gibt es dagegen ein entsprechendes 3rd-Party Modul für den Apache.
|