Wie installiere ich Apache mit PHP-Unterstützung und dem MySQL-Server unter Windows, ohne einsatzbereite Pakete wie WAMPServer oder XAMPP zu verwenden?
Als erstes empfehle ich Ihnen, die plattformspezifischen Hinweise zu Apache für Windows zu lesen. Dort werden einige Windows-spezifische Funktionen erläutert, z.
Wie in diesen plattformspezifischen Hinweisen erwähnt, stellt Apache keine Binärdateien für Windows bereit. Sie enthalten jedoch Links zu verschiedenen Websites von Drittanbietern, die Binärdateien bereitstellen, z. B. Apache Lounge .
Von dieser Website können wir entweder die 32-Bit-Version (win32) oder die 64-Bit-Version (Win64) herunterladen. Wenn Sie ein 64-Bit-Betriebssystem verwenden, sollten Sie immer versuchen, 64-Bit-Versionen der Software zu installieren. Beachten Sie jedoch, dass Sie dies tun Außerdem müssen 64-Bit-Module verwendet werden. Wenn Sie also nur ein 32-Bit-Modul haben, laden Sie den 32-Bit-Apache herunter.
Hier ist die Version, die ich beim Schreiben verwendet habe: Apache 2.4.10 Win64 . Die neueste Version, als diese Antwort zuletzt aktualisiert wurde: Apache 2.4.38 Win64 (siehe Bearbeitungsdatum unten im Beitrag).
Nach dem Herunterladen extrahieren Sie einfach den Apache24
Ordner in das Stammverzeichnis Ihrer Festplatte, sodass Sie einen Pfad wie folgt haben C:\Apache24\bin
.
Öffnen Sie ein Befehlszeilenfenster (Windows + R und cmd
drücken Sie die Eingabetaste), wechseln Sie in das Verzeichnis C:\Apache24\bin
und führen Sie es aus httpd.exe
. Normalerweise sollte es keine Fehler ausgeben.
Wenn ein Fehlerdialogfeld angezeigt wird, in dem angegeben MSVCR110.dll
wird , dass es auf Ihrem System fehlt, müssen Sie Visual C ++ Redistributable für Visual Studio 2012 installieren. Wählen Sie bei entsprechender Aufforderung wie immer die entsprechende Bitversion aus: vcredist_x86.exe
für 32-Bit-Systeme und vcredist_x64.exe
für 64 -Bit-Systeme -Bit diejenigen.
Wenn Sie eine Fehlermeldung erhalten, die besagt, dass keine Bindung an Port 80 möglich ist, überprüfen Sie, ob eine andere Anwendung diesen Port verwendet. Außerdem verwendet Skype standardmäßig die Ports 80 und 443. Deaktivieren Sie in den erweiterten Verbindungseinstellungen die Option "Port 80 und 443 als Alternativen für eingehende Verbindungen verwenden" , starten Sie Skype neu, um die Änderungen zu übernehmen. Anschließend sollten Sie Apache problemlos starten können.
Eine Warnung wie Could not reliably determine the server's fully qualified domain name
kann vorerst ignoriert werden.
Die Windows-Firewall fordert Sie möglicherweise auf, die Kommunikation von Apache in bestimmten Netzwerken zuzulassen. Ich empfehle die Verwendung der Standardeinstellungen: Zulassen in Heim- und Arbeitsnetzwerken, jedoch nicht in öffentlichen / nicht vertrauenswürdigen Netzwerken.
Öffnen Sie dann einen Browser und navigieren Sie zu http://localhost
. Wenn Sie eine Seite sehen, die besagt It works !
, dass Ihre Apache-Installation funktioniert.
Sie können jetzt den aktuell ausgeführten Apache stoppen, indem Sie in der Eingabeaufforderung Strg + C drücken.
Wenn Sie eine Warnung erhalten, dass Sie den vollqualifizierten Domänennamen des Systems nicht ermitteln können, beheben Sie diese, indem Sie C:\Apache24\conf\httpd.conf
die ServerName
Variable bearbeiten und bearbeiten (sie sollte bereits in einem Kommentar enthalten sein, kommentieren Sie sie einfach aus und ändern Sie sie):
ServerName <yourhostname>
Ersetzen Sie <yourhostname>
durch den Hostnamen des Systems oder localhost
.
Wenn Sie den Server beim Systemstart automatisch ausführen möchten (auch wenn sich niemand anmeldet), müssen Sie ihn als Dienst ausführen. Geben Sie in einer neuen Eingabeaufforderung mit erhöhten Rechten (als Administrator) Folgendes ein:
httpd.exe -k install
Jetzt haben Sie einen neuen Dienst in den Diensten (Windows + R, geben Sie "services.msc" ein und drücken Sie die Eingabetaste) mit dem Namen "Apache2.4", den Sie wie jeden anderen Windows-Dienst steuern können.
localhost
nur - optionalWenn Sie dies für Entwicklungszwecke einrichten und sicherstellen möchten, dass niemand außer Ihnen darauf zugreifen kann, sollte sich Ihre Firewall bereits darum kümmern, aber wir fügen der Firewall eine weitere Sicherheitsebene hinzu, indem wir Apache anweisen, Anforderungen von lokaler Seite anzunehmen Nur Maschine.
Öffnen Sie die Apache-Konfigurationsdatei C:\Apache24\conf\httpd.conf
und suchen Sie nach dem Standardverzeichnisblock <Directory "c:/Apache24/htdocs">
.
Sollte es am Ende eine Zeile geben Require all granted
, bedeutet dies, dass jeder auf diesen Server zugreifen kann. Lassen Sie uns das machen, Require local
was nur den Zugriff von der lokalen Maschine aus erlaubt.
Außerdem können Sie Apache anweisen, sich nur an die Loopback-Schnittstelle zu binden. Auf diese Weise ist der Server auch dann nicht für das gesamte Internet geöffnet, wenn sowohl Ihre Firewall als auch die oben genannten Richtlinien zur Zugriffskontrolle fehlschlagen.
Suchen Sie dazu die Listen
Direktive (standardmäßig ist sie auf eingestellt 80
) und ändern Sie sie in folgende:
Listen 127.0.0.1:80
Listen [::1]:80
Die erste Zeile ist selbsterklärend, die zweite Zeile entspricht der ersten IPv6-Zeile. Die Klammern werden in der IPv6-Notation verwendet, um die Adresse und den Port zu trennen.
Speichern Sie die Datei, wenn Sie den Server bereits ausführen, und starten Sie ihn neu, um unsere Änderungen zu berücksichtigen. Jetzt hat nur localhost
noch der Zugriff, alle anderen erhalten eine 403 Forbidden
.
Ich empfehle Ihnen, die offizielle PHP-Dokumentation zur Installation auf Windows-Systemen zu lesen .
Laden Sie die neuesten PHP-Binärdateien von der offiziellen Download-Seite für PHP für Windows herunter und wählen Sie die thread-sichere Version aus, die der Bit-Version Ihrer Apache-Installation entspricht (x86 für 32-Bit, x64 für 64-Bit).
Die nicht thread-sichere Version ist nur als CGI-Binärdatei lauffähig - mehr Infos hier .
Die Version, die ich verwendet habe, ist folgende: PHP 5.6.2 VC11 x64 Thread Safe . Die neueste Version, als diese Antwort zuletzt aktualisiert wurde: PHP 7.3.3 VC15 x64 Thread Safe (siehe Bearbeitungsdatum unten im Beitrag).
Erstellen Sie einen leeren PHP
Ordner im Stammverzeichnis Ihrer Festplatte und extrahieren Sie das zuvor heruntergeladene Archiv dort. Sie sollten einen Pfad haben C:\PHP\ext
, ansonsten haben Sie etwas falsch gemacht.
In C:\PHP
, benennen Sie die php.ini-production
oder php.ini-development
(je nachdem , was Sie wollen) zu php.ini
.
Öffnen Sie diese php.ini
Datei, suchen Sie nach extension_dir = "ext"
dieser Zeile und kommentieren Sie sie aus (entfernen Sie die erste ;
). Dadurch wird das Standardverzeichnis für Erweiterungen auf ext
(festgelegt, wodurch wie in früheren Versionen dieses Beitrags das manuelle C:\PHP\ext
Voranstellen ext/
aller Erweiterungspfade aufgehoben und vermieden wird .
Konfigurieren Sie nun Apache für die Verwendung dieses PHP, indem Sie C:\Apache24\conf\httpd.conf
- nach allen LoadModule
Zeilen - Folgendes hinzufügen:
(Folgen sind für PHP 7 nur )
LoadModule php7_module "c:\php\php7apache2_4.dll"
<IfModule php7_module>
AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .php .html
PHPIniDir "c:\php"
</IfModule>
(Das folgende ist für PHP 5 nur )
LoadModule php5_module C:/PHP/php5apache2_4.dll
<IfModule php5_module>
DirectoryIndex index.html index.php
AddHandler application/x-httpd-php .php
PHPIniDir "C:/PHP"
</IfModule>
Versuchen Sie nun, Apache manuell zu starten, indem Sie eine Eingabeaufforderung öffnen C:\Apache24\bin
und ausführen. httpd.exe
Wenn Sie keine Fehler sehen, bedeutet dies, dass Ihre Konfigurationsdatei gültig ist und PHP höchstwahrscheinlich funktioniert .
Sie können Ihre PHP-Installation testen, indem Sie eine Datei wie info.php
mit <?php phpinfo();
inside und going to erstellen. http://localhost/info.php
Sie sollten eine ganze Reihe von Informationen über Ihr System und Ihre PHP-Installation und all ihre Module sehen. Wenn Sie etwas anderes wie einen "Internen Serverfehler" erhalten, bedeutet dies, dass etwas nicht stimmt.
Sie können jetzt Ihren aktuellen Apache-Prozess beenden (Strg + C in der Konsole) und den Dienst starten - der folgende Teil interagiert nicht mit Apache und kann mit dem bereits gestarteten Server ausgeführt werden.
Composer ist ein Tool für das Abhängigkeitsmanagement in PHP, ähnlich einem Paketmanager. Es ermöglicht die einfache Installation von PHP-Paketen und sogar ganzen Frameworks.
Für Composer muss die PHP OpenSSL-Erweiterung aktiviert sein. Lassen Sie uns sie also aktivieren C:\PHP\php.ini
.
Verwenden Sie zum Suchen die Suchfunktion Ihres Texteditors. php_openssl.dll
Es sollte bereits eine kommentierte Zeile dafür vorhanden sein. Kommentieren Sie diese Zeile einfach aus.
Laden Sie jetzt das Windows-Installationsprogramm von Composer von der Download-Seite herunter - oder verwenden Sie einfach diesen direkten Link .
Befolgen Sie die Anweisungen. Wenn Sie nach dem Pfad zu PHP gefragt werden, navigieren Sie zu C:\PHP
und wählen Sie php.exe
.
Das war's, Composer ist jetzt systemweit installiert und kann von überall verwendet werden - Sie können es ausprobieren, indem Sie einfach eine neue Eingabeaufforderung öffnen (Sie können keine bereits geöffnete verwenden, da sie PATH
die von Composer festgelegte neue Variable lesen muss) Installer) und Typ composer
.
Sie sollten ein nettes ASCII-Art-Logo und so etwas bekommen:
Composer version e87bc894daf8d5f8e77a01dd7ae5f0446ae30b14 2014-05-01 15:40:28
Wenn Sie von PHP aus auf Ihre MySQL-Datenbank zugreifen möchten, müssen Sie Erweiterungen aktivieren, die dies ermöglichen, z. B. php_mysqli
oder php_pdo_mysql
- Ich empfehle, beide zu aktivieren.
Öffnen Sie die PHP-Konfigurationsdatei C:\PHP\php.ini
in Ihrem Texteditor und suchen Sie nach php_mysqli
oder php_pdo_mysql
- sie sollten bereits vorhanden sein, kommentieren Sie sie aus.
Jetzt können Sie mit mysqli
oder auf jede MySQL-Datenbank zugreifen PDO
.
Laden Sie auf der MySQL Installer-Download-Seite das Web- Installationsprogramm heruntermysql-installer-web-community-xxxxx.msi
.
Ich habe mysql-installer-web-community-5.6.21.1.msi verwendet. Die neueste Version, als diese Antwort zuletzt aktualisiert wurde: mysql-installer-web-community-8.0.15.0.msi (siehe Bearbeitungsdatum unten im Beitrag).
Das Installationsprogramm installiert abhängig von Ihrem System automatisch die entsprechende Version (32-Bit oder 64-Bit), auch wenn die Bit-Version von MySQL nicht mit der von Apache und PHP übereinstimmen muss, es aber dennoch von Vorteil ist, die 64-Bit-Version von MySQL zu verwenden Das System unterstützt es, mehr als 3 GB RAM zu nutzen. Dies ist sehr wichtig, da Datenbankserver in der Regel viel RAM verbrauchen.
Befolgen Sie die Schritte im Installationsprogramm. Wenn Sie dies für die Entwicklung installieren, ist Developer default
dies die beste Option. Außerdem wird MySQL Workbench, ein nativer GUI-Client, installiert, sodass Sie keine langsamen webbasierten Tools wie z PHPMyAdmin, wenn Sie mit der Verwendung des Befehlszeilenclients nicht vertraut sind.
Sobald alles installiert ist, werden Sie vom Installationsprogramm nach einigen grundlegenden Konfigurationswerten gefragt. Ich empfehle, "Firewall-Port für Netzwerkzugriff öffnen" zu deaktivieren, es sei denn, Sie möchten von einem anderen Computer im Netzwerk aus auf die Datenbank zugreifen.
Legen Sie das Root-Kennwort fest. Wenn dies nur zu Entwicklungszwecken dient und Ihre Firewall eingehende Verbindungen vom Netzwerk blockiert, ist kein sicheres Kennwort erforderlich.
Schließlich können Sie den nutzlosen MySQL Notifier deaktivieren, indem Sie mit der rechten Maustaste auf das Tray-Symbol klicken, in Aktionen -> Optionen gehen, dann das Run at Windows Startup
Kontrollkästchen deaktivieren und anwenden. Das spart Ihnen ein paar MB RAM und verhindert, dass Ihre Maschine beim Booten langsamer wird.
Nun haben Sie einen voll funktionsfähigen WAMP-Server, der als Dienst ausgeführt wird und von keinem Benutzer abhängig ist (auch wenn niemand angemeldet ist).
Beachten Sie, dass ich keine Ahnung von der Sicherheit habe. Zu Entwicklungszwecken würde ich sagen, dass dies ziemlich sicher ist, da Ihre Firewall eingehende Verbindungen sowohl für Apache (Port 80 und oder 443) als auch für MySQL (Port 3306) blockieren sollte.
Dies wurde auf einer Windows 7-Installation getestet und sollte auch unter Vista, Windows 8 und möglicherweise Windows Server 2008/2012 einwandfrei funktionieren. Wenn dies nicht der Fall ist, können Sie dies kommentieren und / oder ablehnen.
MSVCR110.dll
Fehler auftauchten (auf der aktuellen Apache - Version) beenden ich die Visual C ++ Redistributable 2010 SP1 Installation auf. Danach bekam ich einen weiteren Fehler bezüglich der DateiVCRUNTIME140.dll
, der die Installation von Visual C ++ Redistributable für Visual Studio 2015 erforderte.PHP 7
Die Anweisungen in der obigen Antwort funktionieren ab Juli 2017 einwandfrei. Wenn Sie jedoch PHP 7 verwenden möchten, müssen Sie die folgenden Zeilen
C:\Apache24\conf\httpd.conf
anstelle derjenigen in dieser Antwort hinzufügen (die nur für PHP 5 funktionieren). [Fügen Sie Folgendes hinzu nach allenLoadModule
Zeilen] :Stellen Sie sicher, dass alle Pfade korrekt sind. Wenn Sie nicht
php7apache2_4.dll
in Ihrem PHP-Verzeichnis haben, haben Sie wahrscheinlich das falsche Paket heruntergeladen.quelle