43

在 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 的功能,但是我在Laravel 文档mod_rewrite中找不到任何提及或使用它的内容。

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

如果目的真的是为了模拟 Apache 的功能,任何人都可以阐明server.php文件的目的以及如何使用/激活它吗?mod_rewrite

4

2 回答 2

63

它旨在与PHP 5.4 中引入的PHP 的内部 Web 服务器一起使用。

根据PHP手册:

此 Web 服务器仅用于开发目的,不应在生产中使用。

我怎么强调都不过分。

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

php -S localhost:8000 server.php

然后,您应该可以前往localhost:8000您的网络浏览器并开始使用您的 Laravel 应用程序。

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

php artisan serve

最终,这只是为您运行上述php -S命令。

您可以选择指定hostandport通过执行以下操作:

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

与所有artisan命令一样,您可以通过执行以下操作找到此信息和其他信息:

php artisan serve --help
于 2013-06-04T15:09:25.793 回答
13

你也可以使用命令

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

于 2013-06-06T19:27:26.530 回答