Настройка синхронизации файлов сервера с локальными через PHPStorm
Опубликовано вс, 22/02/2015 - 23:52
Автоматическая загрузка измененных файлов на сервер - очень удобная опция PHPStorm. О том как ее настроить и пойдет речь в данной статье.
Если вы еще не настроили себе виртуальную машину и не создали Drupal проект, то можете ознакомиться с тем как это сделать
Настройки, которые будут приведены ниже предполагают что у Вас уже настроен сервер, на нем находятся файлы проекта и установлен PHPStorm.
Содержание
Создание нового соединения с удаленным сервером
Исходя из предыдущих статей у нас есть установленный Drupal сайт на виртуальном сервере. Для работы с ним создадим новый проект в PHPStorm.
Для этого переходим в главном меню на вкладку File → New project from existing files и в появившемся окне выбираем нужный вариант - Web server is on remote host, files are accessible via FTP/SFTP/FTPS
Далее присваиваем имя проекту, в моем случае devsite. Настройки деплоймента пока оставим по умолчанию.
Затем выбираем опцию Add new remote server. Заполняем форму настроек как на изображении ниже. Выбираем тип соединения SFTP. SFTP host - ip адрес вашей виртуалки (как его узнать было описано в предыдущей статье). Имя пользователя - пользователь при логине к виртуальной машине. В качестве пароля указываем сгенерированный ранее ключ PuTTY Private Key (.ppk)
Если вы все сделали правильно, то при нажатии на кнопку Test SFTP connection должны получить такое сообщение
Переходим к следующему этапу - выбора проектной папки. Проектная папка в моем случае - /var/www/devsite
После указания маппинга, шторм скачает файлы в ту папку, которую Вы указали в качестве проектной.
Настройки синхронизации файлов сервера с локальными
Теперь настроим опции в каких случаях необходимо синхронизировать файлы с сервером. Для этого необходимо перейти на вкладку Tools → Deployment → Options через главное меню и в появившемся окне выставить необходимые параметры
Параметров довольно много, но наибольший интерес представляют следующие опции:
- Upload changed files automatically to the default server - автоматическая загрузка измененных файлов на сервер с возможными вариантами (загружать всегда, по горячей клавише Ctrl + S, либо не загружать вовсе).
- Upload external changes означает, что будут закачиваться файлы (папки) не только те, над которыми вы непосредственно ведете работу, но и те, которые, например, были добавлены раньше (и в данный момент на сервере отсутствуют).
- Warn when uploading over newer file - предупреждать при загрузке более нового файла. В зависимости от выбранного параметра из выпадающего списка, PHPStorm будет выполнять (предлагать) варианты разрешения конфликта. Возможные параметры:
- No - выберите эту опцию, если необходимо, чтобы локальные изменения текущего файла всегда перезаписывали файл на удаленном сервере, вне зависимости от того был он до этого изменен или нет.
- Compare timestamp and size - в этом случае PHPStorm будет выполнять проверку размера локального и удаленного файлов, а также время текущей модификации удаленного файла со временем последней синхронизацией на сервере. Если есть изменения, то появится окно с вариантами: смержить результат, проигнорировать либо переписать.
- Compare content - сравнение содержимого локального и удаленного файлов на наличие изменений. Если таковые имеются, как и во втором варианте, будет предложены пути разрешения конфликта.
- Notify about remote changes означает, что редактор будет показывать напоминание о том, что имеются различия в файлах. Данная опция доступна если предыдущая настройка была выставлена в Compare timestamp and size, либо в Compare content.
Можно также синхронизироваться вручную, вызвав контекстное меню по нужному файлу (папке) и выбрав пункт Deployment → Sync with Deployed to .... Опции Upload to ... и Download from... отвечают за закачку на сервер и скачку с удаленного сервера соответственно.
9 Comments
ante - пт, 20/03/2015 - 13:57
Добавьте про
Добавьте про
- Warn when uploading over newer file
Выбрать пункт
- Compare content
и поставить галочку
- Notify about remote changes
по-моему эта настройка должна быть обязательной, если над проектом работать в разных местах(дома + на работе)
Или над ним работают несколько человек
nightdevel - ср, 25/03/2015 - 01:52
Спасибо за дельное замечание,
Спасибо за дельное замечание, обновил статью. Действительно полезная опция. Не совсем уверен, что необходимо включать Notify about remote changes, т.к. при попытке подлить файл все равно будет выведено предупреждение
Константин - вс, 25/09/2016 - 01:32
Скажите, а если второй
Скажите, а если второй разработчик добавил на сервере новый файл и внес изменения в какие-то файлы, которые еще не синхронизированы с моей локальной версией - как узнать об изменениях и создании новых файлов? Кажыдй раз делать полную загрузку с сервера по 40 мин?
Петрович - вс, 25/09/2016 - 19:51
По идее PHPStorm выдаст вам
По идее PHPStorm выдаст вам сообщение о том, что произошло изменение в директории/файлах, но нужно проверять.
Дмитрий - вс, 23/07/2017 - 15:33
Спасибо за подсказку, перешел
Спасибо за подсказку, перешел с sublime и там привык к этой функции, теперь ее тут искал)
Vitalii - пт, 06/09/2019 - 17:14
да, это понятно. А если
да, это понятно. А если закрыть phpstorm то отправка файлов (например: по ctrl+s) работать не будет. Как настроить уже с сохранённым ftp?
Лев Ануфриев - чт, 06/05/2021 - 18:28
У меня функция автоматической
У меня функция автоматической загрузки заработала только после перезагрузки программы - до этого не срабатывала - возможно кому будет полезно...
test - чт, 01/07/2021 - 09:51
а написать что такое маппинг?
а написать что такое маппинг? где его указывать? абсолютно не понятно(
nightdevel - пт, 09/07/2021 - 11:27
маппинг в данном случае -
маппинг в данном случае - указание соответствующего пути к проекту на сервере и на жестком диске Windows.