Как настроить локальный сервер для тестирования?
================================================

Эта статья объясняет как установить простой локальный тестовый сервер на вашем компьютере, а так же основы его использования.

| Требования: | Сначала вам необходимо изучить как работает интернет, а также что такое веб-сервер (en-US). |
| --- | --- |
| Цель: | Вы научитесь как устанавливать локальный тестовый сервер. |

Локальные и удалённые файлы
---------------------------

На протяжении всего обучения, вы будете открывать примеры непосредственно в браузере — двойным кликом по HTML файлу, перетаскиванием файла в окно браузера, или через меню *File* > *Open...* и указывая необходимый HTML файл. Существует множество способов как это сделать.

Если веб-адрес начинается с `file://` в котором далее прописан путь к файлу на вашем локальном жёстком диске, значит используется локальный файл. В противоположность этому, если вы откроете на просмотр один из наших примеров, расположенных на GitHub (или пример расположенный на любом другом удалённом сервере), веб-адрес будет начинаться с `http://` или `https://`, что означает что файл был получен через HTTP.

Проблемы тестирования локальных файлов
--------------------------------------

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

* **Они содержат асинхронные запросы.** Некоторые браузеры (включая Chrome) не будут запускать асинхронные запросы (см. Fetching data from the server), если вы просто запускаете пример из локального файла. Это связано с ограничениями безопасности (для получения дополнительной информации о безопасности в Интернете, ознакомьтесь с Website security).
* **Они имеют серверный язык.** Серверные языки (например, PHP или Python) требуют специального сервера для интерпретации кода и предоставления результатов.
Запуск простого локального HTTP сервера
---------------------------------------

Чтобы обойти проблему асинхронных запросов, нам нужно протестировать такие примеры, запустив их через локальный веб-сервер. Один из самых простых способов сделать это для наших целей - использовать модуль `SimpleHTTPServer` Python.

Для этого нужно:

1. Установить Python. Если вы пользуетесь Linux или Mac OS X, всё уже готово в вашей системе. Если вы пользователь Windows, вы можете скачать установочный файл с домашней страницы Python:
    * Зайдите на python.org
    * В секции загрузок, выберите линк для Python "3.xxx".
    * Внизу страницы выберите *Windows x86 executable installer* и скачайте его.
    * После загрузки файла запустите его.
    * На первой странице инсталлятора выберите чекбокс "Add Python 3.xxx to PATH".
    * Нажмите *Install*, затем нажмите *Close* когда установка закончится.
2. Откройте командную строку (Windows)/ (OS X/Linux). Для проверки установки Python введите следующую команду:

```bash
python -V
```

3. Система вернёт вам номер версии установленной программы. В случае успешного выполнения команды `python -V` нужно перейти в директорию с вашим проектом, используя команду `cd`:

```bash
# include the directory name to enter it, for example
cd Desktop
# use two dots to jump up one directory level if you need to
cd ..
```

4. Введите команду для запуска сервера в том каталоге:

```bash
# If Python version returned above is 3.X
python -m http.server
# If Python version returned above is 2.X
python -m SimpleHTTPServer
```

5. По умолчанию это приведёт к запуску содержимого каталога на локальном веб-сервере на порту 8000. Вы можете перейти на этот сервер, перейдя на URL-адрес `localhost: 8000` в своём веб-браузере. Здесь вы увидите содержимое указанного каталога - щёлкните файл HTML, который вы хотите запустить.

**Примечание:** . Если у вас уже есть что-то на порту 8000, вы можете выбрать другой порт, запустив команду сервера, за которой следует альтернативный номер порта, например: `python -m http.server 7800` (Python 3.x) или `python -m SimpleHTTPServer 7800` (Python 2.x). Затем вы можете получить доступ к своему контенту на `localhost: 7800`.

Запуск серверных языков локально
--------------------------------

Модуль Python `SimpleHTTPServer (python 2.0) http.server (python 3.0)` полезен, но он не знает, как запускать код, написанный на таких языках, как Python, PHP или JavaScript. Чтобы справиться с этим, вам понадобится нечто большее - именно то, что вам нужно, зависит от языка сервера, который вы пытаетесь запустить. Вот несколько примеров:

* Для запуска кода на стороне сервера Python вам необходимо использовать веб-инфраструктуру Python. Вы можете узнать, как использовать структуру Django, прочитав Django Web Framework (Python). Flask также является хорошей (чуть менее тяжёлой) альтернативой Django. Чтобы запустить это, ознакомьтесь с install Python/PIP, а затем установите Flask с помощью `pip3 install flask`. На этом этапе вы сможете запустить примеры Python Flask, используя, например, `python3 python-example.py`, затем перейдя на `localhost: 5000` в свой браузер.
* Чтобы запустить серверный код Node.js (JavaScript), вам нужно использовать Node.js или фреймворк, построенный поверх него. Express - хороший выбор - см. Express Web Framework (Node.js/JavaScript).
* Чтобы запустить PHP-серверный код, вам понадобится настройка сервера, которая может интерпретировать PHP. Хорошими вариантами для локального тестирования PHP являются MAMP (Mac и Windows), AMPPS (Mac, Windows, Linux) и LAMP (Linux, Apache, MySQL и PHP / Python / Perl). Это полные пакеты, которые создают локальные настройки, позволяющие запускать базы данных Apache, PHP и MySQL.