Wie installiere ich Apache, PHP und MySQL manuell unter Windows?

Wie installiere ich Apache mit PHP-Unterstützung und den MySQL-Server unter Windows ohne mit gebrauchsfertigen Paketen wie WampServer oder XAMPP ?

Author: Zechariah Raman, 2014-04-30

2 answers

Apache

Zuerst empfehle ich Ihnen, die [[68]}Plattformspezifischen Hinweise [[69]} von Apache für Windows zu lesen - es werden einige Windows-spezifische Funktionen wie die Ausführung als Dienst erläutert, die Sie auf anderen Betriebssystemen nicht haben und die Sie wahrscheinlich noch nie zuvor verwendet haben.

Wie in diesen plattformspezifischen Hinweisen erwähnt, stellt Apache keine Binärdateien für Windows bereit, sie enthalten jedoch Links zu mehreren 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 Ihr Betriebssystem 64-Bit ist, sollten Sie immer versuchen, 64-Bit-Versionen von Software zu installieren, aber beachten Sie, dass Sie auch 64-Bit-Module verwenden müssen, dh wenn Sie 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 (sehen Sie sich das Bearbeitungsdatum am Ende des Beitrags an).

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 und geben Sie cmd ein und drücken Sie dann die Eingabetaste), ändern Sie das Verzeichnis in C:\Apache24\bin und führen Sie httpd.exe aus.

MSVCR110.dllWenn Sie einen Fehlerdialog erhalten, der besagt, dass MSVCR110.dll auf Ihrem System fehlt, müssen Sie die Visual C++ Redistributable für Visual Studio 2012 - - wie immer, wenn Sie dazu aufgefordert werden, wählen Sie die entsprechende bit-version : vcredist_x86.exe für 32-Bit-Systeme und vcredist_x64.exe für die 64-Bit Variante.

Wenn die Fehlermeldung angezeigt wird, dass die Verbindung nicht an Port 80 gebunden werden kann, überprüfen Sie, ob eine andere Anwendung diesen Port verwendet - auch Skype verwendet 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". die Änderungen, und dann sollten Sie Apache ohne Probleme 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, Apache die Kommunikation in bestimmten Netzwerken zu ermöglichen, ich empfehle Ihnen, die Standardeinstellungen zu verwenden : Erlaube es in Heim-und Arbeitsnetzwerken, aber nicht in öffentlichen/nicht vertrauenswürdigen Netzwerken.

Öffnen Sie dann einen Browser und navigieren Sie zu http://localhost, wenn Sie eine Seite mit der Aufschrift It works ! sehen, bedeutet dies, dass Ihre Apache-Installation arbeiten.

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

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

ServerName <yourhostname>

Ersetzen Sie <yourhostname> entweder durch den Hostnamen des Systems oder localhost.

Schließlich, wenn Sie den Server ausführen möchten automatisch, wenn das System gestartet wird (auch wenn sich niemand anmeldet), müssen Sie es als Dienst ausführen - geben Sie in einer neuen erhöhten (als Administrator) Eingabeaufforderung Folgendes ein :

httpd.exe -k install

Das war 's, jetzt haben Sie einen neuen Dienst in Diensten (Windows+R geben Sie dann" Dienste.msc "Drücken Sie dann die Eingabetaste) mit dem Namen "Apache2. 4", die Sie wie jeder andere Windows-Dienst steuern können.

Apache-Zugriff nur auf localhost einschränken - optional

Wenn Sie dies für die Entwicklung einrichten wenn Sie sicherstellen möchten, dass niemand außer Ihnen darauf zugreifen kann, sollte sich Ihre Firewall bereits darum kümmern, aber fügen Sie eine weitere Sicherheitsebene hinzu, indem Sie Apache anweisen, nur Anforderungen vom lokalen Computer zu akzeptieren.

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

Am Ende, wenn es, sollte es eine Zeile Require all granted, das bedeutet, dass jeder auf diesen Server zugreifen kann. Machen wir das Require local, das nur den Zugriff von der lokale Maschine.

Außerdem können Sie Apache anweisen, nur an die Loopback-Schnittstelle zu binden, selbst wenn sowohl Ihre Firewall als auch die oben genannten Zugriffskontrollanweisungen fehlschlagen, ist der Server immer noch nicht für das gesamte Internet geöffnet.

Suchen Sie dazu die Direktive Listen (standardmäßig ist sie auf 80 gesetzt) und ändern Sie sie wie folgt:

Listen 127.0.0.1:80
Listen [::1]:80

Die erste Zeile ist selbsterklärend, die zweite ist das IPv6-Äquivalent des ersten, die Klammern werden im IPv6 verwendet notation, um die Adresse und den Port zu trennen.

Speichern Sie die Datei, wenn Sie den Server bereits ausführen, starten Sie sie neu, um unsere Änderungen zu berücksichtigen, und jetzt hat nur localhost Zugriff, alle anderen erhalten eine 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 for Windows Download-Seite herunter, wählen Sie die thread-sichere Version, 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, wenn sie als CGI-Binärdatei ausgeführt wird-weitere Informationen hier.

Die Version, die ich verwendet habe, ist diese: 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 am Ende des Beitrags).

Erstelle ein leeres PHP ordner im Stammverzeichnis Ihrer Festplatte, und extrahieren Sie das zuvor heruntergeladene Archiv dort, sollten Sie einen Pfad wie C:\PHP\ext haben, sonst haben Sie etwas falsch gemacht.

Benennen Sie in C:\PHP das php.ini-production oder php.ini-development (je nachdem, was Sie wollen) in php.ini um.

Öffnen Sie die Datei php.ini, suchen Sie nach extension_dir = "ext" und kommentieren Sie diese Zeile aus (entfernen Sie die erste ;). Dadurch wird die Standarderweiterung dir auf ext gesetzt (die in C:\PHP\ext aufgelöst wird und verhindert, dass ext/ allen Pfaden der Erweiterung vorangestellt werden muss manuell wie in früheren Versionen dieses Beitrags.

Konfigurieren Sie nun Apache, um dieses PHP zu verwenden, indem Sie C:\Apache24\conf\httpd.conf bearbeiten - fügen Sie nach allen LoadModule Zeilen Folgendes hinzu:

(Das Folgende gilt nur für PHP 7 )

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 gilt nur für PHP 5 )

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 Sie keine Fehler sehen, bedeutet dies, dass Ihre Konfigurationsdatei gültig ist und PHP höchstwahrscheinlich arbeiten.

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 ziemlich viele Informationen über Ihr System und Ihre PHP-Installation und alle seine 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 server bereits gestartet.

Komponist - optional

Composer ist ein Werkzeug zur Abhängigkeitsverwaltung in PHP, wie ein Paketmanager. Es ermöglicht die einfache Installation von PHP-Paketen und sogar ganzen Frameworks.

Für Composer muss die PHP OpenSSL-Erweiterung aktiviert sein, also aktivieren wir sie in C:\PHP\php.ini.

Verwenden Sie die Suchfunktion Ihres Texteditors, um nach php_openssl.dll zu suchen, es sollte bereits eine kommentierte Zeile dafür geben, nur kommentieren Sie diese Zeile.

Jetzt herunterladen Composer ' s Windows Installer von ihrer Download-Seite - oder verwenden Sie einfach diese direkten Link.

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

Das ist es, Composer ist jetzt installiert systemweit und kann von überall aus genutzt werden - Sie können es ausprobieren, nur öffnen Sie eine neue Eingabeaufforderung (Sie nicht verwenden können, eine, die schon offen, da es braucht, um Lesen Sie die neue PATH variable set von Composer-installer) und geben Sie composer.

, sollten Sie einen schönen ASCII-art-logo-und so etwas wie diese :

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, wie php_mysqli oder php_pdo_mysql - ich empfehle, sie 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 dort, kommentieren Sie sie.

Fertig, jetzt können Sie auf jede MySQL-Datenbank zugreifen, indem Sie entweder mysqli oder PDO.

MySQL -

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

Ich habe mysql-installer-web-community-5.6.21.1 verwendet.msi. Die neueste Version, als diese Antwort zuletzt aktualisiert wurde: mysql-installer-web-community-8.0.15.0.msi (sehen Sie sich das Bearbeitungsdatum am unteren Rand des Post).

Der installer wird automatisch installieren Sie die entsprechende version (32-Bit oder 64-Bit), abhängig von Ihrem system, obwohl die MySQL-bit-version nicht übereinstimmen, Apache und PHP, aber es ist immer noch vorteilhaft für die 64-bit-version von Ihrem system unterstützt wird, zu nehmen Vorteil von mehr als 3 GB RAM, das ist ganz wichtig als Datenbank-Server dazu neigen, zu viel RAM.

Befolgen Sie die Schritte im Installationsprogramm, wenn Sie dies installieren für die Entwicklung der Developer default Ihre beste option, es werde auch die Installation von MySQL Workbench ist eine native GUI-client, so dass Sie installieren zu müssen langsamen web-basierte tools wie PHPMyAdmin, wenn Sie sind nicht bequem mit Hilfe der Kommandozeilen-client.

Sobald alles installiert ist, fragt das Installationsprogramm Sie nach einigen grundlegenden Konfigurationswerten, ich empfehle, "Firewall-Port für den Netzwerkzugriff öffnen" zu deaktivieren, es sei denn, Sie möchten von einem anderen Computer auf die Datenbank zugreifen Netzwerk.

Legen Sie das Root-Passwort fest-wenn es nur zu Entwicklungszwecken dient und Ihre Firewall eingehende Verbindungen aus dem Netzwerk blockiert, ist kein sicheres Passwort erforderlich.

Run at Windows StartupSchließlich können Sie den nutzlosen MySQL-Notifier deaktivieren, indem Sie mit der rechten Maustaste auf das Tray-Symbol klicken, Aktionen -> Optionen aufrufen, dann das Kontrollkästchen Run at Windows Startup deaktivieren und anwenden. Dadurch sparen Sie ein paar MB RAM und vermeiden es, Ihren Computer beim Booten zu verlangsamen.

Und das war ' s, du hast jetzt eine voll funktionaler WAMP-Server, der als Dienst ausgeführt wird und nicht von einem Benutzer abhängt (zugänglich, auch wenn niemand angemeldet ist).

Beachten Sie, dass ich keine Ahnung von der Sicherheit habe, für Entwicklungszwecke 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, es sollte auch unter Vista, Windows 8 und möglicherweise gut funktionieren Windows Server 2008/2012 - fühlen Sie sich frei zu kommentieren und/oder downvote, wenn das nicht der Fall.

 67
Author: Zechariah Raman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-03-18 09:13:48

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 anstelle der Zeilen in dieser Antwort hinzufügen (die nur für PHP 5 funktionieren) [Fügen Sie nach allen LoadModule Zeilen 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 Sie php7apache2_4.dll nicht in Ihrem PHP-Verzeichnis haben, haben Sie wahrscheinlich das falsche Paket heruntergeladen.

 8
Author: undo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-07-02 11:51:30