Схема работы с Subversion из-под Windows
В предыдущей заметке я уже писал, что решил перенести выполнение скриптов на виртуальную машину ака Linux сервер. Мотив тогда был немного прозаичнее, чем просто желание покрутить на линуксе код – у меня начались глюки с веб-сервером под виндой. Видимо, стояла не-thread-safe сборка php и скрипты при параллельной загрузке начали валиться, видеть память друг друга и т.д.
Однако, поюзав некоторое время систему “пишу на Windows, выполняю на Linux” я решил откатиться к менее радикальной – “пишу и тестирую на Windows, окончательно проверяю на Linux”.
Суть схемы “пишу и тестирую на Windows, окончательно проверяю на Linux”
Всю разработку я веду под Microsoft Visual Studio с расширениями VS.PHP и VisualSVN. Также, на Windows-хост-машине установлен Tortoise SVN. Для тестирования давно поднят Денвер(мне нравится его система работы с виртуальными серверами, а вернее простой скриптик, добавляющий в hosts инфу о них), в одном из виртуальных серверов которого сделана рабочая копия репозитория с Linux-сервера. Также, стандартный денверовский MySQL выключен, вместо него поставлен MySQL Server 5.0. Однако, он сейчас не используется – главным SQL-сервером стал тот же MySQL 5.0, только на Linux-виртуальной машине. Также, на Linux поднят svn-сервер, FTP-сервер и настроен httpd.
Организация работы.
Имея уже настроенные 2 сервера – тестировочный и почти продакшн, мы можем, во-первых, удобно тестировать проект под разными средами, а во-вторых(дело вкуса), писать под удобным(для кого как, но для меня удобным) Visual Studio, при этом быстро проверяя как себя ведёт код не только под Windows, но и под Linux.
Всю писанину я провожу под Windows. Написав какой-то код, я отлаживаю его на локальном тестировочном сервере. Затем, если всё в порядке – делаю Commit изменений и они вносятся в репозиторий на Linux-SVN-сервере. Затем, SVN, юзая hook post-commit делает chekout(проверку и обновление) рабочей копии в папке /var/www/html на Linux-сервере. То есть при commit’е я сразу вижу обновлённый код в папке Apache под Linux’ом. Далее я уже перехожу к тестированию кода под Linux.
Профилирование и отладка
Заниматься профилированием под Windows, я считаю, не очень выгодно и очень неудобно. А вот отлаживать на Windows вполне себе можно. Начиная с обычных var_dump’ов и заканчивая продвинутой отладкой с breakpoint’ами(правда до этого я ещё не успел дойти).
Гораздо интереснее дела обстоят под Linux. Там также есть xDebug, но ещё есть удобный инструмент профилирования – kCacheGrind. И если его аналог под Windows, WinCacheGrind, глючен и убог, то kCacheGrind очень юзабельный продукт. Естественно, бесплатный. То есть, я занимаюсь основной отладкой под Windows, а профилированием – под основной средой выполнения, то есть Linux.
При внесении правок под Linux, можно не волноваться за Windows-сторону: после изменения кода нужно сделать commit со стороны рабочей копии под Linux-Apache-сервером и на Windows-стороне сделать Update. Тогда обе копии будут идентичны.
Думаю, я разъяснил преимущества, с моей точки зрения, Windows-конструирования и Linux-выполнения. Кто-то предпочитает полностью сидеть в Linux, я же пока к этому не готов. Новички в PHP вообще редко задумываются о Linux-использовании, ведь чтобы поставить Linux, PHP, SVN, MySQL и т.д. это нужно много(мы говорим о новичках) времени и сил. Я же пока остановился на вышеизложенном варианте. Спасибо за внимание.
|
опубликовано: 2008-07-05 11:54
Спасибо автору за статью!!!! очень познавательно!
— Matata 10 июля 2008, 14:29 #