Настройка синхронизации файлов сервера с локальными через PHPStorm

Настройка синхронизации файлов сервера с локальными через PHPStorm

Автоматическая загрузка измененных файлов на сервер - очень удобная опция PHPStorm. О том как ее настроить и пойдет речь в данной статье.
Если вы еще не настроили себе виртуальную машину и не создали Drupal проект, то можете ознакомиться с тем как это сделать

Настройки, которые будут приведены ниже предполагают что у Вас уже настроен сервер, на нем находятся файлы проекта и установлен PHPStorm.

Содержание

Создание нового соединения с удаленным сервером

Исходя из предыдущих статей у нас есть установленный Drupal сайт на виртуальном сервере. Для работы с ним создадим новый проект в PHPStorm.
Для этого переходим в главном меню на вкладку File → New project from existing files и в появившемся окне выбираем нужный вариант - Web server is on remote host, files are accessible via FTP/SFTP/FTPS
new_phpstorm_project.png
Далее присваиваем имя проекту, в моем случае devsite. Настройки деплоймента пока оставим по умолчанию.
phpstorm_project_name.png
Затем выбираем опцию Add new remote server. Заполняем форму настроек как на изображении ниже. Выбираем тип соединения SFTP. SFTP host - ip адрес вашей виртуалки (как его узнать было описано в предыдущей статье). Имя пользователя - пользователь при логине к виртуальной машине. В качестве пароля указываем сгенерированный ранее ключ PuTTY Private Key (.ppk)
phpstorm_connection_settings.png
Если вы все сделали правильно, то при нажатии на кнопку Test SFTP connection должны получить такое сообщение
phpstorm_connection_success.png
Переходим к следующему этапу - выбора проектной папки. Проектная папка в моем случае - /var/www/devsite
phpstorm_remote_path.png
После указания маппинга, шторм скачает файлы в ту папку, которую Вы указали в качестве проектной.
phpstrom_downloading_files.png

Настройки синхронизации файлов сервера с локальными

Теперь настроим опции в каких случаях необходимо синхронизировать файлы с сервером. Для этого необходимо перейти на вкладку Tools → Deployment → Options через главное меню и в появившемся окне выставить необходимые параметры
phpstorm_deployment_options.png
Параметров довольно много, но наибольший интерес представляют следующие опции:

  • Upload changed files automatically to the default server - автоматическая загрузка измененных файлов на сервер с возможными вариантами (загружать всегда, по горячей клавише Ctrl + S, либо не загружать вовсе).
  • Upload external changes означает, что будут закачиваться файлы (папки) не только те, над которыми вы непосредственно ведете работу, но и те, которые, например, были добавлены раньше (и в данный момент на сервере отсутствуют).
  • Warn when uploading over newer file - предупреждать при загрузке более нового файла. В зависимости от выбранного параметра из выпадающего списка, PHPStorm будет выполнять (предлагать) варианты разрешения конфликта. Возможные параметры:
    1. No - выберите эту опцию, если необходимо, чтобы локальные изменения текущего файла всегда перезаписывали файл на удаленном сервере, вне зависимости от того был он до этого изменен или нет.
    2. Compare timestamp and size - в этом случае PHPStorm будет выполнять проверку размера локального и удаленного файлов, а также время текущей модификации удаленного файла со временем последней синхронизацией на сервере. Если есть изменения, то появится окно с вариантами: смержить результат, проигнорировать либо переписать.
    3. Compare content - сравнение содержимого локального и удаленного файлов на наличие изменений. Если таковые имеются, как и во втором варианте, будет предложены пути разрешения конфликта.
  • Notify about remote changes означает, что редактор будет показывать напоминание о том, что имеются различия в файлах. Данная опция доступна если предыдущая настройка была выставлена в Compare timestamp and size, либо в Compare content.

Можно также синхронизироваться вручную, вызвав контекстное меню по нужному файлу (папке) и выбрав пункт Deployment → Sync with Deployed to .... Опции Upload to ... и Download from... отвечают за закачку на сервер и скачку с удаленного сервера соответственно.

5 Comments

Аватар пользователя ante

Добавьте про

Добавьте про
- Warn when uploading over newer file
Выбрать пункт
- Compare content
и поставить галочку
- Notify about remote changes

по-моему эта настройка должна быть обязательной, если над проектом работать в разных местах(дома + на работе)
Или над ним работают несколько человек

Аватар пользователя nightdevel

Спасибо за дельное замечание,

Спасибо за дельное замечание, обновил статью. Действительно полезная опция. Не совсем уверен, что необходимо включать Notify about remote changes, т.к. при попытке подлить файл все равно будет выведено предупреждение

Аватар пользователя Константин

Скажите, а если второй

Скажите, а если второй разработчик добавил на сервере новый файл и внес изменения в какие-то файлы, которые еще не синхронизированы с моей локальной версией - как узнать об изменениях и создании новых файлов? Кажыдй раз делать полную загрузку с сервера по 40 мин?

Аватар пользователя Петрович

По идее PHPStorm выдаст вам

По идее PHPStorm выдаст вам сообщение о том, что произошло изменение в директории/файлах, но нужно проверять.