Деплой PHP-приложений с помощью PhpStorm

Последнее обновление: 19.10.2015 г.
Публикация: 03.04.2015 г.
Информация

Это руководство описывает, как начать развёртывание PHP-приложений с помощью IDE PhpStorm. Ты увидишь, что такое деплой и как просто его настроить в PhpStorm. Деплой или развёртывание — это процесс перемещения кода из песочницы разработчика на реальный сервер.

Мой дорогой друг, при разработке приложений с помощью PhpStorm, скорее всего, ты следуешь одному из следующих путей:

  • Веб-сервер установлен на локальном компьютере. Исходники PhpStorm проекта находятся в корневом каталоге документов сервера. По сути, разработка происходит на веб-сервере.
  • Веб-сервер установлен на локальном компьютере. Исходники PhpStorm проекта находятся не в корневом каталоге документов сервера, а в любом другом. Разработка происходит в PhpStorm, файлы копируются в корневой каталог документов сервера для тестирования.
  • Веб-сервер установлен на другом компьютере. Исходники PhpStorm проекта хранятся на локальном компьютере. Разработка происходит в PhpStorm, файлы копируются в корневой каталог документов на сервер посредством FTP, SFTP, FTPS или с помощью общего сетевого ресурса.

Обрати внимание, другие конфигурации тоже возможны, но это самые распространённые.

В любом возможном варианте PhpStorm отличает проект от сервера. Для работы с сервером (например, для копирования или синхронизации файлов) должен быть настроен сервер развёртывания. Давай рассмотрим этот процесс подробнее, шаг за шагом.

1. Необходимые условия

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

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

2. Настройка сервера развёртывания

2.1. Создание сервера развёртывания

Создание сервера развёртывания может быть осуществлено через следующие пункты главного меню IDE: [File → Settings → Build, Execution, Deployment → Deployment] или [Tools → Deployment → Configuration]. При нажатии на кнопку с зелёным плюсиком на панели инструментов можно добавить новый веб-сервер.

PhpStorm: окно "Развёртывание"

Дай серверу имя и выбери его тип. Это может быть любой из следующих:

  • FTP — подключение к серверу развёртывания с помощью FTP.
  • SFTP — подключение к серверу развёртывания с помощью SFTP.
  • FTPS — подключение к серверу развёртывания с помощью FTPS.
  • Local or mounted folder (локальная или примонтированная папка) — корневая директория документов сервера развёртывания. Является доступной как локальная папка на компьютере или в виде подсоединённой папки на удалённом компьютере.
  • In place (на месте) — проект PhpStorm находится в корневой директории локального веб-сервера.
PhpStorm: окно "Добавление сервера"

Нажми кнопку OK, чтобы добавить сервер развёртывания.

Заметка

Когда сервер развёртывания создаётся и настраивается в каком-либо проекте, то он и детали его подключения становятся глобальными и доступными для любого проекта открытого в PhpStorm, а параметры вкладок Mappings (отображения) и Excluded Paths (исключаемые пути) являются настройками каждого конкретного проекта. Таким образом, несколько проектов могут использовать один и тот же сервер развёртывания без необходимости настройки подключения для каждого из них в отдельности.


2.2. Настройка подключения

Теперь на вкладке Connections (подключения) ты должен указать сведения о соединении. В зависимости от типа сервера, выбранного ранее, эти параметры будут отличаться.

Но один параметр является общим для всех типов соединений — это корневой URL-адрес веб-сервера. Обычно им выступает URL-адрес до корневого каталога документов сервера.

Далее, мой друг, рассмотрим подробно параметры каждого типа соединения.


2.2.1. FTP, FTPS, SFTP

Для FTP, FTPS и SFTP конфигурации соединений более или менее похожи. Ты должен указать имя хоста, порт, корневой путь (путь на удалённом сервере, который будет использоваться в качестве корня) и учётные данные.

PhpStorm: тип соединения "FTP"

Кнопку Advanced options... (расширенные опции) можно использовать для настройки дополнительных параметров подключения. Обычно в этом нет необходимости, но если, например, требуется пассивный режим или ограничение на количество одновременных соединений, то эти параметры могут быть определены.

PhpStorm: окно "Расширенные опции"

Используя кнопку Test FTP connection..., ты сможешь проверить корректность введённых ранее параметров. Ниже представлен результат успешной проверки.

PhpStorm: окно "Тест FTP соединения"

2.2.2. Локальная или примонтированная папка

Для локальной или примонтированной папки ты должен указать путь, куда файлы проекта должны быть развёрнуты.

PhpStorm: тип соединения "Локальная или примонтированная папка"

2.2.3. На месте (локальный веб-сервер)

Для подключения данного типа ты должен указать только корневой URL-адрес веб-сервера. Причина этого в том, что корневой каталог документов локального веб-сервера отображается в корне проекта твоей IDE — нет необходимости передавать такие файлы проекта куда-либо.

PhpStorm: тип соединения "На месте"

2.3. Настройка отображений

Отображение — это отношение между папками проекта, папками на сервере для копирования файлов проекта и URL-адресами для доступа к данным на сервере через HTTP. Эти сопоставления используются, чтобы помочь PhpStorm найти файл или папку в нашем проекте или на удалённом сервере.

Самый простой способ — отобразить всю корневую директорию проекта в корневой каталог документов сервера, где структура их папок будет идентична. На скриншоте ниже указано следующее соотношение:

Local Path
(локальный путь)
Deployment Path
(путь развёртки, например, на FTP сервере)
Web Path
(URL-адрес — веб-путь)
C:\OpenServer\domains\vpawd.lc / /
PhpStorm: простой способ настройки отображений

В зависимости от конфигурации сервера и планировки проекта возможно указать не одно, а несколько отображений на вкладке Mappings. Например, фреймворки Phalcon, Symfony2, Zend FrameWork, Laravel или CakePHP, как правило, используют 2 основные папки:

  • application — содержит контроллеры и код приложений;
  • public — соответствует корневой директории документов сервера и обычно содержит JavaScript, CSS и т.д.

Такой тип приложений может быть отображён следующим образом:

Local Path
(локальный путь)
Deployment Path
(путь развёртки, например, на FTP сервере)
Web Path
(URL-адрес — веб-путь)
C:\OpenServer\domains\vpawd.lc\application /application
C:\OpenServer\domains\vpawd.lc\public /public /
PhpStorm: продвинутый способ настройки отображений
Внимание

На скриншоте выше для каталога application предупреждение показано потому, что не указан Web Path (веб-путь), но для настройки данного типа приложений это нормально. Также стоит отметить, что когда у нескольких папок будут одинаковые соотношения, то применяться будет только первое.


2.4. Установка сервера по умолчанию *

Если ты используешь только один сервер развёртывания для многих проектов (часто так и бывает), имеет смысл установить его в качестве сервера по умолчанию. В окне Deployment на вкладке Mappings с использованием кнопки Use this server as default можно установить сервер по умолчанию для проекта.


2.5. Настройка исключаемых путей *

Иногда имеются пути, которые не должны быть скачаны с сервера в локальный проект или загружены на сервер при выполнении деплоя, например, директория с лог-файлами или директория, содержащая кэшированные данные шаблонов Smarty. Эти пути могут быть легко исключены на вкладке Excluded Paths.

PhpStorm: настройка исключаемых путей

3. Исследование сервера

После настройки сервера развёртывания ты можешь просматривать удалённый сервер с помощью пункта главного меню [Tools → Deployment → Browse Remote Host]. Он откроет новое окно инструментов в PhpStorm, в нём можно работать с удалёнными каталогами и файлами.

PhpStorm: окно инструмента "Remote Host"
Внимание

В приведённом выше скриншоте некоторые файлы и директории будут отображаться на зелёном фоне — они имеют право находиться в твоём локальном проекте. Это выделение зелёным цветом основано на правилах сопоставления из вкладки Mappings, созданных ранее.

Заметка

Ты можешь перемещаться между соответствующими локальными и удалёнными каталогами с помощью сочетания клавиш Alt + F1.


4. Деплой файлов на сервер

Деплой файлов на сервер может быть выполнен несколькими способами. Проще всего выбрать проект, папку или отдельный файл в панели Project. Затем с помощью опции контекстного меню [Deployment → Upload to [server name]] или [Deployment → Upload to...] (если сервер по умолчанию не установлен) загрузить выделение на удалённый сервер. Также ты можешь использовать главное меню [Tools → Deployment → ...] для выбора необходимой операции развёртывания.

PhpStorm: опции пункта меню "Deployment"

Ты сможешь видеть прогресс в окне File Transfer, которое откроется само.

PhpStorm: окно "File Transfer"

Скачивание файлов работает аналогичным образом. Ты можешь использовать контекстное меню в окне инструмента Remote Host и опцию загрузки.


5. Перетаскивание файлов между сервером и проектом *

PhpStorm поддерживает режим перетаскивания — операции копирования и перемещения данных между панелью Project и окном инструмента Remote Host. Для использования указанного режима открой окно инструмента Remote Host с помощью главного меню [Tools → Deployment → Browse Remote Host]. Файлы и папки могут быть скопированы или перемещены от и к серверу развёртывания с помощью перетаскивания. Эта функция ведёт себя подобно функции в проводнике на твоём компьютере: по умолчанию элемент будет перемещён. Если при перетаскивании удерживается клавиша Ctrl, то файл будет скопирован. На скриншоте ниже происходит копирование файла favicon.ico из проекта на удалённый сервер.

PhpStorm: пример перетаскивания файла из проекта на сервер

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

Заметка

Более углубленный материал о синхронизации и деплое приложений ты можешь найти в следующей статье: Синхронизация изменений и автоматическая загрузка на сервер развёртывания в PhpStorm.

Пункт является опциональным при изучении руководства: Деплой PHP-приложений с помощью PhpStorm.

Контрольные вопросы
Источники и дополнительные материалы