2013-06-04 9 views
34

Trong thư mục /app/ trong Laravel 4, có một tệp có tên là server.php. Nội dung của tập tin này giống như thế này:Mục đích của tệp server.php trong Laravel 4 là gì?

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

Dường như tập tin này là trong cách nọ cách kia dùng để bắt chước chức năng của Apache mod_rewrite, tuy nhiên tôi không thể tìm thấy bất cứ điều gì trong Laravel documentation đề cập đến nó hoặc nó sử dụng.

Tôi hiện đang cố gắng sử dụng Laravel trên máy chủ IIS mà tôi không quản lý. Tôi không có khả năng sửa đổi các tùy chọn module viết lại URL trên IIS (tôi sẽ trong tương lai), nhưng muốn bắt đầu làm việc với khung công tác ngay bây giờ, nếu có thể. Tệp server.php này có vẻ như nó có thể là giải pháp ngăn cách để thực hiện điều đó.

Có ai có thể làm sáng tỏ mục đích của tệp server.php và cách sử dụng/kích hoạt nó nếu mục đích thực sự mô phỏng chức năng mod_rewrite của Apache không?

Trả lời

54

Nó có nghĩa là để được sử dụng với PHP's internal web server được giới thiệu trong PHP 5.4.

Theo hướng dẫn PHP:

máy chủ web này được thiết kế cho mục đích phát triển mà thôi, và không nên được sử dụng trong sản xuất.

Tôi không thể nhấn mạnh điều này đủ.

Nếu bạn muốn sử dụng nó với các tập tin Laravel server.php bạn có thể đến cli bạn và bắt đầu các máy chủ với các lệnh sau đây (từ thư mục gốc của thư mục Laravel của bạn):

php -S localhost:8000 server.php 

Bạn nên sau đó có thể truy cập localhost:8000 trong trình duyệt web của bạn và bắt đầu sử dụng ứng dụng Laravel của bạn.

Ngoài ra như Anand Capur nêu bạn có thể khởi chạy các máy chủ với:

php artisan serve 

Cuối cùng này chỉ chạy nói trên php -S lệnh cho bạn.

Bạn có thể tùy chọn xác định hostport bằng cách làm một cái gì đó như:

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

Như với tất cả artisan lệnh bạn có thể tìm hiểu thông tin này và biết thêm chi tiết bằng cách thực hiện:

php artisan serve --help 
12

Bạn có thể cũng sử dụng lệnh

artisan serve sẽ chạy lệnh thích hợp để khởi động máy chủ phát triển.