Разное

Php сервер: PHP: Встроенный веб-сервер — Manual

01.11.1990

Как использовать встроенные веб-серверы PHP

С выхода PHP 5.4, CLI SAPI поставляется со встроенным веб-сервером. Он может быть использован для запуска ваших PHP-приложений локально во время разработки, для тестирования или для демонстрации приложения. Таким образом, вам не нужно заморачиваться конфигурацией полномасштабного веб-сервера такого, как Apache или Nginx.

Caution

Встроенный веб-сервер должен быть запущен только в контролируемом окружении. Он не создан для использования в публичных сетях.

Запустить приложение Symfony с использованием встроенного веб-сервера PHP так же легко, как выполнить команду server:start:

Это запускает веб-сервер в localhost:8000 в фоновом режиме, который обслуживает ваше приложение Symfony.

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

Note

Теперь вы можете использовать команду server:status, чтобы проверить, слушает ли веб-сервер определённый канал:

Первая команда показывает вам, будет ли ваше приложение Symfony использовать сервер чере localhost:8000, а вторая делает то же самое для 192.168.0.1:8080.

Tip

Некоторые системы не поддерживают команду server:start

, в этих случаях вы можете выполнить команду server:run. Эта команда ведёт себя немного по-другому. Вместо запуска сервера в фоновом режиме, она заблокирует текущий терминал до того, как вы её прервёте (это делается путём нажатия Ctrl и C).

Встроенный веб-сервер ожидает скрипт «маршрутизатора» (прочитайте про скрипт «маршрутизатора» на php. net) в качестве аргумента. Symfony уже передаёт такой скрипт, когда команда выполняетя в окружени prod или dev. Используйте опцию

--router в любом другом окружении, или используйте другой скрипт маршрутизатора:

Если корневой документ вашего приложения отличается от стандартного макета каталога, вам нужно передать правильную локацию, используя опцию --docroot:

Когда вы закончили, вы можете просто остановить веб-сервер, используя команду server:stop:

Как и с командой запуска, если вы опустите информацию о канале, Symfony остановит сервер, привязанный к localhost:8000. Просто передайте информацию о канале, когда веб-сервер слушает другой IP-адрес или другой порт:

Web, PHP и Apache OTUS

Начиная с версии 5.4.0, язык программирования PHP содержит встроенный веб-сервер (server), который находится в модуле CLI SAPI. В этой статье мы поговорим, как он работает, настраивается и запускается. Отдельное внимание уделим известному web-серверу Apache.

В языке программирования PHP сервер (_server) выполняет лишь один однопоточный процесс, поэтому если запрос будет заблокирован, программные приложения остановятся, причем запросы URL обслуживаются из текущей директории, где он был запущен (когда не используется опция -t, обеспечивающая явное указание корневого документа). Если URL запроса не указывает на конкретный файл, в указанной директории вернется index.php или index.html. Если же файлы не существуют, их поиск продолжится в родительской директории и т. д., причем до тех пор, пока файлы не будут обнаружены либо не будет достигнут корень документа. Когда обнаружен index.php/index.html, он возвращается, причем в $_SERVER[‘PATH_INFO’] будет последняя часть URL. В обратном случае вернется код 404.

Если в процессе запуска web сервера файл PHP указывается в командной строке, он рассматривается в качестве скрипта «маршрутизации» (как роутер). Этот скрипт выполняется лишь в начале каждого запроса HTTP. Если же скрипт возвращает false, тогда запрашиваемый ресурс возвращается как есть. В обратном случае браузеру вернется вывод скрипта.

Разработчик может настроить встроенный PHP web server таким образом, чтобы он осуществлял разветвление нескольких воркеров в целях проверки кода, требующего нескольких одновременных запросов ко встроенному веб серверу. Для этого, начиная с версии 7.4.0, надо задавать в переменной окружения число требуемых воркеров, делая это перед запуском:

Данная функция является экспериментальной. Она не поддерживается в операционной системе Windows и не предназначена для использования в production. Да и вообще, встроенный web_server обычно не предназначен для того, чтобы использовать его в production.

Запуск PHP-сервера

Запуск осуществляется следующим образом:

$ cd ~/public_html

$ php -S localhost:8000

В результате в консоли будет приблизительно такой вывод:

Listening on localhost:8000

Document root is /home/me/public_html

Press Ctrl-C to quit

После этого пишем URL-запрос:

— http://localhost:8000/;

— http://localhost:8000/myscript. html.

По итогу в консоли будет выведено примерно следующее:

Можно отметить, что до версии 7.4.0 статические ресурсы с символическими ссылками в операционной системе «Виндовс» доступны не были.

Теперь давайте выполним запуск, указав корневую директорию:

$ cd ~/public_html

$ php -S localhost:8000 -t foo/

Вывод в консоли:

В примере ниже используется скрипт маршрутизации. Запросы изображений будут их отображать, однако запросы файлов HTML вернут строку «Добро пожаловать».

Обратите внимание, что встроенный web _server не должен применяться в общедоступной сети.

CLI _server: проверка использования

Чтобы обеспечить совместное использование скрипта маршрутизации при разработке с CLI _server и далее с рабочим (production) web-сервером, применяют следующую команду:

Поддержка неподдерживаемых файловых типов

Если требуется обслуживание статических ресурсов с MIME-типами, не поддерживаемыми web CLI _server, пригодится следующий код:

$ php -S localhost:8000 router. php

Local host — так называемый локальный («местный») хост, то есть компьютер, на котором запускается программа (ПК в данном случае работает как Virtual _server).

Доступ с удаленных машин

Также у разработчика есть возможность сделать сервер на PHP доступным для всех сетевых интерфейсов на 8000 порту:

Apache HTTP _Server

Apache («Апач») — известный HTTP-сервер, имя которого заимствовано от названия племени североамериканских индейцев. Это кроссплатформенное программное обеспечение, поддерживаемое многими операционными системами:

— Linux,

— Windows,

— BSD,

— Mac OS,

— Novell NetWare,

— BeOS.

Широко известна связка Apache + PHP + MySQL.

Основные достоинства «Апача» — гибкость конфигурации и надежность. С его помощью можно подключать для предоставления данных внешние модули, применять для аутентификации пользователей СУБД, модифицировать сообщения об ошибках и многое другое. Также Apache-серверы (servers) поддерживает протокол IPv4.

Одно из преимуществ — интеграция с другим программным обеспечением и языками программирования. Есть много модулей, обеспечивающих веб-серверу Apache поддержку разных систем разработки и языков программирования. Что реализуют в модулях:

— поддержку языков программирования;

— исправление ошибок;

— добавление новых функций;

— возможность модификации основных фукнций;

— средства усиления безопасности.

Раз уж затронули тему безопасности, то тут «Апач» имеет разные механизмы, включая механизм разграничения доступа к данным. Основное:

— ограничение доступа к некоторым файлам/каталогам;

— механизм авторизации пользователей, обеспечивающий доступ к каталогу на основании HTTP- и digest-аутентификации;

— ограничение доступа к конкретным каталогам либо всему серверу, которое основано на IP-адресах пользователей;

— запрет доступа к файлам по их типу, что можно распространить как на всех пользователей, так и на некоторую их часть, к примеру, организовав запрет доступа к файлам конфигурации/базы данных.

Некоторые модули позволяют реализовывать авторизацию с помощью СУБД либо PAM.

Вдобавок ко всему, «Апачу» не проблема поддерживать механизмы CGI и FastCGI, позволяющие исполнять программы почти на любых языках программирования, включая C/C++, Lua, Java.

Если вас интересует установка и настройка Apache, обратите внимание на дополнительные ссылки ниже, где вы найдете нужную информацию.

Данная статья про server PHP написана на основании следующих материалов:

  • Page № 1: https://www.php.net/manual/ru/features.commandline.webserver.php;
  • Page № 2: https://www.php.net/manual/ru/install.unix.apache2.php.

Хотите знать больше и получить самую современную информацию? Обратите внимание на соответствующий курс в Otus:

Веб-сервер

— есть ли простой сервер разработки PHP?

Спросил

Изменено 3 года, 5 месяцев назад

Просмотрено 45 тысяч раз

82

Новинка! Сохраняйте вопросы или ответы и организуйте свой любимый контент.
Узнать больше.

При написании веб-приложений на Python очень просто запустить сервер разработки. Django и Google App Engine (GAE) поставляются с простыми серверами.

Основная функция, которую я ищу, это отсутствие конфигурации. Я хочу что-то вроде сервера разработки GAE, где вы просто передаете каталог приложения в качестве параметра при запуске сервера.

Есть ли причина, по которой с PHP это сложнее?

  • php
  • webserver

На самом деле PHP 5.4.0 недавно представил свой встроенный веб-сервер:

 cd ~/public_html
php -S локальный: 8000
 

4

Если это возможно на любой используемой вами платформе, PHP 5.4 имеет сервер разработки, подобный Django.

Вам также может понадобиться фрагмент кода, который я использую для обнаружения сервера разработки и воспроизведения двух наиболее распространенных вариантов использования mod_rewrite. (Скрытие

index. php в URL-адресах и передача статических файлов для обслуживания)

(Да, для этого есть встроенный переключатель командной строки, но он не совсем соответствует фрагменту кода mod_rewrite, который использует большинство людей, и вызвало у меня ложные ошибки 404 из-за этого несоответствия.)

Используйте XAMPP: http://www.apachefriends.org/en/xampp.html Его легко установить и настроить.

РЕДАКТИРОВАТЬ:
начиная с PHP 5.4 (который был выпущен через 2 года после этого ответа) есть встроенный веб-сервер. Сегодня это неточно, пожалуйста, используйте метод, предоставленный k0pernikus в его ответе.

3

Попробуйте использовать пакет

файл
  1. Открыть блокнот
  2. php -S локальный: 8000
  3. сохранить файл с расширением .bat => server.bat
  4. теперь нажмите server.bat , ваш сервер готов на http://localhost:8000.

DEP

если вы получили ошибку php не распознает внутреннюю или внешнюю команду затем перейдите к переменной среды и отредактируйте путь к php.

exe

 "C:\wamp\bin\php\php5.4.3"
 Обновление 

: я разработал версию на основе докера, которую я начал использовать вместо easy_php_dev: localdev

easy_php_dev делает многосайтовую разработку php очень простой и быстрой. Единственным ограничением является то, что он предназначен только для OSX. Раскрытие информации: я автор.

0

Когда мне нужен быстрый веб-сервер php для локального тестирования, я использую QuickPHP

1

Мы разработали очень маленький сервер разработки, поведение которого аналогично серверу разработки django.

Софт называется sng и работает с php и nginx. Он сделан на javascript и nodejs, вы можете легко установить его с помощью npm:

 npm install sng
 

AppServ всегда прекрасно настраивает все, что вам нужно!

Развлечение со встроенным веб-сервером Php

Резервные копии серверов, баз данных, приложений и Laravel — получите полную защиту с помощью SnapShooter

  • Развлекайтесь со встроенным веб-сервером PHP
    • Введение
    • Применение
    • Запуск pChart на встроенном веб-сервере PHP
    • Конец

Если вы еще не слышали, возможно, вам следует знать, начиная с PHP 5.

4, в PHP есть встроенный веб-сервер. В этом уроке мы научим вас, как использовать встроенный веб-сервер PHP. И покажем вам, как мы можем использовать преимущества этого простого веб-сервера для забавных вещей.

#Introduction

Первый вопрос, который приходит на ум, когда в PHP 5.4 появился встроенный веб-сервер: зачем нам нужен встроенный сервер PHP, если у нас уже есть Apache/Nginx? И у нас также есть несколько хорошо упакованных инструментов, таких как WAMP и XAMPP. Ответ указан на официальной странице PHP. Этот веб-сервер был разработан для помощи в разработке приложений. Это не полнофункциональный веб-сервер, поэтому мы не должны использовать его для производства.

Однако, поскольку он поставляется с PHP, он очень удобен, когда нам нужно раскрутить веб-сервер для тестирования или разработки. Это избавляет нас от установки какого-либо реального сервера или других сторонних инструментов. В разделе 3 этого руководства мы используем встроенный веб-сервер PHP для запуска примеров pChart. Это легко и быстро. Вы можете применять те же методы, когда захотите что-то проверить.

#Usage

В этом разделе мы рассмотрим пару простых команд для веб-сервера PHP.

Запуск сервера

 php -S localhost:8000
 

Он будет рассматривать текущий каталог как корневой каталог документа, и если в запросе не указан файл, то обслуживаются либо index.php, либо index.html в данном каталоге. Вы сможете посетить сайт по URL-адресу localhost:8000

в качестве URL-адреса из любого браузера.

Указание корневого каталога документа

 php -S localhost:8000 -t foo/
 

Параметр -t позволяет указать корневой каталог документа. В приведенном выше примере запрос будет обслуживаться из каталога foo .

Использование файла маршрутизатора

 php -S localhost:8000 router.php
 

В некоторых случаях вы можете захотеть использовать сторонний маршрутизатор для обслуживания запроса. Вы можете сделать это легко, предоставив файл маршрутизатора дополнительно.

Как видите, встроенный веб-сервер PHP — это простой в использовании веб-сервер, который не требует сложной настройки. Он идеально подходит для целей разработки и тестирования.

#Запуск pChart на встроенном веб-сервере PHP

Чтобы продемонстрировать, как мы можем повеселиться со встроенным веб-сервером PHP. Мы покажем вам, как легко и быстро настроить примеры pChart на нашем локальном компьютере. Краткая информация о pChart, это серверная библиотека построения графиков. Это означает, что для работы требуется сервер.

Начнем.

Шаг 1: Загрузите pChart

 curl -LOk http://www.pchart.net/release/pChart2.1.4.tar
 

Мы используем Mac, и нам удобно работать с Терминалом. Не стесняйтесь загружать его напрямую.

Шаг 2. Извлеките файл zip/tar

 tar -xzf pChart2.1.4.tar
 

Шаг 3: Запустите сервер

 cd pChart2.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *