Search
Write a publication
Pull to refresh

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…

Буду рад констуктивной критике и отзывам.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.