Деплой PHP-приложений с помощью PhpStorm
Это руководство описывает, как начать развёртывание 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]. При нажатии на кнопку с зелёным плюсиком на панели инструментов можно добавить новый веб-сервер.
Дай серверу имя и выбери его тип. Это может быть любой из следующих:
- FTP — подключение к серверу развёртывания с помощью FTP.
- SFTP — подключение к серверу развёртывания с помощью SFTP.
- FTPS — подключение к серверу развёртывания с помощью FTPS.
- Local or mounted folder (локальная или примонтированная папка) — корневая директория документов сервера развёртывания. Является доступной как локальная папка на компьютере или в виде подсоединённой папки на удалённом компьютере.
- In place (на месте) — проект PhpStorm находится в корневой директории локального веб-сервера.
Нажми кнопку OK, чтобы добавить сервер развёртывания.
Когда сервер развёртывания создаётся и настраивается в каком-либо проекте, то он и детали его подключения становятся глобальными и доступными для любого проекта открытого в PhpStorm, а параметры вкладок Mappings (отображения) и Excluded Paths (исключаемые пути) являются настройками каждого конкретного проекта. Таким образом, несколько проектов могут использовать один и тот же сервер развёртывания без необходимости настройки подключения для каждого из них в отдельности.
2.2. Настройка подключения
Теперь на вкладке Connections (подключения) ты должен указать сведения о соединении. В зависимости от типа сервера, выбранного ранее, эти параметры будут отличаться.
Но один параметр является общим для всех типов соединений — это корневой URL-адрес веб-сервера. Обычно им выступает URL-адрес до корневого каталога документов сервера.
Далее, мой друг, рассмотрим подробно параметры каждого типа соединения.
2.2.1. FTP, FTPS, SFTP
Для FTP, FTPS и SFTP конфигурации соединений более или менее похожи. Ты должен указать имя хоста, порт, корневой путь (путь на удалённом сервере, который будет использоваться в качестве корня) и учётные данные.
Кнопку Advanced options... (расширенные опции) можно использовать для настройки дополнительных параметров подключения. Обычно в этом нет необходимости, но если, например, требуется пассивный режим или ограничение на количество одновременных соединений, то эти параметры могут быть определены.
Используя кнопку Test FTP connection..., ты сможешь проверить корректность введённых ранее параметров. Ниже представлен результат успешной проверки.
2.2.2. Локальная или примонтированная папка
Для локальной или примонтированной папки ты должен указать путь, куда файлы проекта должны быть развёрнуты.
2.2.3. На месте (локальный веб-сервер)
Для подключения данного типа ты должен указать только корневой URL-адрес веб-сервера. Причина этого в том, что корневой каталог документов локального веб-сервера отображается в корне проекта твоей IDE — нет необходимости передавать такие файлы проекта куда-либо.
2.3. Настройка отображений
Отображение — это отношение между папками проекта, папками на сервере для копирования файлов проекта и URL-адресами для доступа к данным на сервере через HTTP. Эти сопоставления используются, чтобы помочь PhpStorm найти файл или папку в нашем проекте или на удалённом сервере.
Самый простой способ — отобразить всю корневую директорию проекта в корневой каталог документов сервера, где структура их папок будет идентична. На скриншоте ниже указано следующее соотношение:
Local Path (локальный путь) |
Deployment Path (путь развёртки, например, на FTP сервере) |
Web Path (URL-адрес — веб-путь) |
C:\OpenServer\domains\vpawd.lc | / | / |
В зависимости от конфигурации сервера и планировки проекта возможно указать не одно, а несколько отображений на вкладке 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 | / |
На скриншоте выше для каталога application предупреждение показано потому, что не указан Web Path (веб-путь), но для настройки данного типа приложений это нормально. Также стоит отметить, что когда у нескольких папок будут одинаковые соотношения, то применяться будет только первое.
2.4. Установка сервера по умолчанию *
Если ты используешь только один сервер развёртывания для многих проектов (часто так и бывает), имеет смысл установить его в качестве сервера по умолчанию. В окне Deployment на вкладке Mappings с использованием кнопки Use this server as default можно установить сервер по умолчанию для проекта.
2.5. Настройка исключаемых путей *
Иногда имеются пути, которые не должны быть скачаны с сервера в локальный проект или загружены на сервер при выполнении деплоя, например, директория с лог-файлами или директория, содержащая кэшированные данные шаблонов Smarty. Эти пути могут быть легко исключены на вкладке Excluded Paths.
3. Исследование сервера
После настройки сервера развёртывания ты можешь просматривать удалённый сервер с помощью пункта главного меню [Tools → Deployment → Browse Remote Host]. Он откроет новое окно инструментов в PhpStorm, в нём можно работать с удалёнными каталогами и файлами.
В приведённом выше скриншоте некоторые файлы и директории будут отображаться на зелёном фоне — они имеют право находиться в твоём локальном проекте. Это выделение зелёным цветом основано на правилах сопоставления из вкладки Mappings, созданных ранее.
Ты можешь перемещаться между соответствующими локальными и удалёнными каталогами с помощью сочетания клавиш Alt + F1.
4. Деплой файлов на сервер
Деплой файлов на сервер может быть выполнен несколькими способами. Проще всего выбрать проект, папку или отдельный файл в панели Project. Затем с помощью опции контекстного меню [Deployment → Upload to [server name]] или [Deployment → Upload to...] (если сервер по умолчанию не установлен) загрузить выделение на удалённый сервер. Также ты можешь использовать главное меню [Tools → Deployment → ...] для выбора необходимой операции развёртывания.
Ты сможешь видеть прогресс в окне File Transfer, которое откроется само.
Скачивание файлов работает аналогичным образом. Ты можешь использовать контекстное меню в окне инструмента Remote Host и опцию загрузки.
5. Перетаскивание файлов между сервером и проектом *
PhpStorm поддерживает режим перетаскивания — операции копирования и перемещения данных между панелью Project и окном инструмента Remote Host. Для использования указанного режима открой окно инструмента Remote Host с помощью главного меню [Tools → Deployment → Browse Remote Host]. Файлы и папки могут быть скопированы или перемещены от и к серверу развёртывания с помощью перетаскивания. Эта функция ведёт себя подобно функции в проводнике на твоём компьютере: по умолчанию элемент будет перемещён. Если при перетаскивании удерживается клавиша Ctrl, то файл будет скопирован. На скриншоте ниже происходит копирование файла favicon.ico из проекта на удалённый сервер.
Перетягивание удобно использовать для изучения папки на сервере, не имеющей правил сопоставления, указываемых на вкладке Mappings.
Более углубленный материал о синхронизации и деплое приложений ты можешь найти в следующей статье: Синхронизация изменений и автоматическая загрузка на сервер развёртывания в PhpStorm.
Пункт является опциональным при изучении руководства: Деплой PHP-приложений с помощью PhpStorm.