2013-06-04 30 views
34

Im Verzeichnis /app/ in Laravel 4 befindet sich eine Datei mit der Bezeichnung server.php. Der Inhalt dieser Datei wie folgt aussehen:Was ist der Zweck der Datei server.php in Laravel 4?

<?php 

$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); 

$uri = urldecode($uri); 

$paths = require __DIR__.'/bootstrap/paths.php'; 

$requested = $paths['public'].$uri; 

// This file allows us to emulate Apache's "mod_rewrite" functionality from the 
// built-in PHP web server. This provides a convenient way to test a Laravel 
// application without having installed a "real" web server software here. 
if ($uri !== '/' and file_exists($requested)) 
{ 
    return false; 
} 

require_once $paths['public'].'/index.php'; 

Es scheint, dass diese Datei someway ist in verwendet Apache mod_rewrite Funktionalität zu imitieren, aber ich kann nichts im Laravel documentation finden, dass es erwähnt oder seine Verwendung.

Ich versuche derzeit, Laravel auf einem IIS-Server zu verwenden, den ich nicht verwalte. Ich habe nicht die Möglichkeit, die URL-Rewrite-Modul-Optionen auf IIS zu ändern (ich werde in Zukunft), aber möchte jetzt beginnen, mit dem Framework jetzt zu arbeiten, wenn möglich. Diese server.php Datei scheint, als ob es eine Stop-Gap-Lösung sein könnte, genau das zu tun.

Kann jemand etwas Licht auf den Zweck der server.php Datei und wie man es verwenden/aktivieren, wenn der Zweck ist Apache mod_rewrite Funktionalität zu emulieren?

Antwort

54

Es soll mit PHP's internal web server verwendet werden, die in PHP 5.4 eingeführt wurde.

Nach dem PHP-Handbuch:

Dieser Web-Server für Entwicklungszwecke konzipiert ist, und nicht in der Produktion verwendet werden soll.

Ich kann nicht genug betonen.

Wenn Sie es mit dem Laravel server.php Datei verwenden möchten, können Sie Ihre cli Kopf und den Server mit dem folgenden Befehl ein (von der Wurzel Ihrer Laravel Verzeichnis) starten:

php -S localhost:8000 server.php 

sollten Sie dann in der Lage sein, in Ihrem Webbrowser zu localhost:8000 zu gehen und Ihre Laravel-Anwendung zu verwenden.

Alternativ als Anand Capur erwähnt Sie den Server mit starten können:

php artisan serve 

Letztlich dies läuft nur die oben genannten für Sie php -S Befehl.

Optional können Sie den host und port angeben, indem Sie so etwas wie tun:

php artisan serve --port=8080 --host=local.dev 

Wie bei allen artisan Befehle können Sie diese Informationen und zusätzliche Informationen, indem Sie herausfinden:

php artisan serve --help 
12

Sie können Verwenden Sie auch den Befehl

artisan serve, die den entsprechenden Befehl ausführen wird um den Entwicklungsserver zu starten.