Деплоймент (deployment) - очень важный момент в работе разработчика. Я напомню, что локальную разработку я веду на FreeBSD VM, на которой настроены все необходимые веб-сервисы. Данный способ разработки позволяет эмулировать реальную среду продакшена, где будет работать мой код. Раньше я просто расшаривал свои проекты по Samba, сканировал необходимую папку и работал с ней удаленно. У данного способа есть большой минус - скорость работы. PhpStorm индексит по Samba очень медленно, иногда может надолго подвисать.
Потому сейчас я работаю с локальной папкой, а PhpStorm все автоматически аплоадит (деплоит) по SFTP на виртуальную машину. Так IDE работает быстрее, индексация проекта теперь занимает намного меньше времени.
Перейдем от слов в делу. Допустим, у меня есть локальная папка "community" с Magento CE и такая же папка на VM.
1. Открываем настройки деплоймента Project Settings => Deployment:
2. Добавляем новый сервер. Для этого нужно нажать на плюсик, дать ему имя и выбрать тип соединения. В моем случае это SFTP:
3. Заполняем табу "Connection":
Стоит заметить, что в поле "Root path" лучше указывать директорию VM, в которой лежат все ваши проекты, чтобы можно было использовать данный сервер и для их деплоя.
4. Заполняем табу "Mappings":
- "Local path": локальная папка с проектом
- "Deployment path on server '%YOUR_SERVER_NAME%'": удаленная папка с проектом
5. Заполняем табу "Excluded Paths":
Здесь можно настроить папки, которые мы не ходим деплоить на VM и наоборот. В данном случае я указал что не хочу получать с удаленного сервера содержимое папки "var", в которой хранится кеш, репорты, логи и прочая служебная информация о проекте.
6. Настраиваем автоматический аплоад на удаленный сервер, чтобы после каждого сохранения файла, он PhpStorm отправлял его на сервер. Для этого нужно зайти в Project Settings => Deployment => Options и выставить чекбоксы вот так:
Поздравляю, все настроено. Открываем любой файл, делаем в нем изменение, сохраняем и видим что PhpStorm автоматически загрузил этот файл на сервер:
Как вы видите, все просто. Данный способ еще можно использовать для деплоя небольших сайтов на продакшен-сервер.
вторник, 3 апреля 2012 г.
Настройка деплоймента в PhpStorm
Ярлыки:
виртуальная машина,
деплоймент,
как настроить,
настройка,
помощь,
Deployment,
howto,
PhpStorm,
tips
Подписаться на:
Комментарии к сообщению (Atom)
Намного проще было бы расшарить наоборот - локальные файлы на виртуалку (к тому же у тебя мак, так что лучше не по самбе, а по nfs). Так локально все будет работать быстро и на виртуалке тоже тормозов особо заметно не будет.
ОтветитьУдалитьТы не внимательно читал мою статью. Или прочитал только 1й абзац.
УдалитьИгорь, поправь "...способа есть большой Синус - скорость работы." :)
ОтветитьУдалитьСпасибо, поправил ;)
Удалитьздравтсвуйте. у меня такой вопрос, как синхронизировать изменения, которые делаю через админку вордпресса с этим же проектом на phpStorm. Прочитала разные статьи, но конкретно ничего не нашла. Не могли бы дать направление, в какую сторону копать. Спасибо.
ОтветитьУдалитьПривет. Никак. Только работать напрямую с папкой проекта через SMB/FTP/SFTP.
УдалитьГлавный минус - скорость. Индексация будет происходить намного медленнее, но терпимо.
Спасибо, по ФТП получается. :)
УдалитьВелкам :)
УдалитьЕсли я верно понял ваш вопрос:
Удалить1 - есть полная синхронизация с деплоем.
Правый клик на проекте (или конкретной папке) -> deployment -> sync...
В результате увидете список измененых файлов и сможете решить какие обновить локально а какие на деплое
2 - если у вас в настройках деплоя для опции "Warn when uploading over newer file" выбран вариант "compare content" и стоит галка "Notify of remote changes"
то шторм проверит и предупредит вас о том, что файл изменён, если вы его начнёте редактировать в самом шторме
А есть способ увеличить скорость загрузки на сервер? У меня все время в районе 6 кб/c, что явно медленнее, чем по фтп. И нетбинс куда быстрее загружает тоже.
ОтветитьУдалитьПопробуй залить файл на сервер через SCP протокол (например, с помощью вин-обертки WinSCP). Если скорость такая же маленькая, то проблема не в IDE, а в канале.
УдалитьОтключите торрент.
УдалитьЧестно говоря, меня больше интересует возможность отключения локального сохранения файлов. Либо чтобы файлы синхронизировались автоматический.
ОтветитьУдалитьСтолкнулся со следующей проблемой:
Мне периодический необходимо загрузить большое количество файлов в различные папки моих проектов. Если я их перетаскиваю в панель проекта они попадают в панель проекта на локальном компьютере, но что бы они загрузились на сервер - приходится целиком загружать проект на сервер - а это сорок минут. Либо выгружать по одному файлу иди папке, но это проблематично, когда большое количество файлов.
Если поступить по другому и сначала залить файлы на сервер, то опять же чтобы начать их увидеть в проекте, приходится сливать проект с сервера целиком. Как правильно решить такую проблему?
не нашли решение? у меня такая же проблема ( Кнопка синхронизировать при ftp ничего не делает
УдалитьЗаходим tools - deployment - browse remote host. Там выбираем корневую папку, которая соответствует корневой папке вашего проекта. Правой кнопкой по ней и выбираем Sync With Local. Открывается окошко, буря подгружает все изменения которые нашла и вверху нажимаем зеленую двойную стрелочку, которая означает загрузить с удаленного сервера на ва комп все измененные файлы.
Удалитьникак не получается настроить ftp соединение :(
ОтветитьУдалитьподскажите, возможно ли так вообще настроить?)
в общем на компе никаких проектов не создано еще.
пытаюсь создать проект New Project From Existing Files -> Web server is on remote host, files are accessible via FTP/SFTR/FTPS
но при попытке скачать файлы с сервера пишет, что ни файлов, ни директорий не найдено?
подскажите что не так делаю?
к самому ftp пишет, что успешно подключается =\
Удалитьа вот root path выбрать не могу - нажимаю три точки, открывается окно, происходит подключение, но никаких папок не находит =\
Этот комментарий был удален автором.
ОтветитьУдалитьА ещё можно поправить "Перейдем от слов в делу." Наверно правильнее "к делу"?
ОтветитьУдалитьБыло бы неплохо написать как активировать сам Deployment, так как у меня, почему то, по умолчанию он отключён, а в Plugins не могу найти, на репо тоже нет, не понимаю в чём проблема.
А как сделать так, чтобы автоматически изменения с сервера подтягивались в папку на компьютере, т е без ручной работы с tools - deployment - browse remote host?
ОтветитьУдалитькартинки потерял
ОтветитьУдалить20 ошибок в скриптах и 3 предупреждения. Верифи код...
ОтветитьУдалить