
Многие используют возможности виртуализации чтобы разрабатывать в windows, и тестировать скрипты в unix, как системе более близкой к «бою».
Одним из недостатков является местоположение тестовых скриптов на виртуальной машине, всвязи с чем приходится гонять руками файлы по ftp, настраивать IDE для синхронизации, разворачивать рабочую копию svn в двух местах и пр…
Я предлагаю уважаемому сообществу решение этого недостатка, путем расшаривания проектных файлов, настроек и логов apache mysql php средствами системы виртуализации. В результате получаем тестовую гостевую unix систему, с возможностью правки файлов на основной windows. Для управления используем возможности системы виртуализации, ssh, xmlrps. В результате мы получаем систему разработки, по легкости использования не уступающую Denwer. Под катом ссылка для скачивания и описание установки конкретного решения на базе Virtualbox, Ubuntu, LAMP.
Установка dps на порядок сложнее чем установка denwer, однако преимущества полноценной виртуальной машины unix на компьютере разработчика c OS Windows стоят того.
Рабочий пример:
ubuntu-server 10.10, apache 2.2.16, mysql 5.1.49, php 5.3.3, memcached 1.4.5, phpmyadmin 3.3.7deb1, PEAR
php-exts: curl, eAccelerator, gd, imagick, imap, mcrypt, memcache, mysql, SQLite, tidy, xsl, Zend Debugger
Пример был протестирован и адекватно работал в системах Windows XP и Windows 7.
Образ виртуальной машины:
rutracker.org torrent
depositfiles.com
Инструкции по установке:
1. Виртуальная машина.
1.1. Устанавливаем VirtualBox [ www.virtualbox.org/wiki/Downloads ].
1.2. Создаем новую виртуальную машину:
имя машины: dps
тип OS: Linux/Ubuntu,
размер оперативной памяти: выберите в соответствии с рекомендациями Virtualbox
c виртуальным жестким диском («загрузочным»), на основе существующего образа dps.vdi, который находится в скачаном архиве («Использовать существующий жесткий диск->Менеджер виртуальных носителей->Добавить->Выбрать»).
1.3. В свойствах виртуальной машины «Сеть -> Тип подключения» выбираем способ подключения «сетевой мост».
1.4. Создаем в windows машине папку с именем dps в удобном вам месте. Можно ее сделать subst диском. Папка обязательно должна быть пустой.
1.5. В свойствах виртуальной машины добавляем только что созданную папку с именем «dps» «Общие папки->Добавить общую папку(Ins)»
Создавать общую папку обязательно, т.к. на виртуальной машине в /etc/fstab указано автоматическое монтирование папки с именем dps.
2. Доступы виртуальной машины
2.1. Запускаем виртуальную машину нажав на кнопку «Старт» в панели Virtualbox.
2.2. На предложение войти в систему вводим
login: dps
password : password
2.3. Меняем пароль dps пользователя на новый, с помощью комманды
sudo passwd dps
2.4. Меняем пароль root mysql
mysqladmin -uroot -ppassword password [new_password]
3. Настройка сети с вирутальной машиной.
3.1. Выясняем какой сетевой интерфейс работает в системе eth0, eth1, eth2…
dmesg | grep eth
3.2. если вы будете настраивать сеть dhcp:
sudo cp /etc/network/interfaces.dhcp /etc/network/interfaces
если вы будете настраивать сеть конкретными значениями ip:
sudo cp /etc/network/interfaces.static /etc/network/interfaces
3.3. меняем содержимое файла настроек под свою систему.
sudo nano /etc/network/interfaces
3.4. Выполняем рестарт сетевых служб.
sudo /etc/init.d/networking restart
Проверяем чтобы чтобы пинговалась основная win машина, DNS/интернет.
При проблемах читаем инфу о настроке сети в virtualbox ubuntu.
Без настроенной сети ничего работать не будет.
3.4. Если использовали DHCP, определяем ip адрес виртуальной машины, он нам понадобится в будущем:
ifconfig
4. Локальные Windows DNS настройки.
4.1. Прописываем в файле hosts (c:/windows/system32/drivers/etc/) на windows машине соответствия ip адресу виртуальной машины доменных имен. (В Windows 7 его можно править с правами администратора).
[ip vm] dps
[ip vm] example.com
где [ip vm] ip виртуальной машины.
Например:
192.168.1.6 dps
192.168.1.6 example.com
Проверяем чтобы по адресу http://dps/ открывалась стандартная страничка apache2, а по адресу https://dps:10000/ — webmin, логин-пароль у webmin такойже как у основного пользователя dps.
5. Настраиваем отладчик.
5.1. Если хотим использовать Zend Debugger, нужно еще поправить настройку zend_debugger.allow_hosts в файле /etc/php5/apache2/conf.d/ZendDebugger.ini.
sudo nano /etc/php5/apache2/conf.d/ZendDebugger.ini
6. Копируем реальные файлы с unix машины на windows и делаем символические ссылки
6.1.
sudo /home/dps/dps.sh install
комманда копирует файлы настроек, проектов и логов в систему win, и делает символические ссылки на них.
6.2. Проверяем чтобы в dps папке на windows машине появились файлы. Структура и назначение файлов описаны ниже.
7. Настройка putty
7.1. Запускаем putty из папки dps/sys/putty.exe указываем у putty кодировку по умолчанию UTF-8 (Window->Translation->UTF-8, Session->Default Settings->Save) и выходим из putty.
8. Заполняем правильными значениями файл dps.xml, в корне папки dps на windows машине:
dps.xml — конфигурационный файл dps
user - основной unix пользователь виртуальной машины; pwd - пароль основного пользователя виртуальной машины; vm - настройки виртуальной машины; name - имя виртуальной машины; host - ip или dns name виртуальной машины; paths - пути root - папка с dps файлами в системе win; root_unix - папка с dps файлами в системе unix; putty - путь к папке, где лежит putty; virtualbox - путь к папке, куда установлен virtualbox
9. Все готово.
Структура файлов и папок в папке dps на win машине:
ctrl - комманды управления command.wsf - запуск произвольной комманды unix на виртуальной машине; server_poweroff.wsf - выключение питания у виртуальной машины; server_reset.wsf - reset у вирутальной машины; server_start.wsf - запуск виртуальной машины; server_state.wsf - состояние виртуальной машины; services_restart.wsf - перезапуск сервисов apache2, mysql на вирутальной машине; services_start - запуск сервисов apache2, mysql на вирутальной машине; services_stop.wsf - остановка сервисов apache2, mysql на вирутальной машине; ssh.wsf - запуск ssh (putty) (без нудного ввода пароля, пароль вводится автоматом из конфигурационного файла). etc - настройки apache2 - /etc/apache2 на вирутальной машине; mysql - /etc/mysql на вирутальной машине; php5 - /etc/php5 на виртуальной машине; log - логи apache2 - /var/log/apache2 на виртуальной машине; command - служебные логи dps; email - папка с файлами eml. Каждый файл соответствует письму, отправленому функцией php mail() с виртуальной машины, т.е. письма не уходят с вирутальной машины, они всего лишь попадают в эту папку; mysql - /var/log/mysql на виртуальной машине; sys - системные файлы dps www - папка с файлами виртуальных площадок ( /var/www на виртуальной машине ) dps - скрипты виртуальной площадки dps example.com - скрипты виртуальной площадки example.com dps.xml - конфигурационный файл dps
Ссылки управления виртуальной машиной в меню пуск:

Ссылки по теме:
Настройка apache 2 + nginx + php 5 + MySQL + memcached + eaccelerator + sphinx в Ubuntu
«Заглушка» sendmail для xampp
Систему не обязательно использовать под php-mysql, таким же способом можно настроить виртуальную машину под разработку perl, python, ruby…
Буду рад констуктивной критике и отзывам.