Моя установка

Моя установка

Моя установка

введите описание изображения здесь

Я хочу настроить виртуальную машину Ubuntu в качестве веб-сервера для разработки.

Причина

Мне нужна среда разработки, максимально приближенная к реальной производственной среде.

Проблема

Вышеуказанная настройка не удалась. Я продолжаю получать сообщение Файл не найден, когда я перехожу кhttp://project1.localhost:8888

Что я пробовал

Я добавил www-dataв группу, vboxsfиспользуя

sudo adduser www-data vboxsf

прежде чем пробовать что-либо из нижеперечисленного.

  1. Как уже упоминалось, я попробовал вышеуказанную настройку. Ошибка «Файл не найден» на веб-странице.
  2. Я попробовал описанную выше настройку, но символическая ссылка с /var/virtual/project1на /media/sf_WebApps/project1. Ошибка «Файл не найден» на веб-странице.
  3. Я попробовал chown /media/sf_WebAppsот root:vboxsfдо www-data:vboxsf. Не удалось.
  4. Я попытался изменить права /media/sf_WebAppsна 755. Не удалось.
  5. Я сделал копию /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

  1. Чтобы отредактировать /etc/group
  2. Чтобы найти строку, содержащую «vboxsf»
  3. Добавить учетную запись после двоеточия (например, www-data). Если вам нужно добавить несколько учетных записей, вы можете разделить их запятой
  4. Повторный вход или перезагрузка

решение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
    

Связанный контент