2012-01-25 1 views
3

Я использую PHP 5.4 RC5 и запуск сервера через терминалPHP 5.4 Встроенный в сервер, Фикс файл не найден

php -S localhost:8000 

В настоящее время с помощью Aura.Router, и в корне я index.php файл с кодом

<?php 
$map = require '/Aura.Router/scripts/instance.php'; 

$map->add('home', '/'); 

$map->add(null, '/{:controller}/{:action}/{:id}'); 

$map->add('read', '/blog/read/{:id}{:format}', [ 
    'params' => [ 
     'id' => '(\d+)', 
     'format' => '(\.json|\.html)?', 
    ], 
    'values' => [ 
     'controller' => 'blog', 
     'action' => 'read', 
     'format' => '.html', 
    ] 
]); 

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

$route = $map->match($path, $_SERVER); 
if (! $route) { 
    // no route object was returned 
    echo "No application route was found for that URI path."; 
    exit; 
} 
echo " Controller : " . $route->values['controller']; 
echo " Action : " . $route->values['action']; 
echo " Format : " . $route->values['format']; 

Запрос на http://localhost:8000/blog/read/1 работает должным образом.

Но когда точка JSON или точка HTML, как http://localhost:8000/blog/read/1.json, http://localhost:8000/blog/read/1.html приходит запрос, то PHP бросает

Not Found 
The requested resource /blog/read/1.json was not found on this server. 

Как я бегу сервер с помощью встроенного в PHP-сервер, где я могу исправить, чтобы не бросить html и json файл не найдена ошибка?

Или я хочу пойти и установить apache и включить mod rewrite и stuffs?

ответ

9

Вы пытаетесь использовать маршрутизатор скрипт для PHP встроенный веб-сервер без указания его:

php -S localhost:8000 

Вместо добавить маршрутизатор скрипт:

php -S localhost:8000 router.php 

Сценарий маршрутизатор должен либо обрабатывать запрос, если запрос соответствует, или он должен вернуть FALSE, если он хочет, чтобы стандартная маршрутизация применялась. Сравнить Built-in web server­Docs.

Я понятия не имею, если Aura.Router предлагает поддержку встроенного веб-сервера вне коробки или если он требует, чтобы вы написать адаптер для него. Как и вам нужно настроить ваш веб-сервер для этой библиотеки маршрутизаторов, вам также необходимо настроить встроенный веб-сервер. Это сценарий router.php в приведенном выше примере.

+0

Вы правы. 'php -S localhost: 8000 router.php' будет работать :). –

0

Извините, я не знаком с Aura.Router. Однако я бы использовал все, что происходит на производственном сервере. Вы можете найти некоторые неожиданные ошибки, когда вы идете в прямом эфире с проектом, если вы не синхронизируете одни и те же версии программ на тестовых и производственных серверах.

3

вы можете указать корень документа, передавая опцию -t следующим образом:

php -S localhost:8888 -t c:\xampp\htdocs