내 설정

내 설정

내 설정

여기에 이미지 설명을 입력하세요

개발용 웹 서버 역할을 하도록 Ubuntu VM을 설정하고 싶습니다.

이유

실제 프로덕션 환경과 최대한 가까운 개발 환경을 갖고 싶습니다.

문제

위 설정이 실패했습니다. 다음으로 이동할 때 계속 파일을 찾을 수 없음 메시지가 나타납니다.http://project1.localhost:8888

내가 시도한 것

나는 다음을 사용하여 www-data그룹에 추가했습니다.vboxsf

sudo adduser www-data vboxsf

아래 중 하나를 시도하기 전에.

  1. 언급했듯이 위의 설정을 시도했습니다. 웹페이지에서 파일을 찾을 수 없음 오류가 발생했습니다.
  2. 위의 설정을 시도했지만 에서 으로 심볼릭 링크를 연결 /var/virtual/project1했습니다 /media/sf_WebApps/project1. 웹페이지에서 파일을 찾을 수 없음 오류가 발생했습니다.
  3. 나는 에서 /media/sf_WebApps까지 를 줄이려고 노력했다 . 불가능합니다.root:vboxsfwww-data:vboxsf
  4. 755로 chmod를 시도했습니다. /media/sf_WebApps불가능합니다.
  5. 나는 사본을 만들어 /media/sf_WebApps/project1그 안에 사본을 넣었습니다 /var/virtual. 이것은 작동합니다.하지만 이것은 내가 원하는 것이 아니다. 왜 안 돼?왜냐하면 github mac app 및 sublime text editor와 같은 호스트 프로그램을 쉽게 사용하여 코드 기반을 변경하고 브라우저를 방문할 때 반영되는 것을 확인하고 싶기 때문입니다.

답변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

게스트 OS를 켤 때마다 이 마운트를 수행하려면 /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.confUbuntu 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줄 추가부팅시 실행되게 하려면( 이전 단계의 uid 및 gid 로 USER_ID및 교체):GROUP_ID

    @reboot mount -t vboxsf VirtualBoxFolderShareName /some/location -o uid=USER_ID,gid=GROUP_ID
    

관련 정보