php - Laravel 4 中 server.php 文件的用途是什么?

标签 php laravel 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 documentation 中找不到任何东西提到它或它的用途。

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

如果真的是为了模拟 Apache 的 mod_rewrite 功能,谁能解释一下 server.php 文件的用途以及如何使用/激活它?

最佳答案

它应与 PHP's internal web server 一起使用在 PHP 5.4 中引入。

根据PHP手册:

This web server is designed for developmental purposes only, and should not be used in production.

我怎么强调都不过分。

如果你想将它与 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

关于php - Laravel 4 中 server.php 文件的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16919920/

相关文章:

Laravel 向路由组添加自定义中间件

mysql - Laravel eloquent 如何解析查询里面的数据 where 属性

php - Laravel Auth::attempt 如何知道 Table

php - 在 Laravel 4.1 中使用 Eloquent ORM 在同一个表中查询关系

php - Eloquent 查询不重复关联上的数据

php - 当数据库中存储在缓存中的相同数据的值发生更改时,如何更新缓存值

php - 根据多个列值对数组行进行分组和过滤

PHP 问题 : PDO Prepare() and Execute() with MYSQL IN() not working for arrays

php - 在一个查询中插入多行求和

php - Zend Framework 2 过滤/验证内容数组