php встроенный сервер настройка
как настроить встроенный веб-сервер в PhpStorm
Я работаю над Dreamweaver довольно долго, и недавно я бросил его из-за его ограниченных возможностей. Настройка локального env с помощью Dreamweaver довольно проста, и у меня не было проблем с этим. Поэтому я установил PhpStorm, думая, что будет довольно легко запустить мое веб-приложение PHP таким же образом, когда я использую DW, но когда я пытаюсь запустить свое веб-приложение в PhpStorm, используя его встроенный веб-сервер, я получаю 502 Bad Gateway ошибка, что я сделал, это просто импортировать папку (которая находится в каталоге www) в PhpStorm и попытаться запустить ее в браузере, но я не мог заставить ее работать локально. Я считаю, что мне нужно настроить интерпретатор в настройках, но как мне идти вперед и что я должен включить?
когда я запускаю свой webapp с помощью WAMP URL-адрес выглядит как
когда я запускаю его с помощью встроенного веб-сервера PhpStorm, URL выглядит как
ошибка: 502 плохой шлюз.
Теперь я совсем застрял.
7 ответов
во-первых (проверьте ваш переводчик)
2-в настройках перейдите к PHP
второй (Добавить новый интерпретатор)
2-напишите любое имя, на которое вы хотите ссылаться (по умолчанию PHP)
3-перейдите к файлу каталога PHP из PHP home*
надеюсь, это поможет вам
*Если вы используете wamp, вы найдете его в c:\wamp\bin\php (ваша версия php)
Если вы используете xamp, вы найдете его C:\xampp\php
может быть, поможет.
после запуска PHP-сайта в браузере и получения 502 bad gateway ошибка, при переключении обратно на PHPStorm вы должны увидеть следующее сообщение:
на вашем компьютере должен быть установлен PHP. Для этого вы можете следить за установка PHP на Windows manual или если у вас есть шоколадный установлен, просто типа
выберите configure PHP Interpreter ссылке или перейти к File / Settings / PHP и выберите установку PHP для текущего проекта. Вы также можете пойти в File / Default Settings / PHP и сделать то же самое, чтобы новый проект извлек выгоду из этих настроек.
обратите внимание, что PHPStorm распознает версию PHP, но не выбирает автоматически соответствующий уровень языка. Возможно, это намеренно для проектов с обратной совместимостью.
Если вы устанавливаете WAMP server или любой другой локальный сервер на вашем ПК. как я показал ниже фотографии, вы можете установить localhost по умолчанию на WAMP server
вы должны выбрать интерпретатор для вашего PHP storm для запуска встроенного веб-сервера.
Если вы видите предупреждение «PHP interpreter is not configure» при запуске проектов в phpstrom, сделайте то, что Мина Фаузи объясняет выше. Но если вы хотите изменить номер порта, вы должны пойти в Файл > Настройки > сборка, выполнение и развертывание > отладчик
Используем встроенный в 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
Listening on localhost:8080
Document root is C:\Sites\myrusakov.lc
Press Ctrl-C to quit
Открыть сайт в браузере теперь можно по адресу http://localhost:8080. В случае, если вы явным образом не обращаетесь к какому-либо конкретному файлу, то сервер вернет по умолчанию либо index.php либо index.html из коневой директории проекта. Все запросы к адресам логируются в консоли, в которую иногда полезно заглядывать в случае возникновения ошибок.
Если же вам необходимо, чтобы локальный сайт был доступен в локальной сети, то вместо адреса localhost, необходимо сделать следующее:
Далее, нужно узнать ip адрес локального компьютера, например набрав в консоли следующую команду:
В категории адаптера в графе IPv4 и будет искомый адрес. Теперь к сайту или веб-приложению на вашей машине можно подключиться с другого компьютера или даже смартфона (по Wi-Fi) по тому адресу, который вы нашли выше, примерно так (не забудьте обязательно указать номер порта ):
Таким образом, встроенный в PHP сервер позволяет быстро развернуть и протестировать свое приложение.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Комментарии ( 1 ):
Встроенный веб-сервер PHP https://batas.kz/phpserver/
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.
Использование преимуществ встроенного PHP сервера
Используем встроенный сервер
Итак, для использования сервера нам необходим php 5.4 или выше. Для проверки версии PHP, выполните:
Так же вы можете определить доступен ли сервер в вашей сборке выполнив:
и найдите там описание параметров «-S» и «-t», которые используются только для сервера.
Для проверки сервера вы можете создать в текущей директории файл index.php, который будет содержать в себе вызов функции phpinfo() и затем запустить сервер:
И теперь вы можете увидеть содержимое отданной встроенным web-сервером:
В консоль же будет писаться каждый запрос клиента:
Возвращаясь назад, разберем параметр командной строки «-S», который используется для указания адреса, с которого сервер будет доступен. Возможные значения:
localhost — сервер будет доступен только с локальной машины,
0.0.0.0 — на любому интерфейсе машины,
Любой внешний или серый IP — только на указанном IP
Параметр «-t» устанавливает указанную директорию «directory root». Например:
Кроме того,. вы может указать имя конкретного файла-роутера. Например:
Вывод этого роутера будет парситься и выполняться сервером. Простой пример:
Если скрипт вернет FALSE, тогда запрашиваемый URI будет обрабатываться сервером, который будет выдавать запрошенный ресурс, либо вернет 404 ошибку. Если скрипт возвращает что-либо ещё, вывод скрипта передастся клиенту.
Хотя данный подход даёт нам больше контроля, есть несколько вещей, которые вы должны знать. Во-первых, PHP сервер отдаёт только минимальный набор HTTP заголовков:
D
Сравним это с заголовками, возвращаемыми сервером Apache:
Если ваше приложение использует заголовки, то оно должно учитывать разницу в development-среде и в production.
Во-вторых, встроенный сервер имеет другое SAPI (Server API). Таким образом выполняя маршрутизацию в index,php вы можете определить на тестовом или боевом сервер происходит обращение к скрипту. php_sapi_name() вернет «cli-server» на встроенном сервере:
Существует одна специальная INI директива — «cli_server.color». Данная директива возвращает раскрашенный вывод в консоли. Создайте пустой файл с именем cli-server.ini и вставьте эту строку:
Вы можете создать уникальную конфигурацию окружения для вашего сервера, указав в вашем INI файле необходимые директивы. Не объявленные директивы примут значения по-умолчанию. Сейчас мы объявили только одну директиву — cli_server.color.
Запустить сервер с параметром «-c» с указанием INI файла:
Если ваш терминал поддерживает цвета, то вы сможете увидеть «цветной» вывод в консоли. 200 статус будет выделен зеленым, 404 — оранжевым, а ошибки сценария будут выделены красным цветом.
Создаём персональный сервер
Теперь, когда вы знаете всё, что необходимо знать о встроенном сервере, давайте сделаем что-нибудь крутое. Создадим собственный портативный сервер!
Я начну со следующей структуры нашего приложения:
Папка «library» содержит код приложения, «public» — корневая директория, содержит index.php и несколько статичных файлов. Особое внимание в этом руководстве будет уделено папке «server», и поэтому наше приложение будет состоять из простого «Hello Word!» и нескольких картинок и css.
Наша цель — получить возможность запускать сервер из директории приложения одной командой, а наш сервер будет заботиться о роутинге, HTTP заголовках и ошибках.
Давайте рассмотрим сценарий запуска:
Продолжим, папка «errors» содержит файлы для сообщений об HTTP ошибках. Вот пример о 403 ошибке: хотя я и использовал только HTML, скрипт будет подключен, использую include, поэтому вы можете использовать любой php код:
Теперь посмотрим на router.php. Задача данного файла в получении и управлении всеми запросами и передавать их серверу, только если данный файл существует. Все страницы ошибку отображаются путём подключения шаблона.
В первых строках я определяю некоторые глобальные параметры, такие как DIRECTORY_INDEX, директория с шаблонами ошибок. Параметр date_default_timezone_set() должен совпадать с настройками ОС, иначе будут несоответствия между записями в логе и на сервере. Так же я добавил список разрешенных IP адресов, для повышения безопасности.
Функция logAccess() необходима, потому что когда скрипт роутинга принимает запрос лог сервера по-умолчанию игнорируется. Функция принимает только код статуса, а формат вывода полностью соответствует формату сервера.
Наша первая задача — проверка безопасности. Если IP клиента не находится в массиве разрешенных IP, выводим сообщение об ошибке и завершаем работу скрипта. Нам необходимо отдавать код статуса отличный от 200 и функция header() не будет работать в здесь, поэтому мы используем новую функцию — http_response_code.
Если IP клиента находится в массиве разрешенных IP, то следующий наш шаг — получение запрашиваемого пути и расширения файла. Если расширение пустое, считаем, что пользователь запрашивает папку и строим получаем путь, используя определенный сначала DIRECTORY_INDEX.
В завершении, если запрашиваемый файл существует, возвращаем FALSE, и позволяем серверу обратиться к файлу. Если же нет, то отображается сообщение о 404 ошибке.
Резюме
Это всё. Как видите, php сервер просто в использовании. Наш персональный сервер очень прост. Код можно оптимизировать и включать в более сложные и функциональные классы. Happy coding!
Встроенный в PHP веб-сервер — Веб-разработка на PHP
PHP, как и многие другие языки, сразу поставляется со встроенным веб-сервером. Этот веб-сервер создан исключительно для удобства разработки, так как не надо ставить ничего дополнительно, но совсем не подходит для продакшен среды. В последнем случае нужно использовать nginx.
Разработка сайтов, с точки зрения организации кодовой базы, мало отличается от разработки обычных программ. Первым делом необходимо создать директорию внутри которой будет вестись разработка сайта, а затем её следует добавить в git-репозиторий. Назовём эту директорию корнем проекта. Если проект учебный, то лучше сразу создать репозиторий на GitHub и выкладывать все эксперименты туда.
Затем нужно создать файл index.php и поместить его в корень проекта. По соглашению это главный входной файл в PHP, который автоматически ищется веб-серверами. Создайте такой файл в директории проекта со следующим содержимым:
После того как сервер будет запущен, он полностью забирает управление. Вкладка терминала больше не доступна для ввода команд. В отличие от обычных скриптов, которые выполняют свою задачу и заканчиваются, веб-сервера должны слушать порт непрерывно и сразу реагировать на входящие соединения. Поэтому однажды запустив сервер продолжит работать до тех пор, пока его не остановят. Остановить сервер можно, набрав Ctrl-C.
Такой способ запуска удобен в разработке, но в реальном окружении сервера запускают в виде демонов. Демон — процесс операционной системы, работающий в фоне.
Если в это время попытаться запустить ещё один веб-сервер в соседней вкладке на том же порту, то запуск завершится с такой ошибкой:
Failed to listen on localhost:8080 (reason: Address already in use)
В своей программистской жизни вы встретитесь с этой ошибкой не раз. Она означает, что какой-то процесс занял соответствующий порт (в данном случае 8080). В такой ситуации нужно либо остановить процесс который вам мешает, либо стартовать на другом порту.
Тело HTTP-ответа
При запуске скриптов на PHP, любая функция, печатающая на экран, предсказуемо печатает на экран:
Разработка сервера на php и системных скриптов
На stackoverflow очень много вопросов типа «какой сервер поставить для разработки на php». Многие советуют apache2 и nginx+php-fpm. Но сегодняшняя статья о такой возможности, как встроенный сервер php.
Встроенный сервер в php появился начиная с версии 5.4.0, и запускается командой:
-S — запустить сервер
localhost — хост(ip address) на котором будет сервер
8000 — порт сервера
index.php — файл обработки запросов
Роутинг сервера осуществляется с помощью php-файла, выполняющего данные функции, так вот, если этот файл возвращает `false`, то будет запрошен файл напрямую; если же это не так, то будет обрабатываться файл, который мы указали как роутер.
К примеру, если в файл index.php добавить следующее условие:
То при запросе файлов статики они будут отданы напрямую сервером, а любой другой запрос будет обработан через index.php…
Часть 2. Пишем системный скрипт и сервер на php
И так как же написать системный скрипт для linux? Ответ довольно прост — первым делом мы должны указать интерпретатор, который будет выполнять этот скрипт. Так как мы пишем скрипт на php, то и укажем его интерпретатором в первой строке:
Далее опишем те параметры, которые принимает скрипт из консоли:
Два простых if’а, которые проверяют 1 и 2 аргумент, которые будут host и port соответственно, и если это не так, то выводит функцию help().
И, наконец, дописываем инструкцию, запускающую сервер.
После того как скрипт готов, изменяем его права и закидываем в папку /usr/bin/server.
Ну вот и всё, теперь нам остаёться только зайти в папку с проектом и запустить сервер командой.
Для доступа к веб части сервера, вводим в адресную строку localhost:8080 и переходим.
Вывод: Встроенный сервер php предназначен только для разработки, и это намного экономичнее apache2 и nginx+php-fpm…