PHP сервер на локальной машине?


161

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


1
используйте XAMPP и установите сервер PHP. иногда, если Skype использует порты 80 и 443, сервер apache не запускается. Полное решение предоставлено здесь feelzdroid.com/2015/12/install-php-server-local-machine.html
Наруто

Ответы:



380

В PHP 5.4 и более поздних версиях имеется встроенный веб-сервер .

Вы просто запускаете команду из терминала:

cd path/to/your/app
php -S 127.0.0.1:8000

Затем в вашем браузере зайдите http://127.0.0.1:8000и бум, ваша система должна быть запущена и работает. (Для этого должен быть файл index.php или index.html.)

Вы также можете добавить простой маршрутизатор

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
    return false;    // serve the requested resource as-is.
} else { 
    require_once('resolver.php');
}
?>

А затем запустите команду

php -S 127.0.0.1:8000 router.php

Ссылки:


9
В случае, если кому-то интересно, -S и ссылку на другие команды можно найти по ссылке ниже. В частности, -S означает «Запуск со встроенным веб-сервером». php.net/manual/en/features.commandline.options.php
calipoop

а как насчет баз данных, в которых они должны храниться!
Юсеф Альтаф

1
@YousefAltaf ОП не указывает погоду или не хочет, чтобы база данных использовалась. Они попросили сервер PHP, а это просто сервер PHP. Если вы хотите запустить MYSQL-сервер или PostGres-сервер, то это будет другой вопрос, и вы можете настроить свое PHP-приложение на использование указанного сервера. Также для целей быстрой разработки следует использовать БД SQLITE.
GardenRouteGold

1
PHP Встроенный веб-сервер не поддерживает параллельный запрос: The web server runs a only one single-threaded process, so PHP applications will stall if a request is blocked.. Это может вызвать проблемы с производительностью.
Викид

1
@vikyd, это не значит, что для полноценной разработки приложений это просто быстрый способ тестирования / отладки функций или кода IMHO.
GardenRouteGold

39

Это простой, надежный способ запустить ваш php-сервер локально:

php -S 0.0.0.0:<PORT_NUMBER>

Где PORT_NUMBER является целым числом от 1024 до 49151

Пример: php -S 0.0.0.0:8000

Ноты:

  1. Если вы используете, localhostа не 0.0.0.0вы можете ударить соединение отказано ошибка.

  2. Если хотите сделать веб-сервер доступным для любого интерфейса, используйте 0.0.0.0.

  3. Если в запросе URI не указан файл, возвращаются либо index.php, либо index.html в указанном каталоге.

Учитывая следующий файл (router.php)

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
    return false;    // serve the requested resource as-is.
} else { 
    echo "<p>Welcome to PHP</p>";
}
?>

Запустите это ...

php -S 0.0.0.0:8000 router.php

... и перейдите в браузере по адресу http: // localhost: 8000 /, и отобразится следующее:

Welcome to PHP

Ссылка:

Встроенный веб-сервер


4
Спасибо за подсказку о 0.0.0.0, что это за волшебное исправление - должно быть включено в принятый ответ или что-то в этом роде
calipoop

14

Я часто использую следующую команду, чтобы вращать мою платформу PHP Laravel:

$ php artisan serve --port=8080
or
$ php -S localhost:8080 -t public/

В приведенной выше команде: - Artisan - интерфейс командной строки, включенный в Laravel, который использует функцию для вызова встроенного php-сервера.

Для запуска со встроенным веб-сервером.

 php -S <addr>:<port> -T

Здесь
-S: переключиться на запуск со встроенным веб-сервером.
-T: Переключить, чтобы указать корень документа для встроенного веб-сервера.


8

Я использую WAMP . Один простой в установке мастер, множество модулей для Apache и PHP, предварительно настроенных и легко включаемых и выключаемых для соответствия вашей удаленной конфигурации.


7

Если вам нужен универсальный локальный стек разработки для любой операционной системы, где вы можете выбирать из разных версий PHP, MySQL и веб-сервера, а также не боитесь использовать Docker, вы можете выбрать Devilbox .

Devilbox - это современный и настраиваемый док-стек PHP, поддерживающий LAMP и MEAN и работающий на всех основных платформах. Основная цель - легко переключать и комбинировать любую версию, необходимую для локальной разработки. Он поддерживает неограниченное количество проектов, для которых vhosts и DNS-записи создаются автоматически. Электронная почта и популярные инструменты разработки также будут к вашим услугам. Конфигурация не нужна, так как все предварительно настроено для массового виртуального хостинга.

Начать его и запустить довольно просто:

# Get the devilbox
$ git clone https://github.com/cytopia/devilbox
$ cd devilbox

# Create docker-compose environment file
$ cp env-example .env

# Edit your configuration
$ vim .env

# Start all containers
$ docker-compose up

devilbox

Ссылки:





1

Используйте Apache Friends XAMPP . Он настроит HTTP-сервер Apache, PHP 5 и MySQL 5 (насколько я знаю, возможно, есть еще кое-что). Вам не нужно знать, как настроить Apache (или любой из модулей) для его использования.

У вас будет каталог htdocs, который будет обслуживать Apache (доступный по адресу http: // localhost / ), и вы сможете поместить туда свои файлы PHP. С моей установкой это находится в C: \ xampp \ htdocs.


1

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

Сейчас я делаю это с XAMPP на компьютере с Windows XP и (дома) с Kubuntu и стеком LAMP.



1

AppServ - это небольшая программа в Windows для запуска:

  • апаш
  • PHP
  • MySQL
  • PhpMyAdmin

Это также даст вам кнопку запуска и остановки для Apache. Что я считаю очень полезным.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.