Казалось бы, что такого - настроить общую папку на VirtualBox? В сети очень много статей и даже видео уроков, которые должны были бы раскрыть эту тему полностью, но, как оказалось, или просто мне так повезло - в большинстве случаев это просто бесполезная информация, которая не дает никакого понимания: как же все-таки это сделать в рамках создания своего локального сервера!
Напомню, в предыдущей статье мы установили весь необходимый софт для нашего сервера: Apache, PHP, MySQL и PHPMyAdmin. И мы уже можем работать на своей виртуальное машине, но это будет крайне неудобно, для этого нам и нужно соединить хост машину (в моем случае MAC OS) и виртуальную при помощи общей папки. Сейчас я подробно разберу все этапы этого действия.
Первое, что нам будет необходимо сделать - это донастроить виртуальную машину, переходим: Сеть -> Тип подключения -> Выбираем «Сетевой мост».
Теперь нам нужно выбрать у нас на ПК, где будет располагаться общая папка (условно назовём vb-public
) в моем случаи:
Теперь добавим ее в настройках:
Мы выбрали название папки на сервере public, а на самом деле она будет называться sf_public - это стоит помнить.
С настройками на хост машине закончено, теперь запускаем наш сервер и продолжим работать уже там. Первое, что нам нужно сделать, так это в устройствах кликнуть по «Подключить образ Диска дополнений гостевой ОС»:
После того, как образ будет подключен вы увидите окно:
Нажимаем «OK» и открываем терминал в этой же папке, где нужно выполнить команду:
sudo apt install dkms build-essential linux-headers-generic
Теперь запустим скрипт в текущей папке, используя команду:
sudo sh ./VBoxLinuxAdditions.run
И останется добавить нашего пользователя для работы с папкой, делается это таким образам:
sudo adduser server vboxsf
sudo usermod -aG vboxsf www-data
После чего вы уже сможете увидеть общую папку в файловом менеджере, но при попытке перейти в нее у вас будет выпадать ошибка касательно прав доступа. Это легко решается перезагрузкой системы.
После чего две наши системы уже будут связаны и по сути мы сделали первую часть работы. Как вы уже догадались, мы будем хранить наши сайты в общей папке и для этого нам нужно настроить Apache:
sudo nano /etc/apache2/apache2.conf
В конфиге нужно закомментировать строчки:
А в конце файла добавить:
После этого сохраняем файл и нам останется изменить еще DocumentRoot, указав путь до нашей общей папки:
sudo nano /etc/apache2/sites-available/000-default.conf
На этом можно сказать, что мы закончили второй этап работы, при котором мы можем в общей папке спокойно на создавать свои будущие сайты и работать на хосте с ними.
Если вы еще не размонтировании «Диск дополнений гостевой ОС», то самое время.
Добавление виртуальных хостов (доменов)
Самое время проверить все, что мы наворотили, а по этому добавим первый сайт на свой локальный сервер (назовем его vb.loc
). Но перед этим проставим правильные права на папку sites-available
, куда мы и будем добавлять свои виртуальные хосты:
sudo chmod -R 777 /etc/apache2/sites-available
Далее переходим в папку sites-available
:
cd /etc/apache2/sites-available/
Создаем файл:
sudo nano vb.loc.conf
С содержимым:
<VirtualHost *:80>
ServerName test.loc
DocumentRoot /media/sf_public/vb.loc/
</VirtualHost>
Регистрируем домен и перезапускаем сервер:
sudo a2ensite vb.loc
service apache2 restart
Для удаления хостов есть команда a2dissite, после вызова, которой можно удалить файл с настройками хоста.
Еще нам потребуется IP нашей виртуальной машины, вводим команду:
ifconfig
А теперь мы можем вернуться на хост машину и создать в папке vb-public
наш сайт в файл host добавим домен:
Для примера я добавил вывод функции phpinfo()
, как видите из скрина - мы получили доступ к сайту из основной OC и спокойно можем над ним работать. На этом я буду заканчивать статью, в следующей заключительной мы разберем как подключиться к MySQL из хост машины через какой-нибудь клиент, а так же несколько полезностей.
Статьи из серии «Создание локального веб-сервера»:
Мастерим собственный локальный веб-сервер на VirtualBox;
Устанавливаем Apache, PHP, MySQL и PHPMyAdmin на Linux;
Настраиваем доступ к MySQL на VirtualBox из HOST машины.