Статьи

Создайте свой собственный Dev-сервер с VirtualBox

VirtualBox от Sun идеально подходит для тестирования различных настольных сред (например, тестирования браузеров), но я обнаружил, что он также отлично подходит для запуска тестовой серверной среды. Вместо того, чтобы устанавливать Apache, PHP и MySQL прямо на вашем компьютере, вы можете разместить их на виртуальном сервере Linux. Таким образом, нет помех для вашего рабочего стола, и вы можете быть уверены, что ваша среда разработки максимально приближена к вашей возможной среде развертывания.

С виртуальным сервером Linux, работающим внутри вашей настольной операционной системы, вы можете подключаться к нему по SSH, загружать на него файлы, загружать с него веб-страницы — что бы вы ни делали с настоящим живым сервером. И все необходимое программное обеспечение является бесплатным и простым в настройке. Давайте начнем!

Настройка магазина

Первым шагом является загрузка клиента VirtualBox . Выберите версию, подходящую для вашей хост-системы.

Вы также захотите получить образ диска для вашего сервера Linux. В этом уроке я буду использовать 64-битную версию Ubuntu server 9.04 , но не стесняйтесь использовать любой дистрибутив, который вам удобнее. Конечно, вам может понадобиться адаптировать некоторые инструкции к вашей конкретной настройке.

Мы также могли бы использовать настольную сборку, но, поскольку нас интересует только функциональность сервера, лучше придерживаться серверной сборки: мы сэкономим память, поскольку графический интерфейс рабочего стола не загружен.

Установка сервера Ubuntu

Запустите VirtualBox и нажмите New для новой виртуальной машины. Пройдите по мастеру, выбрав 64-разрядную версию Ubuntu (если это загруженный образ диска). Я использовал значения по умолчанию для любой другой опции: RAM, размер диска, тип диска и так далее.

Теперь выберите вашу новую виртуальную машину и нажмите Пуск . VirtualBox спросит вас, как установить ОС на вашу виртуальную машину. Так как мы загрузили .iso, выберите устройство CD / DVD-ROM из меню Media Type и Image File из меню Media Source , выбрав свой Ubuntu Server iso. Когда система загрузится, вы увидите установщик Ubuntu. Выберите ваш язык, а затем выберите Установить Ubuntu Server .

Следуйте инструкциям на экране для установки сервера. Обратите внимание, что когда вы приступаете к разбиению жесткого диска, виртуальная машина «видит» только тот образ диска, который вы создали ранее. Не стесняйтесь использовать весь диск. Позже в процессе установки установщик предложит вам установить дополнительное программное обеспечение. Для наших целей мы установим пакеты сервера LAMP и сервера OpenSSH. Таким образом, у нас есть все необходимое для полнофункционального веб-сервера.

Когда приходит время перезагрузить ваш новый сервер, вы можете «извлечь» установочный компакт-диск, выбрав « Устройства»> «Размонтировать CD / DVD-ROM» в меню VirtualBox.

Войдите в вашу новую систему с именем пользователя и паролем, которые вы выбрали при установке. Это также хорошая идея для обновления вашей системы с:

sudo aptitude update sudo aptitude safe-upgrade 

Доступ к виртуальному серверу из хост-системы

Теперь, когда наш сервер запущен и работает, мы хотим иметь доступ к нему из нашей хост-системы. Мы настроим его так, чтобы мы могли подключаться к нему по SSH, передавать ему файлы через SFTP и делать HTTP-запросы к Apache.

Для этого нам нужно отредактировать файл конфигурации xml для нашей виртуальной машины:

  • На Mac файл находится в ~/Library/VirtualBox/Machines/<machine name>/<machine name>.xml
  • В Windows он находится в подкаталоге .VirtualBox/Machines в вашей домашней папке.

Поэтому для моей машины, которую я назвал «Ubuntu Server», я редактирую Machines/Ubuntu Server/Ubuntu Server.xml

В верхней части файла вы должны увидеть <ExtraData> . Внутри этого тега скопируйте следующие теги:

 <ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" value="2222"/> <ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" value="22"/> <ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" value="TCP"/> <ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/HostPort" value="8888"/> <ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/GuestPort" value="80"/> <ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/Protocol" value="TCP"/> 

Эти строки настраивают VirtualBox для пересылки запросов на определенные порты хост-системы на другие указанные порты гостевой системы. Для SSH мы перенаправляем порт 2222 хост-системы на порт 22 гостевой системы (где OpenSSH прослушивает). Тот же принцип применяется к элементам конфигурации Apache: порт 8888 на хосте сопоставлен с портом 80 на гостевой.

После этого сохраните файл XML и перезапустите виртуальную машину.

Если машина не запускается, это может быть связано с проблемой конфигурации сетевого интерфейса. В добавленных нами строках мы указали pcnet в качестве сетевого интерфейса. Чтобы убедиться, что это то, что использует ваша виртуальная машина, щелкните ее правой кнопкой мыши в главном окне VirtualBox и выберите « Настройки» . На вкладке « Сеть » выберите один из адаптеров PCnet в раскрывающемся списке « Тип адаптера» . Теперь вы сможете без проблем перезапустить вашу виртуальную машину.

Теперь, если вы откроете браузер в своей хост-системе и укажете на http://localhost:8888/ вы должны увидеть страницу Apache «Это работает!» По умолчанию. Большой!

Аналогично, для SSH на вашем новом сервере, SSH к порту 2222 на локальном хосте с именем пользователя, которое вы указали при установке сервера Ubuntu. (Если вы работаете в Windows, вы можете использовать SSH-клиент PuTTY для выполнения той же функции):

 ssh -l <username> -p 2222 localhost 

Вы получите обычное предупреждение безопасности «неизвестный хост»; введите «да» для подключения, и вам будет предложено ввести пароль. После входа вы должны войти на свой сервер! Не стесняйтесь осмотреться и почувствовать себя как дома.

Пока мы вошли в систему, давайте выполним еще одну задачу: по умолчанию веб-корнем Apache в Ubuntu Server является /var/www/ , для которого у вашего пользователя по умолчанию нет прав на запись. Давайте изменим это, чтобы вы могли загружать файлы в корневой веб-каталог с помощью SFTP. Введите эту команду и нажмите Return:

 sudo chown <username> /var/www 

Для подключения к вашему серверу через FTP дополнительная настройка не требуется. OpenSSH предоставляет вам «бесплатный» FTP через протокол SFTP (SSH FTP). Большинство клиентов (например, FileZilla ) поддерживают это; просто выберите SFTP в качестве протокола, localhost в качестве сервера с портом 2222, а также свои имя пользователя и пароль в Ubuntu. Выберите /var/www/ в качестве каталога по умолчанию, и вы сможете передавать файлы на сервер и с него.

Давайте проверим, что все работает: создайте php-файл с именем info.php содержащий обычный вызов phpinfo :

 <?php phpinfo(); ?>
<?php phpinfo(); ?> 

Используйте свой FTP-клиент, чтобы загрузить этот файл в папку /var/www/ вашего сервера. Теперь укажите вашему браузеру http://localhost:8888/info.php , и вы увидите страницу информации PHP. Строка System в верхней части таблицы скажет вам, что PHP работает на Ubuntu.

Вот оно! Вы можете протестировать конфигурации сервера, освежить свои навыки системного администратора и разработать свои веб-сайты и приложения в полноценной среде сервера Linux, работающей на вашем обычном рабочем столе.