PHP-Server auf lokalem Computer?

161

Ich versuche eine PHP-Site zu erstellen und möchte meine PHP-Dateien testen, ohne sie auf meinen Host hochzuladen. Grundsätzlich testen Sie sie auf meinem eigenen Computer, bevor ich sie hochlade. Wie mache ich das?

Verrückt
quelle
1
Verwenden Sie XAMPP und installieren Sie den PHP-Server. Wenn Skype die Ports 80 und 443 verwendet, wird der Apache-Server manchmal nicht gestartet. Die vollständige Lösung finden Sie hier. Feelzdroid.com/2015/12/install-php-server-local-machine.html
Naruto

Antworten:

379

PHP 5.4 und höher verfügen heutzutage über einen integrierten Webserver .

Sie führen den Befehl einfach vom Terminal aus:

cd path/to/your/app
php -S 127.0.0.1:8000

Gehen Sie dann in Ihrem Browser zu http://127.0.0.1:8000und boomen Sie, Ihr System sollte betriebsbereit sein. (Damit dies funktioniert, muss eine Datei index.php oder index.html vorhanden sein.)

Sie können auch einen einfachen Router hinzufügen

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
    return false;    // serve the requested resource as-is.
} else { 
    require_once('resolver.php');
}
?>

Führen Sie dann den Befehl aus

php -S 127.0.0.1:8000 router.php

Verweise:

GardenRouteGold
quelle
9
Falls sich jemand wundert, finden Sie die -S und einen Verweis auf andere Befehle unter dem folgenden Link. Insbesondere bedeutet -S "Mit integriertem Webserver ausführen". php.net/manual/en/features.commandline.options.php
Calipoop
aber was ist mit den Datenbanken, in denen es gespeichert werden sollte?
Yousef Altaf
1
@YousefAltaf Das OP gibt kein Wetter an oder wollte nicht, dass eine Datenbank verwendet wird. Sie fragten nach einem PHP-Server und dies ist einfach ein PHP-Server. Wenn Sie einen MYSQL-Server oder PostGres-Server ausführen möchten, ist dies eine andere Frage, und Sie können Ihre PHP-Anwendung für die Verwendung dieses Servers konfigurieren. Auch für schnelle Entwicklungszwecke sollte eine SQLITE-Datenbank ausreichen.
GardenRouteGold
1
Der in PHP integrierte Webserver unterstützt keine parallelen Anforderungen : The web server runs a only one single-threaded process, so PHP applications will stall if a request is blocked.. Dies kann zu Leistungsproblemen führen.
Vikyd
1
@vikyd Dies ist nicht für eine vollwertige Anwendungsentwicklung gedacht, sondern nur eine schnelle Möglichkeit, Funktionen zu testen / zu debuggen oder IMHO zu codieren.
GardenRouteGold
39

Dies ist eine einfache und sichere Möglichkeit, Ihren PHP-Server lokal auszuführen:

php -S 0.0.0.0:<PORT_NUMBER>

Wobei PORT_NUMBER eine Ganzzahl von 1024 bis 49151 ist

Beispiel: php -S 0.0.0.0:8000

Anmerkungen:

  1. Wenn Sie localhosteher als 0.0.0.0ein Verbindungsfehler verweigert treffen kann.

  2. Wenn Sie den Webserver für eine beliebige Schnittstelle zugänglich machen möchten, verwenden Sie 0.0.0.0.

  3. Wenn eine URI-Anforderung keine Datei angibt, werden entweder index.php oder index.html im angegebenen Verzeichnis zurückgegeben.

Angesichts der folgenden Datei (router.php)

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
    return false;    // serve the requested resource as-is.
} else { 
    echo "<p>Welcome to PHP</p>";
}
?>

Führen Sie diese ...

php -S 0.0.0.0:8000 router.php

... und navigieren Sie in Ihrem Browser zu http: // localhost: 8000 / und Folgendes wird angezeigt:

Welcome to PHP

Referenz:

Eingebauter Webserver

l3x
quelle
4
Vielen Dank für den Tipp bezüglich 0.0.0.0, was für ein magischer Fix es war - sollte in die akzeptierte Antwort aufgenommen werden oder so ...
Calipoop
14

Ich benutze oft den folgenden Befehl, um mein PHP Laravel Framework zu drehen:

$ php artisan serve --port=8080
or
$ php -S localhost:8080 -t public/

Im obigen Befehl: - Artisan ist eine in Laravel enthaltene Befehlszeilenschnittstelle, die dazu dient , den eingebauten PHP-Server aufzurufen

Mit integriertem Webserver ausführen.

 php -S <addr>:<port> -T

Hier
-S: Wechseln Sie zu Run mit integriertem Webserver.
-T: Wechseln Sie zur Angabe des Dokumentstamms für den integrierten Webserver.

Amitesh Bharti
quelle
8

Ich benutze WAMP . Ein einfacher Installationsassistent, unzählige Module für Apache und PHP vorkonfiguriert und einfach ein- und auszuschalten, um Ihrer Remote-Konfiguration zu entsprechen.

Chris Sobolewski
quelle
7

Wenn Sie einen lokalen Allzweck-Entwicklungsstapel für jedes Betriebssystem wünschen, bei dem Sie zwischen verschiedenen PHP-, MySQL- und Webserverversionen wählen können und auch keine Angst vor der Verwendung von Docker haben, können Sie sich für die Devilbox entscheiden .

Die Devilbox ist ein moderner und hochgradig anpassbarer dockerisierter PHP-Stack, der vollständige LAMP und MEAN unterstützt und auf allen wichtigen Plattformen ausgeführt wird. Das Hauptziel besteht darin, alle für die lokale Entwicklung erforderlichen Versionen einfach zu wechseln und zu kombinieren. Es unterstützt eine unbegrenzte Anzahl von Projekten, für die vhosts und DNS-Einträge automatisch erstellt werden. E-Mail-Catch-All und beliebte Entwicklungstools stehen Ihnen ebenfalls zur Verfügung. Eine Konfiguration ist nicht erforderlich, da alles mit virtuellem Massenhosting vorinstalliert ist.

Die Inbetriebnahme ist ziemlich einfach:

# Get the devilbox
$ git clone https://github.com/cytopia/devilbox
$ cd devilbox

# Create docker-compose environment file
$ cp env-example .env

# Edit your configuration
$ vim .env

# Start all containers
$ docker-compose up

Teufelskiste

Links:

Zytopie
quelle
4

MAMP, wenn Sie sich auf einem MAC MAMP befinden

Joey Blake
quelle
1

Verwenden Sie Apache Friends XAMPP . Es wird Apache HTTP Server, PHP 5 und MySQL 5 einrichten (soweit ich weiß, gibt es wahrscheinlich noch mehr). Sie müssen nicht wissen, wie Sie Apache (oder eines der Module) für die Verwendung konfigurieren.

Sie haben ein htdocs-Verzeichnis, das Apache bedient (zugänglich über http: // localhost / ) und in der Lage sein sollte, Ihre PHP-Dateien dort abzulegen . Bei meiner Installation befindet es sich unter C: \ xampp \ htdocs.

Carson Myers
quelle
1

Wenn Sie einen lokalen Computer mit der richtigen Software haben: einen Webserver mit Unterstützung für PHP, gibt es keinen Grund, warum Sie nicht das tun können, was Sie beschreiben.

Ich mache es im Moment mit XAMPP auf einem Windows XP-Computer und (zu Hause) mit Kubuntu und einem LAMP-Stack.

Pavium
quelle
1

AppServ ist ein kleines Programm, das unter Windows ausgeführt werden kann:

  • Apache
  • PHP
  • MySQL
  • phpMyAdmin

Außerdem erhalten Sie eine Start- und Stoppschaltfläche für Apache. Was ich sehr nützlich finde.

M. Sundstrom
quelle