Разное

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

24.07.2023

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: знакомство и установка — журнал «Доктайп»

На языке PHP пишут сайты и веб-приложения — блоги, интернет-магазины или социальные сети. Основная сфера применения языка PHP — это веб, то есть сайты, которые мы каждый день посещаем через браузер компьютера или смартфона.

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

Сегодня на PHP работает почти 78 миллионов сайтов.

Зачем нужен PHP

Основная задача PHP — это «оживление» HTML-страниц. Обычные HTML-страницы статичны. Это означает, что после того, как страницу создали и загрузили на сайт, при каждом обращении к этой странице браузер покажет её любому пользователю в неизменном виде.

Но этого не всегда достаточно.

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

Если использовать только HTML, то решить такие задачи не получится.

Как могут выглядеть счётчики на сайте

Здесь нам и понадобится PHP. Он позволяет изменять веб-страницу на сервере прямо перед тем, как она будет отправлена браузеру. Давайте разберёмся, как это работает.

PHP умеет исполнять код — так называемые сценарии. В ходе исполнения PHP может изменить или динамически создать любой HTML-код, который и является результатом исполнения сценария. Затем сервер отправляет этот код браузеру. При этом браузеру не известно, как была сформирована данная страница — статично сверстана верстальщиком, или динамически создана при участии PHP. Это не важно, так как браузер всегда работает только с тем, что получил от сервера.

Сценарий — это программа, которая находится на сервере и запускается в ответ на запрос от браузера.

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

Выполнение сценария также называют его интерпретацией, а сам PHP — интерпретатором.

Вы можете попрактиковаться в создании динамических страниц с помощью PHP в этом тренажёре.

Установка и использование

Самая свежая версия PHP на момент выхода статьи — PHP 8. Рекомендуем использовать её.

Где скачать PHP

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

Инструкция

Как скачать и установить OpenServer

Для тех, кто пользуется MacOS или Linux, мы подготовили отдельные инструкции.

  • Установка на MacOS
  • Установка на Linux

Настройка PHP

Большинство программ всегда имеют отдельное окно настроек, где можно указать все основные параметры этого приложения. В PHP тоже есть свои настройки, только меняются они не через интерфейс, а путём редактирования специального файла — php.ini. В файле php.ini задаются все настройки работы PHP. Из того, что нас будет интересовать в первую очередь — это режим управления ошибками, подключение дополнительных возможностей, настройки сессий и кук.

Знакомство с php.ini в официальной документации PHP

В разных ОС этот файл находится по разным путям. Проще всего пользователям сборки OpenServer — там php.ini можно открыть из главного меню.

Следующая глава


«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

ТелеграмПодкастБесплатные учебники

Fun со встроенным веб-сервером 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.
1.4/examples/ php -S локальный: 8888

Шаг 4: Готово

Готово. Откройте браузер и введите http://localhost:8888/. Теперь вы можете проверить потрясающую демонстрацию pChart.

Готовы ли вы использовать встроенный веб-сервер PHP? Как насчет того, чтобы использовать его для запуска нашего загрузчика файлов повторного использования? Веселиться!

#Конец

Надеемся, что это простое руководство помогло вам в разработке. Если вам понравился наш пост, подпишитесь на нас в Твиттере и помогите распространить информацию. Нам нужна ваша поддержка, чтобы продолжать. Если у вас есть вопросы или вы нашли наши ошибки в приведенном выше руководстве, оставьте комментарий ниже, чтобы сообщить нам об этом.

Встроенный веб-сервер | Документация PhpStorm

PhpStorm имеет встроенный веб-сервер, который можно использовать для предварительного просмотра и отладки вашего приложения. Этот сервер всегда работает и не требует ручной настройки. Все файлы проекта обслуживаются на встроенном сервере с корневым URL-адресом http://localhost:<порт встроенного сервера>/<корень проекта> в соответствии со структурой проекта.

Встроенный сервер может обслуживать только статический контент, такой как HTML, JavaScript и CSS. Чтобы использовать его с файлами PHP, вам нужен локальный интерпретатор PHP, указанный для вашего проекта. Когда интерпретатор настроен, PhpStorm автоматически запускает встроенный веб-сервер PHP и перенаправляет на него все запросы PHP, как только вы запускаете приложение PHP. Чтобы запустить приложение PHP, либо откройте файл в браузере, либо создайте специальную конфигурацию запуска/отладки и запустите ее.

Если сервер развертывания определен для этого проекта и помечен как сервер по умолчанию, файл будет обслуживаться с этого сервера. При необходимости вы все равно можете открыть страницу через встроенный веб-сервер PhpStorm. Для этого откройте нужный браузер и введите URL-адрес файла с учетом структуры проекта, используя http://localhost:<порт встроенного сервера>/<корневой каталог> в качестве корневого URL-адреса.

Дополнительные сведения о работе с серверами развертывания см. в разделе «Развертывание».

Открытие файла в веб-браузере

Чтобы открыть файл, предназначенный для отображения в веб-браузере (HTML, XML, JSP и т. д.), выполните одно из следующих действий:

  • Нажмите Alt +F2 .

  • Щелкните файл правой кнопкой мыши и выберите Открыть в браузере.

  • В главном меню выберите Вид | Открыть в браузере.

  • Используйте всплывающее окно браузера в верхней правой части окна редактора. Нажмите кнопку браузера, чтобы открыть URL-адрес файла веб-сервера, или Shift+Щелкните , чтобы открыть URL-адрес локального файла.

Действие «Открыть в браузере» недоступно для других типов файлов. Однако вы все равно можете выполнить его с помощью команды «Найти действие» Ctrl+Shift+A .

Вы также можете просматривать файлы HTML и PHP с помощью встроенного предварительного просмотра на специальной вкладке редактора.

Встроенный предварительный просмотр PhpStorm

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

Откройте встроенный предварительный просмотр PhpStorm

  • В главном меню выберите View | Откройте в браузере, а затем выберите встроенный предварительный просмотр из списка.

  • Можно также навести указатель мыши на код, чтобы отобразить всплывающие значки браузера, и нажать .

Настройка встроенного веб-сервера

Чтобы настроить параметры встроенного веб-сервера, в диалоговом окне «Настройки» ( Ctrl+Alt+S ) выберите Сборка, выполнение, развертывание | Отладчик.

Артикул

Описание

Порт

Используйте этот счетчик, чтобы указать порт, на котором работает встроенный веб-сервер. По умолчанию этот порт установлен на 63342, через который PhpStorm принимает подключения от сервисов. Вы можете установить номер порта на любое другое значение, начиная с 1024 и выше.

Может принимать внешние соединения

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

Если этот флажок снят (по умолчанию), отладчик прослушивает только локальные соединения.

Разрешить неподписанные запросы

Из соображений безопасности любой запрос к странице на встроенном сервере извне PhpStorm по умолчанию отклоняется и отображается всплывающее окно авторизации.

Чтобы получить доступ к запрошенной странице, нажмите «Копировать URL-адрес авторизации в буфер обмена» во всплывающем окне авторизации и вставьте сгенерированный токен в адресную строку браузера.

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

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