Введение
Мало кто знает, но начиная с версии PHP 5.4 этот язык программирования имеет встроенный web-сервер. В этой статье мы рассмотрим его запуск и использование в ОС Windows.
Если у вас не настроен обработчик PHP в системе:
- Скачиваем с официального сайта нужную нам версию: http://windows.php.net/download/
- Распаковываем в удобную директорию (у меня это D:\PHP)
- Кликаем на кнопке «мой компьютер» правой кнопкой мыши – выбираем «свойства» - «дополнительные параметры системы» - «дополнительно» - «переменные среды» - переменная «path»
- В значениях этой переменной перечислены пути разделенные ; - добавляем путь к папке с нашим PHP.
- Поздравляю! Теперь в вашей командной строке windows доступна команда php.
Запуск и настройка сервера
Теперь пришло время запустить сервер. Для этого откроем терминал и перейдем в папку с сайтом. После чего вызовем команду
php -S localhost:80
либо можно использовать такую команду:
php -S localhost:80 -t D:\Path\To\Site
В данном примере флаг -t
используется для указания пути к папке с исполняемыми скриптами PHP.
флаг -S
указывает на то, что нужно запустить php сервер по адресу localhost
на 80 порте.
localhost
можно также указать любой IP адрес по которому будет доступен сайт. Это особенно удобно, если вы используете локальную сеть.
Иногда приложению необходимо указать специфичные настройки php.ini. Для этого предусмотрен флаг -c
, позволяющий явно указать путь к такому файлу настроек.
php -S localhost:80 -c path/to/php.ini
Хорошим примером, в таких случаях, является хранить php.ini в корневой директории вашего приложения. Это может облегчить доступ к настройкам для других разработчиков, если вы работаете в команде и используете общий (сетевой) доступ к приложению. Также это позволяет выгружать файл настроек в систему контроля версий.
php -S localhost:80 router.php
Сценарий маршрутизации будет запускаться перед каждым HTTP-запросом.
Стоит подметить, что после запуска сервера каждый HTTP запрос отображается в терминале. Благодаря этому можно, например, заметить когда сайт вернет 400 или 500 ошибку. Вообще терминал при включенном web-сервере выполняют функцию онлайн-мониторинга состояний приложения.