Virtualbox робимо lamp-сервер в гостьовій ubuntu server, cetlot

Для роботи, та й просто для експериментів, часто потрібен окремий сервер / VDS або ж просто хостинг з Linux / Apache / MySQL / PHP, але оренда коштує певних тугриків, а безкоштовні рішення в мережі мають безліч обмежень, тому має сенс спорудити свій власний віртуальний LAMP-сервер на домашньому / робочому комп'ютері.
Відразу обмовлюся на рахунок термінів: хост це наш комп'ютер, на який ми поставимо віртуальну машину (з Ubuntu Server), звану гостьовий системою.
В якості віртуальної машини (ВМ) буде використовуватися VirtualBox. операційною системою хоста (тобто нашого комп'ютера) у нас вже стоїть десктопна Убунту, а в якості гостьової системи візьмемо Ubuntu Server (на момент написання поста - Ubuntu Server 10.04 LTS), яка хороша тим, що в ній все зайве, для сервера , випив.

Програма дій така:

• Створити та налаштувати віртуальну машину, в якій буде працювати наша гостьова система
• Встановити Ubuntu Server, як гостьову систему
• Налаштувати в гостьовій системі Apache / MySQL / PHP / PhpMyAdmin
• Налаштувати загальний доступ до файлів гостьової системи з хоста

2) Підключаємо «рідний» репозиторій VirtualBox-а (розділ «Debian-based Linux distributions»), і ставимо сам пакет. Підключення сховища потрібно, щоб мати найсвіжішу версію віртуальної машини, свіже, ніж в репозиторій Ubuntu.
Думаю, з підключенням сховища та установкою пакета, ні у кого не виникне проблем. На Windows цей крок, звичайно, пропускається.

3) У VirtualBox, через кнопку «Створити», cоздаём віртуальну машину, в якій буде крутитися Ubuntu Server, з наступними параметрами (які використовуються у мене):

4) Після створення віртуальної машини, потрібно донастроіть її.

У властивості «Система»> «Материнська плата» прибираємо дискету з черги завантаження і обов'язково ставимо першою CD / DVD-ROM.
Так само знімаємо галку в «Аудіо»> «Увімкнути аудіо», навіщо воно на сервері?
У властивостях «Носії»> «IDE контролер» і в «SATA контролер» перевіряємо, чи варті галочки «Кешування операцій введення / виводу», якщо ні - ставимо.
І нарешті, у властивості «Мережа» нашої віртуальної машини ставимо:
• Тип підключення «Мережевий міст»
• Ім'я адаптера (за замовчуванням «eth0»)
• Тип мережевого адаптера в «PCnet-FAST III (Am79C973) (в підрозділі« Додатково »)
• Галку «Кабель підключений».

Хочу відразу сказати, що при типі підключення «Мережевий міст» ваша гостьова система буде «видно» в мережі, як окремий комп'ютер, і з нею можлива ініціація з'єднання не тільки з хоста, але і з мережі.

А це загрожує тим, що мережа в гостьовій ОС перестане працювати, адже в її настройках вказано старий мережевий інтерфейс, і тому, щоб мережа продовжувала нормально функціонувати після зміни MAC-а, так само доведеться виправити ім'я мережевого адаптера на нове в / etc / network / interfaces. або чистити вміст /etc/udev/rules.d/70-persistent-net.rules (там лежать відповідності MAC-ів мережевих карт і імен мережевих інтерфейсів).

5) Скачаний образ iso, з дистрибутивом Ubuntu Server, треба додати до числа доступних образів для віртуальних машин, через меню «Файл»> «Менеджер віртуальних носіїв»> «Образи CD / DVD».
Потім, у властивостях «Носії» нашої віртуальної машини, в «IDE контролер»> «Пусто»> «Привід» потрібно вказати наш образ Убунту. або реальний привід CD / DVD-привід з диском нашого дистрибутива.

6) Установка Ubuntu Server не повинна викликати проблем, але про всяк випадок пройдемося по основних моментах:

Виключно для статті, як всіх логінів і паролів будемо використовувати слово developer (Привіт Стівену Балмеру :))
На практиці, з міркувань безпеки, цього робити Не рекомендується!

• При підключенні приладу мережі вказуємо ім'я комп'ютера - development (для прикладу)
• Варіант розмітки диска на ваш розсуд, але якщо не впевнені, то використовуйте варіант «Авто - використовувати весь диск»
• Повне ім'я користувача, обліковий запис і пароль - developer
• Вид поновлення - на Ваш смак, але краще тримати систему актуальною через «інсталяція оновлень безпеки автоматично»
• При виборі програмного забезпечення вибираємо «LAMP server» (це набір Apache + MySQL + PHP) і «OpenSSH server».
• Задаємо пароль root-а для MySQL - все той же developer
• Погоджуємося з установкою Grub-а і перезавантаженням
• Після завантаження гостьової системи, відключаємо її через меню «Машина»> «Вимкнути через ACPI» або після логіна відключаємо через команду:

7) Тепер залишилося відключити завантаження з CD / DVD-ROM. Це робиться через властивості BM «Носії»> «IDE контролер»> «ubuntu-10.04-server-i386.iso» (назва вашого образу)> «Привід»> встановлюємо в «Пусто».

Запускаємо наш віртуальний Ubuntu Server, логіном і запускаємо оновлення пакетів:

тепер перезапустити мережеві служби гостьової системи з новими налаштуваннями:

і перевіримо їх у нашого адаптера eth0:

10) Тепер, займемося Apache-м.

It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.

Тепер, коли видно, що Апач працює :), налаштуємо на ньому перший віртуальний хост, і назвемо цей домен, наприклад, dev.i

Насамперед, на хості, окремим рядком додамо в файл / etc / hosts запис про новому домені (на Windows-хостах в% SystemRoot% \ system32 \ drivers \ etc \ hosts):

Тим самим, з хоста можна буде звертатися до гостьової системі не тільки по IP, але і імені конкретного домену.

Далі, в гостьовій системі, під рутом, додаємо в /etc/apache2/httpd.conf конфігурацію нового віртуального хоста:

При чому, директива NameVirtualHost описується лише один раз на початку файлу, а конструкція ... для кожного домена створюється своя.

Потім, в гостьовій системі, в домашній папці користувача developer створимо структуру директорій для нашого домену:

Як видно по структурі папок і налаштувань в конфігурації віртуального хоста (вище) - логи доступу і помилок будуть лежати в папці logs і у кожного віртуального хоста вони будуть свої.

Після створення структури папок, в /home/developer/www/dev.i/htdocs для нашого сайту створимо індексний файл index.php:

Залишилося перезапустити Apache для вступу в силу нових налаштувань, що ми і зробимо:

11) Нарешті, черга дійшла і до phpmyadmin.

Ставимо цей чудову утиліту для адміністрування MySQL:

Під час установки phpmyadmin нас попросять вибрати веб-сервер, який ми використовуємо, вказуємо, звичайно, Apache2.
Потім погоджуємося встановити і налаштувати базу даних для роботи phpmyadmin, для чого вводимо пароль адміністративного користувача MySQL (root-a), який ми вже поставили на стадії установки системи (це слово developer) і пароль для з'єднання phpmyadmin-а до MySQL (знову таки developer :)). Другий пароль потрібен для того, щоб phpmyadmin, який в процесі установки створює свою службову базу і свого однойменного користувача, міг підключатися до своєї робочої MySQL-базі.

Якщо установка phpmyadmin пройшла з помилками, то його можна перевстановити наступним чином (з видаленням конфігураційних файлів):

Тепер кілька слів про «Shared Folders», тобто про загальні папках. Власникам хостів з Windows можна пропустити наступні абзаци про SSHFS і сміливо використовувати «Shared Folders».

Чесно кажучи, реалізація куля у VirtualBox мені ніколи не подобалася, тому під Linux-хостом ми підемо іншим шляхом.

Як Ви пам'ятаєте, я рекомендував, під час установки гостьовий Ubuntu Server, поставити ще й OpenSSH server. Він нам знадобиться для підключення та віддаленого управління файлами гостьової системи по протоколу SSH. Тобто можна буде примонтировать віддалену папку гостьової системи на файлової системи хоста і працювати з ними, як з локальними файлами.
Для цього, в системі комп'ютера-хоста, потрібно встановити пакет SSHFS:

Монтування папки гостьової системи зі віртуальними хостами до файлової системи хоста буде виглядати так:

де -p 22 - це порт OpenSSH в гостьовій системі (який можна поміняти в / etc / ssh / sshd_config, наприклад на 2022, щоб заплутати сторонніх :))

а демонтувати можна так:

Команди монтування та размонтирования краще засунути в два скрипта і тримати під рукою, правда Демонтується потрібно рідко, адже після виключення гостьової системи змонтована папка відвалюється сама.

От якось так…

До речі, зовсім необов'язково використовувати «Shared Folders» або монтування папок, якщо звичайно Вам не потрібна яка-небудь IDE - можна працювати прямо в консолі гостьової системи.

Схожі статті