Цель:
Для тестирования локально удаленной машины и сайтов на ней.
Требования:
У сервера должно быть подключение к интернету и он должен быть видев с локального компьютера.
Конфигурация:
Хост - Lenovo R500, ubutu 9.10( 64bit), VirtualBox 3.0
ВМ - 512MB, 10GB, ubuntu 9.04 server (32bit), имя local_server
Как установить сервер в VirtualBox описывать не буду, скажу лишь что установка дефолтная с сетью NAT.
В хостовой (системе что стоит на компе) выполняем:
VBoxManage setextradata "local_server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol" TCP
VBoxManage setextradata "local_server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort" 80
VBoxManage setextradata "local_server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort" 6969
VBoxManage setextradata "local_server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
VBoxManage setextradata "local_server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata "local_server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
Запускаем ВМ (виртуальную машину с нашим сервером) и выполняем на ней:
sudo passwd
# нужно для подключения как root по ssh
sudo aptitude update
sudo aptitude upgrade
sudo apt-get install openssh-server
На хосте:
sshfs -p2222 root@localhost:/ /home/user/virtual_server
# подключаем файловую систему ВМ как каталог на хосте
# localhost - имя указанное при установке ВМ
# /home/user/virtual_server - зарание подготовленная папка для монтирования файловой системы ВМ
ssh -p2222 root@localhost
# подключаемся по ssh с правами суперпользователя
Все, к ВМ мы подключились и она к нашим услугам. Уставливаем все что нам может понадобиться (apache2, php5, mysql-server и т.п.)
На хосте:
rsync -e "ssh -p2222" --progress --archive --delete-after --verbose /home/user/backup/var/www/ root@localhost:/var/www
# синхронизируем файлы бэкапа с ВМ
rsync -e "ssh -p2222" --progress --archive --delete-after --verbose /home/user/backup/var/lib/mysql/ root@localhost:/var/lib/mysql
# синхронизируем бэкап базы с ВМ
Часто не реально после этого запустить mysql-server. Решается проще всего так - на ВМ выполняем следующие комманды:
sudo aptitude purge mysql-server
sudo aptitude install mysql-server
Тперь осталось отредактировать файл /etc/hosts на хосте:
sudo gedit /etc/hosts
# прописываем в него адреса наших сайтов:
127.0.0.1 localhost.site1.com
127.0.0.1 localhost.site1.com
На последок скажу, что конфиги файлов в паке /etc/apache2/sites-enable имеют следующую структуру:
ServerName site1.com
DocumentRoot /var/www/site1.com
ServerAlias *.site1.com
Послев всего этого при обращении по адресу http://localhost.site1.com:6969/ вы должны будете увидеть локальную копию вашего сайта.