Как настроить автодеплой файлов на удаленный сервер в PHP Storm

  1. Главная
  2. Блог
  3. Полезное
  4. Как настроить автодеплой файлов на удаленный сервер в PHP Storm

Бывает необходимо сделать так, чтобы изменения на локальной копии проекта сразу выгружались на сервер. Конечно, для полноценной разработки так лучше не делать. Тем не менее, иногда такая потребность возникает. Поэтому я решил написать эту статью, чтобы она была как заметка даже для себя самого. А может поможет и вам 🙂

Пойдем по порядку.

Добавление удаленного сервера

Первым делом нужно добавить сервер, куда будем деплоить обновленные файлы. Откроем нужный проект, перейдем в настройки (Preferences) и найдем раздел «Deployment» через поиск, нажимаем на пункт «Deployment».

Далее нажимаем на плюс для добавления нового сервера:

Далее выбираем тип соединения. Можно выбрать FTP, но я настоятельно рекомендую использовать строго SFTP, т.к. это безопасней и надежней.

Далее, в появившемся окошке придумываем название сервера и нажимаем ОК:

Отлично! Настройки сервера указали

Добавление конфигурации сервера

Далее нужно указать конфигурацию подключения к серверу. Найдем пункт «SSH configuration» и нажмем на кнопку, на которую указывает стрелка на скриншоте. Возможно, если у вас нет конфигураций, то вы сразу увидите форму для параметров конфигурации.

Откроется окно SSH Configurations. У меня уже есть некоторые конфигурации, но для примера добавлю новую. Нажимаем на плюс и заполняем форму.

Если вы все указали правильно и нажмете Test Connection, то получите такое сообщение:

Далее выбираем только что созданную конфигурацию, сначала нажимаем на кнопку Apply, а потом на OK

Настройка путей (Mappings)

Теперь нас интересует вкладка «Mappings». По сути, она определяет соответствие путей на локальной машине и на сервере.

У меня при попытке открыть файловую систему сервера вылезла такая ошибка:


Это связано с особенностями работы моего хостинга и тем, что мы используем SFTP. Адрес на сервере не указан, и PHP Storm пытается обратиться в корень сервера, куда даже у меня нет доступа. Поэтому во вкладке Connection, в поле «Root path» можно воспользоваться кнопкой «Autodetect», которая сама найдет корень сервера, доступный вам.

У меня получились такие пути:

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

Настройка исключений (Excluded Paths)

Не все файлы проекта может быть нужно выгружать. Например, в случае с WordPress будет странно выгружать файл wp-config.php или директории wp-admin и wp-includes. Потому что wp-config.php для каждого сервера уникален, а директории wp-admin и wp-includes не должны участвовать в процессе разработки, т.к. это ядро системы. Поэтому будет логично выпилить их:

У меня получились такие директории:

Тут в директориях можно увидеть, что на локалке я использую XAMPP. Если хотите установить его на своем Mac, то предлагаю ознакомиться с инструкцией по установке XAMPP.

Конечно, ранее я написал, что нужно выделять нужную директорию сразу и работать только с ней. Но что если, например, вы работаете и с темой и с плагином? Тогда как раз исключения и нужны. Чтобы не грузить медиафайлы а работать только с нужными разделами, мы можем в маппингах указать директорию wp-content, а из нее исключить все ненужные директории. Например, если используете composer, то у вас есть папка vendor, в которой огромная куча файлов и директорий. Будет странно все это отслеживать и грузить на сервер. Такие вещи лучше отдельно повторно установить на сервере.

Завершение настройки сервера

Отлично! Теперь нажимаем на кнопки Apply и OK. Настройка сервера готова.

Запуск автодеплоя

После сохранения настройки сервера ничего не произойдет. Потому что теперь для нашего проекта нужно указать этот сервер и указать, что должен работать автодеплой.

Поэтому сначала идем во вкладку Tools -> Deployment -> Browse Remote Host

Так у нас откроется вкладка с файловой системой сервера. Туда и оттуда уже можно перетаскивать файлы с помощью Drag And Drop

Еще, чтобы выгрузить какой-то файл на сервер в соответствии с настроенными Mappings, можно нажать на нужный файл правой кнопкой мыши, выбрать пункт Deployment и пункт Upload to…

Но это не очень удобно. Лучше грузить все автоматически. Поэтому снова идем в пункт Tools -> Deployment -> Automatic upload

Дальше нам предложат выбрать сервер, который мы хотим использовать для автодеплоя. Выбираем тот, который мы настроили для этого проекта:

Вуаля! Теперь автодеплой должен заработать 🙂