podust
@podust

Как быть с относительными путями во встроенном web-сервере PHP?

Прошу прощения за идиотский вопрос. Такая ситуация. В PHP, как известно, есть встроенный веб-сервер, активируемый в Windows простой командой вроде:

php -S localhost:666 -t C:\projects\www

Все работает прекрасно, но есть одна мучающая меня ерунда - это проблема с относительными путями. PHP-скрипты, перенесенные с линуксового веб-сервера в Windows банально перестают работать, так как в них указаны относительные пути инкладов и подключаемых каскадных таблиц, например:

<link rel="stylesheet" type="text/css" href="style.css">


Или:

include 'action.php';

Тогда как в среде Windows требуется перелопачивать все примерно так:
<link rel="stylesheet" type="text/css" href="C:\projects\www\style.css">
include 'C:\projects\www\action.php';


Я так и не нашел такой настройки в PHP или инфы в интернете. Советуют использовать костыли типа dirname(__FILE__) или $_SERVER['DOCUMENT_ROOT'] но тут возникают всякие другие проблемы.

Подскажите - куда двигаться? Не менять же каждый раз пути при переносе скрипта с локальной машины на сервер...
  • Вопрос задан
  • 2514 просмотров
Решения вопроса 1
podust
@podust Автор вопроса
Сам задал вопрос, сам и отвечу. Вся загвоздка была в нюансе обработки путей - на локальной машине я пытался открывать в браузере так:

localhost:666/templates


А надо было так:

localhost:666/templates/


Т.е. прямой слэш в конце. Апач такое редиректит автоматом, но в PHP об этом, видимо, забыли ;) Ну и я не знал тоже - на видных местах такие подводные камни не упоминаются.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы