it-swarm.com.de

Wie man manuell Apache installiert, PHP und MySQL unter Windows?

Wie installiere ich Apache mit PHP -Unterstützung und dem MySQL-Server unter Windows ohne mit einsatzbereiten Paketen wie WAMPServer oder XAMPP?

44
user256743

Apache

Zuerst empfehle ich Ihnen, die Plattformspezifischen Hinweise von Apache für Windows zu lesen. Dort werden einige Windows-spezifische Funktionen erläutert, beispielsweise das Ausführen als Dienst, den Sie auf anderen Betriebssystemen nicht haben und den Sie wahrscheinlich noch nie zuvor verwendet haben.

Wie in diesen plattformspezifischen Hinweisen erwähnt, stellt Apache keine Binärdateien für Windows bereit. Sie verfügen jedoch über 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 über ein 32-Bit-Modul verfügen, 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 Ordner Apache24 in das Stammverzeichnis Ihrer Festplatte, sodass Sie einen Pfad wie C:\Apache24\bin haben.

Öffnen Sie ein Befehlszeilenfenster (Windows + R, geben Sie cmd ein und drücken Sie die Eingabetaste), ändern Sie das Verzeichnis in C:\Apache24\bin und führen Sie httpd.exe aus. Normalerweise sollten keine Fehler ausgegeben werden.

Wenn ein Fehlerdialogfeld angezeigt wird, in dem angegeben wird, dass MSVCR110.dll auf Ihrem System fehlt, müssen Sie Visual C++ Redistributable für Visual Studio 2012 - wie immer installieren. Wählen Sie bei Aufforderung die entsprechende Bitversion aus: vcredist_x86.exe für 32 -Bit-Systeme und vcredist_x64.exe für 64-Bit-Systeme.

Wenn Sie die Fehlermeldung erhalten, dass die Bindung an Port 80 nicht möglich ist, überprüfen Sie, ob eine andere Anwendung diesen Port verwendet. Auch Skype verwendet standardmäßig die Ports 80 und 443. Deaktivieren Sie "Port 80 und 443 als Alternativen für eingehende Verbindungen verwenden" in den erweiterten Verbindungseinstellungen , starten Sie Skype neu, um die Änderungen zu übernehmen. Anschließend sollten Sie in der Lage sein, Apache ohne Probleme zu starten.

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 Standardeinstellungen zu verwenden: 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 auf einer Seite It works ! angezeigt wird, funktioniert Ihre Apache-Installation.

Sie können jetzt den aktuell ausgeführten Apache stoppen, indem Sie Strg + C in der Eingabeaufforderung drücken.

Wenn Sie eine Warnung erhalten, dass der vollqualifizierte Domänenname des Systems nicht ermittelt werden kann, beheben Sie diese, indem Sie den C:\Apache24\conf\httpd.conf und die ServerName-Variable bearbeiten (sollte bereits in einem Kommentar vorhanden sein, kommentieren Sie ihn einfach aus und ändern Sie ihn):

ServerName <yourhostname>

Ersetzen Sie <yourhostname> entweder durch den Hostnamen des Systems oder durch 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.

Beschränken des Apache-Zugriffs auf nur localhost - optional

Wenn 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. Lassen Sie uns der Firewall jedoch eine weitere Sicherheitsebene hinzufügen, indem Sie Apache anweisen, Anforderungen vom lokalen Server anzunehmen Nur Maschine.

Öffnen Sie die Apache-Konfigurationsdatei C:\Apache24\conf\httpd.conf und suchen Sie nach dem Standardverzeichnisblock <Directory "c:/Apache24/htdocs">.

Wenn es am Ende eine Zeile Require all granted geben sollte, bedeutet dies, dass jeder auf diesen Server zugreifen kann. Lassen Sie uns diesen Require local erstellen, der nur den Zugriff vom lokalen Computer aus ermöglicht.

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 Direktive Listen (standardmäßig ist sie auf 80 gesetzt) ​​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, starten Sie ihn neu, um unsere Änderungen zu berücksichtigen. Jetzt hat nur noch localhost Zugriff, alle anderen erhalten einen 403 Forbidden.

PHP

Ich schlage vor, Sie lesen die offizielle PHP Dokumentation über die Installation auf Windows-Systemen.

Laden Sie die neuesten PHP Binärdateien von der offiziellen PHP für Windows-Downloadseite herunter, und wählen Sie die thread-sichere Version aus, die der Bitversion Ihrer Apache-Installation entspricht (x86 für 32-Bit) x64 für 64-Bit).

Die nicht thread-sichere Version wird nur als CGI-Binärdatei ausgeführt - weitere Informationen hier .

Die von mir verwendete Version 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 Ordner PHP im Stammverzeichnis Ihrer Festplatte und extrahieren Sie das zuvor heruntergeladene Archiv. Sie sollten einen Pfad wie C:\PHP\ext haben, da Sie sonst etwas falsch gemacht haben.

Benennen Sie in C:\PHP den php.ini-production oder php.ini-development (je nachdem, was Sie möchten) in php.ini um.

Öffnen Sie diese php.ini-Datei, suchen Sie nach extension_dir = "ext" und kommentieren Sie diese Zeile aus (entfernen Sie den ersten ;). Dadurch wird das Standard-Erweiterungsverzeichnis auf ext gesetzt (das in C:\PHP\ext aufgelöst wird und nicht wie in früheren Versionen dieses Beitrags den Pfaden aller Erweiterungen manuell ext/ voranstellen muss.

Konfigurieren Sie nun Apache für die Verwendung dieses PHP, indem Sie C:\Apache24\conf\httpd.conf bearbeiten. Fügen Sie nach allen Zeilen für LoadModule Folgendes hinzu:

(Das Folgende gilt 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>

(Folgendes gilt 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 in C:\Apache24\bin öffnen und httpd.exe ausführen. Wenn keine Fehler angezeigt werden, ist Ihre Konfigurationsdatei gültig und PHP ist funktioniert höchstwahrscheinlich.

Sie können Ihre PHP -Installation testen, indem Sie eine Datei wie info.php mit <?php phpinfo(); erstellen und zu http://localhost/info.php gehen - Sie sollten eine ganze Reihe von Informationen über Ihr System und Ihre PHP -Installation und all ihre Inhalte sehen Module. 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.

Komponist - optional

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 OpenSSL-Erweiterung PHP aktiviert sein. Lassen Sie uns sie daher in C:\PHP\php.ini aktivieren.

Verwenden Sie die Suchfunktion Ihres Texteditors, um nach php_openssl.dll zu suchen. 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 Direktlink .

Befolgen Sie die Anweisungen, wenn Sie nach dem Pfad zu PHP gefragt werden, navigieren Sie zu C:\PHP und wählen Sie php.exe aus.

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 verwenden, die bereits geöffnet ist, da sie die neue PATH Variable lesen muss, die von gesetzt wurde Composer's Installer) und geben Sie composer ein.

Sie sollten ein nettes ASCII-Kunstlogo und so etwas bekommen:

Composer version e87bc894daf8d5f8e77a01dd7ae5f0446ae30b14 2014-05-01 15:40:28

PHP MySQL-Erweiterungen - optional

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 PDO auf jede MySQL-Datenbank zugreifen.

MySQL

Laden Sie auf der MySQL Installer-Downloadseite den Web-Installer mysql-installer-web-community-xxxxx.msi herunter.

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, die 64-Bit-Version jedoch von Vorteil ist Die Version Ihres Systems 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 der Developer default die beste Option. Außerdem wird MySQL Workbench, ein nativer GUI-Client, installiert, sodass Sie keine langsamen webbasierten Tools wie z als PHPMyAdmin, wenn Sie mit der Verwendung des Befehlszeilen-Clients 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 auf die Datenbank zugreifen.

Legen Sie das Root-Passwort fest. Wenn dies nur zu Entwicklungszwecken dient und Ihre Firewall eingehende Verbindungen vom Netzwerk blockiert, ist kein sicheres Passwort 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 Kontrollkästchen Run at Windows Startup deaktivieren und anwenden. Das spart Ihnen ein paar MB an 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 in 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.

61
user256743

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 zu C:\Apache24\conf\httpd.conf hinzufügen, anstatt denjenigen in dieser Antwort (die nur für funktionieren) PHP 5) [Fügen Sie nach allen Zeilen LoadModule Folgendes hinzu] :

LoadModule php7_module C:/PHP/php7Apache2_4.dll

<IfModule php7_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
</IfModule>

Stellen Sie sicher, dass alle Pfade korrekt sind. Wenn sich in Ihrem Verzeichnis PHP kein php7Apache2_4.dll befindet, haben Sie wahrscheinlich das falsche Paket heruntergeladen.

5
rahuldottech