在Laravel 4中server.php文件的目的是什么?


What is the purpose of the server.php file in Laravel 4?

在Laravel 4的/app/目录中,有一个名为server.php的文件。该文件的内容如下所示:

<?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';

似乎这个文件是在某种程度上用来模仿Apache的mod_rewrite功能,但是我在Laravel文档中找不到任何提到它或它的使用。

我目前正在尝试在我不管理的IIS服务器上使用Laravel。我没有能力修改IIS上的URL重写模块选项(我将在未来),但如果可能的话,现在想开始使用框架。这个server.php文件似乎可能是一个权宜之计。

谁能透露一些server.php文件的目的,以及如何使用/激活它,如果目的真的是模仿Apache的mod_rewrite功能?

用于PHP 5.4中引入的内部web服务器。

根据PHP手册:

此web服务器仅用于开发目的,并且

我怎么强调都不为过。

如果你想使用它与Laravel server.php文件,你可以前往你的cli和启动服务器用以下命令(从你的Laravel目录的根目录):

php -S localhost:8000 server.php

你应该能够在你的web浏览器中转到localhost:8000并开始使用你的Laravel应用程序。

或者,正如Anand Capur提到的,您可以使用以下命令启动服务器:
php artisan serve

最终,这只是为您运行前面提到的php -S命令。

您可以选择指定hostport,执行如下操作:

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

与所有artisan命令一样,您可以通过以下命令查找此信息和其他信息:

php artisan serve --help

您也可以使用

命令

artisan serve,它将运行适当的命令来启动开发服务器。