Как стать автором
Поиск
Написать публикацию
Обновить

DPS ( Virtualbox Ubuntu with LAMP как аналог альтернатива Denwer, XAMPP… )

How it works

Многие используют возможности виртуализации чтобы разрабатывать в 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


Ссылки управления виртуальной машиной в меню пуск:
dps in start menu

Ссылки по теме:
Настройка apache 2 + nginx + php 5 + MySQL + memcached + eaccelerator + sphinx в Ubuntu
«Заглушка» sendmail для xampp

Систему не обязательно использовать под php-mysql, таким же способом можно настроить виртуальную машину под разработку perl, python, ruby…

Буду рад констуктивной критике и отзывам.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.