dimayakovlev.ru


Удобный запуск встроенного веб-сервера PHP в Microsoft Windows

Встроенный веб-сервер - новая возможность, добавленная в PHP 5.4. Предназначение встроенного веб-сервера PHP - повышение удобства разработки веб-приложений, возможность тестового или демонстрационного запуска приложений в полностью контролируемом окружении.

Это именно то, что нужно для начинающего разработчика, изучающего основы программирования на языке PHP, но не желающего или не имеющего возможности установки и настройки полноценного веб-сервера, такого как Apache, nginx, IIS и других.

Рассматриваемое решение позволяет запустить встроенный веб-сервер PHP с помощью bat-файла, для директории или файла, непосредственно из проводника Microsoft Windows с использованием команды контекстного меню Send to (Отправить).

Для начала следует создать bat-файл, содержащий следующий код:

echo off
set host=localhost
set port=8888
if exist "%~1\" (
  echo on
  explorer http://%host%:%port%
  php -S %host%:%port% -t "%~1"
) else (
  echo on
  explorer http://%host%:%port%/%~nx1
  php -S %host%:%port% -t "%~dp1"
)

В приведённом коде объявлены две переменные: host и port. Переменная host содержит адрес локального веб-сервера, переменная port - номер используемого порта. Исходя из особенностей рабочего окружения, целей использования веб-сервера или личных предпочтений, значения этих переменных могут быть изменены.

Для добавления новой команды в контекстное меню Send to (Отправить) следует переместить созданный файл в директорию shell:sendto. Если всё было сделано правильно, в списке команд появится имя перемещённого bat-файла.

Контекстное меню Send to (Отправить), содержащее новый пункт для созданного bat-файла

Теперь, для запуска встроенного веб-сервера PHP, достаточно вызвать контекстное меню для директории или файла, и выбрать в нём команду Send to (Отправить). При выборе файла, запущенный веб-сервер, в качестве корневой директории будет использовать директорию, содержащую выбранный файл.

Вид консоли после запуска встроенного веб-сервера PHP

Не смотря на всё удобство и простоту рассмотренного решения, важно помнить, что для использования в качестве рабочего веб-сервера в общедоступных сетях, встроенный веб-сервер PHP использоваться не должен. Кроме того, при его использовании возникнут проблемы в работе приложений, требующих обязательной поддержки mod_rewrite и конфигурационных файлов .htaccess веб-сервера Apache.