Начиная с версии 5.4 PHP содержит встроенный web-сервер, который можно использовать на этапе разработки и тестирования web-приложений. Как упростить запуск этого сервера в контексте нужного проекта?
Наиболее правильный способ заниматься web-разработкой на PHP — установить (возможно, в виртуальной машине) Linux с web-сервером, PHP-транслятором и сервером базы данных. Если же и настройка всех компонентов соответствует «продуктовому» серверу (только с расширенными предупреждениями и сообщениями об ошибках), то лучше и придумать ничего нельзя. Отлаженные в такой среде модули будут ожидаемо вести себя в реальной жизни.
Тем не менее, продолжают развиваться проекты для быстрого развёртывания среды разработки под управлением Windows: «Денвер», «EasyPHP» и другие сборки. Они содержат настроенный инструментарий и достаточно успешно моделируют среду работы сайта.
Но состав таких комбайнов может показаться излишне роскошным, если нужно отладить небольшой сценарий. Большую часть работы можно выполнить, используя лишь PHP-интерпретатор в режиме командной строки. Однако для моделирования информационного обмена по протоколу HTTP, обработки форм и тестирования AJAX без web-сервера не обойтись.
В этих случаях можно воспользоваться web-сервером, который встроен в php.exe, начиная с версии 5.4. О его возможностях, конфигурировании и способах применения написано уже немало. Поэтому в этой заметке я хочу остановиться на вопросах создания с его помощью минималистичной, но комфортной среды PHP-разработчика под Windows.
Предполагается, что для запуска сервера нужно открыть окно командной строки, перейти в папку с файлами web-проекта и выполнить команду:
C:PHP5php.exe -S 127.0.0.1:8080
Где 127.0.0.1 — IP-адрес интерфейса, который будет «прослушиваться» web-сервером, а 8080 — номер порта, на котором будут приниматься HTTP-запросы.
Вот, в общем-то, и всё. Открываем браузер, вводим в адресной строке «http://localhost:8080/» и, если в папке с проектом имеется файл index.php или index.html, можем наблюдать в окне браузера результат его работы.
Сервером можно пользоваться и в таком варианте, но гораздо удобнее иметь возможность запускать его с помощью контекстного меню над любой папкой. Тогда удастся оперативно проверить, как будет вести себя скрипт, если к нему изменится относительный путь, без перемещения папки с содержимым проекта, а запустив сервер над какой-нибудь папкой, находящейся ближе к корню по иерархии. Или же такой способ можно использовать просто для быстрого переключения между проектами, которые разбросаны в различных папках на диске.
Чтобы такую возможность реализовать, лучше всего добавить путь к папке с программой php.exe к значению переменной окружения PATH, а в системный реестр Windows внести следующую информацию:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOTDirectoryBackgroundshellphpsrv] @="PHP server" "NoWorkingDirectory"="" "Extended"="" [HKEY_CLASSES_ROOTDirectoryBackgroundshellphpsrvcommand] @="cmd.exe /s /c "cd /D "%V" && php.exe -S 127.0.0.1:8080"" [HKEY_CLASSES_ROOTDirectoryshellphpsrv] @="PHP server" "NoWorkingDirectory"="" "Extended"="" [HKEY_CLASSES_ROOTDirectoryshellphpsrvcommand] @="cmd.exe /s /c "cd /D "%V" && php.exe -S 127.0.0.1:8080""
После выполнения этих изменений достаточно
extension_dir = "C:/PHP5/EXT"
sendmail_from = [email protected]
date.timezone = "Europe/Minsk"
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.