
Моя установка
Я хочу настроить виртуальную машину Ubuntu в качестве веб-сервера для разработки.
Причина
Мне нужна среда разработки, максимально приближенная к реальной производственной среде.
Проблема
Вышеуказанная настройка не удалась. Я продолжаю получать сообщение Файл не найден, когда я перехожу кhttp://project1.localhost:8888
Что я пробовал
Я добавил www-data
в группу, vboxsf
используя
sudo adduser www-data vboxsf
прежде чем пробовать что-либо из нижеперечисленного.
- Как уже упоминалось, я попробовал вышеуказанную настройку. Ошибка «Файл не найден» на веб-странице.
- Я попробовал описанную выше настройку, но символическая ссылка с
/var/virtual/project1
на/media/sf_WebApps/project1
. Ошибка «Файл не найден» на веб-странице. - Я попробовал chown
/media/sf_WebApps
отroot:vboxsf
доwww-data:vboxsf
. Не удалось. - Я попытался изменить права
/media/sf_WebApps
на 755. Не удалось. - Я сделал копию
/media/sf_WebApps/project1
и поместил копию внутрь/var/virtual
. Это работает,но это не то, чего я хочу. Почему нет?Потому что я хочу легко использовать свои хостовые программы, такие как приложение GitHub для Mac и текстовый редактор Sublime, чтобы вносить изменения в кодовую базу и видеть их отражение при посещении в браузере.
решение1
Ответ найден.здесь из serverfault.
По сути, вам нужно смонтировать (уже смонтированную) общую папку от имени другого пользователя.
Тип
mount -t vboxsf SHARE_NAME -o rw,dmode=777,gid=GROUP_ID,uid=USER_ID /path/on/guest
В этом случае это будет
mount -t vboxsf WebApps -o rw,dmode=777,gid=GROUP_ID,uid=USER_ID /var/virtual/some_folder_name
Если вы хотите выполнять это монтирование каждый раз при включении гостевой ОС, создайте файл /etc/init/SOMETHING.conf примерно следующего содержания:
description "SOME DESCRIPTION"
start on starting
task
exec mount -t vboxsf WebApps -o rw,dmode=777,gid=GROUP_ID,uid=USER_ID /var/virtual/some_folder_name
Чтобы узнать свой uid или gid
id -u username
id -g username
Поиск неисправностей:
Всегда помните, что сначала необходимо создать точку монтирования.
Всегда помните, что сначала нужно установить GuestAdditions. Вы можете обратиться кhttp://docs-v1.vagrantup.com/v1/docs/base_boxes.htmlв разделе «Установка гостевых дополнений».
sudo apt-get install linux-headers-$(uname -r) build-essential
sudo apt-get install dkms -y
sudo mount /dev/cdrom /media/cdrom
sudo sh /media/cdrom/VBoxLinuxAdditions.run
решение2
- Чтобы отредактировать /etc/group
- Чтобы найти строку, содержащую «vboxsf»
- Добавить учетную запись после двоеточия (например, www-data). Если вам нужно добавить несколько учетных записей, вы можете разделить их запятой
- Повторный вход или перезагрузка
решение3
Я сделал что-то похожее на решение @KimStacks, но не смог заставить его /etc/init/SOMETHING.conf
работать на Ubuntu 18.04 LTS, даже если я изменилstart on starting
нравитсяstart on startup
Пример переполнения стека.
Я нашел эти шаги намного проще:
Создайте постоянную точку монтирования (используйте это место, а не
/media
уже смонтированное):sudo mkdir /some/location
Получить uid и gidиз
www-data
:id www-data
Отредактируйте файл crontab:
sudo crontab -e
Добавить
@reboot
строкучтобы он запускался при загрузке(заменитеUSER_ID
иGROUP_ID
на uid и gid из предыдущих шагов):@reboot mount -t vboxsf VirtualBoxFolderShareName /some/location -o uid=USER_ID,gid=GROUP_ID