PHP. Запуск встроенного веб сервера

Начиная с версии 5.4.0 — PHP содержит встроенный веб сервер, который можно запустить одной командой.
Данный вер сервер был создан для помощи в разработке, когда нужно что-то быстро проверить, разработать или продемонстрировать.
По этому не рекомендуется его использовать для полноценного веб сервера или на реальных, общедоступных проектах.
Так-же это может понадобиться, когда очень нужно запустить проект, но не хочется для этого устанавливать веб сервера apache, nginx или встроенные сборки серверов, такие как: xampp, openserver, mamp, lamp, vartigo и др.
Для запуска встроенного веб сервера необходимо перейти в папку с разрабатываемым приложением:
И выполнить команду:
Где localhost — хост запускаемого сервера.
8000 — Порт запускаемого вер сервера.
Так-же сервер можно запустить из любой директории. Для этого достаточно указать путь корневой директории.
Как запустить php на локальном сервере
This web server is designed to aid application development. It may also be useful for testing purposes or for application demonstrations that are run in controlled environments. It is not intended to be a full-featured web server. It should not be used on a public network.
The web server runs only one single-threaded process, so PHP applications will stall if a request is blocked.
URI requests are served from the current working directory where PHP was started, unless the -t option is used to specify an explicit document root. If a URI request does not specify a file, then either index.php or index.html in the given directory are returned. If neither file exists, the lookup for index.php and index.html will be continued in the parent directory and so on until one is found or the document root has been reached. If an index.php or index.html is found, it is returned and $_SERVER['PATH_INFO'] is set to the trailing part of the URI. Otherwise a 404 response code is returned.
If a PHP file is given on the command line when the web server is started it is treated as a "router" script. The script is run at the start of each HTTP request. If this script returns false , then the requested resource is returned as-is. Otherwise the script's output is returned to the browser.
Standard MIME types are returned for files with extensions: .3gp, .apk, .avi, .bmp, .css, .csv, .doc, .docx, .flac, .gif, .gz, .gzip, .htm, .html, .ics, .jpe, .jpeg, .jpg, .js, .kml, .kmz, .m4a, .mov, .mp3, .mp4, .mpeg, .mpg, .odp, .ods, .odt, .oga, .ogg, .ogv, .pdf, .pdf, .png, .pps, .pptx, .qt, .svg, .swf, .tar, .text, .tif, .txt, .wav, .webm, .wmv, .xls, .xlsx, .xml, .xsl, .xsd, and .zip.
| Version | Description |
|---|---|
| 5.5.12 | .xml, .xsl, and .xsd |
| 5.5.7 | .3gp, .apk, .avi, .bmp, .csv, .doc, .docx, .flac, .gz, .gzip, .ics, .kml, .kmz, .m4a, .mp3, .mp4, .mpg, .mpeg, .mov, .odp, .ods, .odt, .oga, .pdf, .pptx, .pps, .qt, .swf, .tar, .text, .tif, .wav, .wmv, .xls, .xlsx, and .zip |
| 5.5.5 | |
| 5.4.11 | .ogg, .ogv, and .webm |
| 5.4.4 | .htm and .svg |
| Version | Description |
|---|---|
| 7.4.0 | You can configure the built-in webserver to fork multiple workers in order to test code that requires multiple concurrent requests to the built-in webserver. Set the PHP_CLI_SERVER_WORKERS environment variable to the number of desired workers before starting the server. This is not supported on Windows. This experimental feature is not intended for production usage. Generally, the built-in Web Server is not intended for production usage. Используем встроенный в PHP сервер
При разработке сайтов на локальной машине мы обычно используем либо Denwer, либо OpenServer либо еще какой-то пакет разработчика сайтов. Но начиная с версии 5.4 в PHP есть встроенный веб-сервер. Он может быть запущен через командную строку в Windows, Mac или Linux. Для этого необходимо выполнить команду cd для перехода в директорию, в которой находятся файлы проекта и запустить в этой директории встроенный PHP сервер: C:\> php –S localhost:8080 Эта команда запустит в консоли веб-сервер, который будет доступен в браузере по соответствующему адресу на порту 8080. Сервер может быть остановлен нажатием клавиш Ctrl-C. Корневой директорией в данном случае будет текущая папка: PHP 7.1.1 Development Server started at Mon Dec 17 11:56:05 2018 Press Ctrl-C to quit Открыть сайт в браузере теперь можно по адресу http://localhost:8080. В случае, если вы явным образом не обращаетесь к какому-либо конкретному файлу, то сервер вернет по умолчанию либо index.php либо index.html из коневой директории проекта. Все запросы к адресам логируются в консоли, в которую иногда полезно заглядывать в случае возникновения ошибок. Если же вам необходимо, чтобы локальный сайт был доступен в локальной сети, то вместо адреса localhost, необходимо сделать следующее: C:\> php –S 0.0.0.0:8080 Далее, нужно узнать ip адрес локального компьютера, например набрав в консоли следующую команду: В категории адаптера в графе IPv4 и будет искомый адрес. Теперь к сайту или веб-приложению на вашей машине можно подключиться с другого компьютера или даже смартфона (по Wi-Fi) по тому адресу, который вы нашли выше, примерно так (не забудьте обязательно указать номер порта ): http://X.X.X.X:8080 , где X.X.X.X – это адрес IPv4 Таким образом, встроенный в PHP сервер позволяет быстро развернуть и протестировать свое приложение.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)! Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov. Если Вы не хотите пропустить новые материалы на сайте, Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы. Порекомендуйте эту статью друзьям: Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте): Она выглядит вот так: Комментарии ( 1 ):Встроенный веб-сервер PHP https://batas.kz/phpserver/ Для добавления комментариев надо войти в систему. Использование преимуществ встроенного PHP сервераИтак, для использования сервера нам необходим php 5.4 или выше. Для проверки версии PHP, выполните: Так же вы можете определить доступен ли сервер в вашей сборке выполнив: и найдите там описание параметров "-S" и "-t", которые используются только для сервера. И теперь вы можете увидеть содержимое отданной встроенным web-сервером: Возвращаясь назад, разберем параметр командной строки "-S", который используется для указания адреса, с которого сервер будет доступен. Возможные значения: Кроме того,. вы может указать имя конкретного файла-роутера. Например: Вывод этого роутера будет парситься и выполняться сервером. Простой пример: Если скрипт вернет FALSE, тогда запрашиваемый URI будет обрабатываться сервером, который будет выдавать запрошенный ресурс, либо вернет 404 ошибку. Если скрипт возвращает что-либо ещё, вывод скрипта передастся клиенту. Если ваше приложение использует заголовки, то оно должно учитывать разницу в development-среде и в production. Существует одна специальная INI директива — «cli_server.color». Данная директива возвращает раскрашенный вывод в консоли. Создайте пустой файл с именем cli-server.ini и вставьте эту строку: Вы можете создать уникальную конфигурацию окружения для вашего сервера, указав в вашем INI файле необходимые директивы. Не объявленные директивы примут значения по-умолчанию. Сейчас мы объявили только одну директиву — cli_server.color. Если ваш терминал поддерживает цвета, то вы сможете увидеть «цветной» вывод в консоли. 200 статус будет выделен зеленым, 404 — оранжевым, а ошибки сценария будут выделены красным цветом. Создаём персональный серверТеперь, когда вы знаете всё, что необходимо знать о встроенном сервере, давайте сделаем что-нибудь крутое. Создадим собственный портативный сервер! Давайте рассмотрим сценарий запуска: Я предполагаю, что скрипт запускается из директории приложения, поэтому INIFILE, DOCROOT, ROUTER определяются используя pwd. Путь до php определяется используя команду which. Если php не был найден в пользовательском $PATH, то скрипт завершит работу ошибкой. Продолжим, папка «errors» содержит файлы для сообщений об HTTP ошибках. Вот пример о 403 ошибке: хотя я и использовал только HTML, скрипт будет подключен, использую include, поэтому вы можете использовать любой php код: Теперь посмотрим на router.php. Задача данного файла в получении и управлении всеми запросами и передавать их серверу, только если данный файл существует. Все страницы ошибку отображаются путём подключения шаблона. В первых строках я определяю некоторые глобальные параметры, такие как DIRECTORY_INDEX, директория с шаблонами ошибок. Параметр date_default_timezone_set() должен совпадать с настройками ОС, иначе будут несоответствия между записями в логе и на сервере. Так же я добавил список разрешенных IP адресов, для повышения безопасности. РезюмеЭто всё. Как видите, php сервер просто в использовании. Наш персональный сервер очень прост. Код можно оптимизировать и включать в более сложные и функциональные классы. Happy coding! |

