Apache2 DocumentRoot를 "vboxsf"VirtualBox 공유 폴더로 설정하는 방법 (권한 문제?)


17

호스트에 공유 폴더가있는 VirtualBox VM에서 Ubuntu 11.04 데스크톱 32 비트를 설정했습니다. 공유 폴더는

/media/sf_Dev/

Apache2를 변경 DocumentRoot하여 해당 폴더 를 가리키고 싶기 때문에 해당 파일 /etc/apache2/sites-available/default의 기존 경로를 / var / www 대신 / media / sf_Dev / 로 바꾸 도록 편집 했으며 index.html이 표시되지 않습니다.

내가 볼 때 /varls -l내가 볼

drwxr-xr-x  2 root root ... www

ls -l /media/내가 볼 때

drwxrwx---  1 root vboxsf ... sf_Dev

아파치가 그 디렉토리에 넣은 index.html을 보지 못하는 것 같습니다 ( cp /var/www/index.html /media/sf_Dev/iirc)

또한 그룹을 vboxsf로 만들기 위해 envvars를 편집하려고 시도했지만 그 부분을 잘못했다고 생각합니다.

export APACHE_RUN_GROUP=www-data

export APACHE_RUN_GROUP=vboxsf

내가 뭘 잘못하고 있니, Apache2가 해당 디렉토리에서 파일을 제공하도록하려면 어떻게해야합니까? (기술적으로 아파치 파일을 제공하고 싶지만 /media/sf_Dev/apache/www한 번에 한 단계 씩 표시하므로 단락을 돕는 데 도움이된다면 그렇게하십시오)

답변:


22

vboxsf 그룹을 아파치의 보조 그룹으로 추가하는 것이 가장 쉬운 방법 일 것입니다.

우분투 :

sudo usermod -a -G vboxsf www-data

페도라 :

sudo usermod -a -G vboxsf apache

자동 마운트 공유 폴더에 액세스하고 싶을 때이 작업을 수행합니다. 파일에 액세스하기 위해 vboxsf 그룹에 고유 한 사용자 이름을 추가 할 수도 있습니다.


그러나 아파치 앱은 사용자 이름 아파치에서 실행됩니까? 나는 생각이 바뀌>>.
jcolebrand

당신은 맞습니다, 나는 페도라와 우분투를 위해 아파치 사용자를 섞었습니다. 편집 :)
Fuu

1
수동 장착으로 많은 시간을 절약 할 수있었습니다. 감사합니다!
xorinzor

이 솔루션은 Ubuntu 15에서이 문제를 해결했습니다.
Ian Lewis

3

그것은 권한 문제처럼 보입니다. /media/sf_Dev/"다른"(현재 권한이없는 세 번째 권한 비트 그룹) 에 대한 읽기 및 실행 권한이 필요합니다 ---.

따라서이 명령을 실행해야합니다 (Ubuntu이므로 sudo에 유의하십시오).

sudo chmod 775 /media/sf_Dev/

그러면 "other"에 대한 읽기 및 실행이 추가되고 소유자 및 그룹에 대한 모든 권한이 남습니다.

또한 색인 파일이 실제로 / media / sf_Dev /에 있는지 확인하십시오. (cp 명령에서 sudo를 잊어 버렸고 루트로 실행 중이 아니라고 가정합니다.)


1
아,하지만 난 할 때 하는 것이 그것이 내가 필요로하는 변경하지 않습니다. vboxfs에 대해서는 무언가가 변경되지 않습니다 (예 : NFTS와 같은). 그렇게 할 수 있습니다 . ~~ 묻기 전에 오류 로그를 보는 것을 잊었습니다. 오늘 저녁에 확인하겠습니다. 그러나 권한 오류라고 가정하십시오.
jcolebrand

@jcolebrand 문제 해결 규칙 # 1 : 연결되어 있습니까? 나는 대답의 장기적인 유용성에 대해 생각하고 DB와 .NET 사용자라는 것을 알고 있습니다. : P
George Marian

@jcolebrand 그래서 바보 같은 질문 : 아파치를 다시 시작 했습니까? sudo apache2ctl restart
George Marian

hahahahaha, 이것이 내가 도움이 필요한 이유입니다. 나는 db와 .net 사람입니다.) ... 예, 실제로는 sudo su모든 디렉토리에 들어가서 "깨진"것을 볼 수 있도록 wench가 된 후에 실제로 떨어 졌습니다. ... Josh가 나중에 PHP 파일로 제안한 것을 수행 할 것입니다.
jcolebrand

1
vboxsf가 파일 시스템의 루트 폴더에 대한 권한 설정을 지원하지 않을 수 있으며 파일 권한을 전체적으로 설정하기위한 mode, uid 및 gid 마운트 옵션을 제공 할 수 있습니다.
billc.cn

2

특정 오류가 무엇인지 말하지 않았을뿐

아파치가 그 디렉토리에 넣은 index.html을 보지 못하는 것 같습니다.

구체적인 오류가 도움이 될 것입니다. error_log일반적으로 /var/log/apache2/error.logUbunt 아래 에 있지만 Apache의 ErrorLogDirective 를 통해 구성 할 수있는 Apache에서이 파일 을 제출할 수 있습니다.<VirtualHost>

실제 오류가 없으면 George Marian이 정확하고 권한 오류라고 가정합니다. 다음을 사용하여 Apache가 실행중인 그룹을 확인할 수 있습니다.

ps -o pid,group -o atime,comm=CMD awx | grep apache

/media/sf_Dev/그가 말한대로 체인 권한을 사용해보십시오 .

Alias ​​지시문 으로 이것을 처리하는 것이 더 좋을 것이라고 생각 합니다. DocumentRoot의 특정 부분 만 외부 위치를 가리킬 수 있습니다.

Alias /info /media/sf_Dev
<Directory /media/sf_Dev >
  Order allow,deny
  Allow from all
</Directory>

편집 : Apache 서버에 mod_php(FastCGI PHP가 아님)이 있고를 사용하지 않는 suexec경우 Apache가 다음 PHP 스 니핏으로 적절한 GID (그룹 ID)에서 실행되고 있는지 확인할 수 있습니다.

<?php

var_dump(posix_getegid());

와 동일한 GID를 반환해야합니다 vboxsf. (당신의 vboxsf의 GID를 찾을 수 있습니다 /etc/groups)


물어보기 전에 오류 로그를 보는 것을 잊었습니다. 오늘 저녁에 확인하겠습니다. 그러나 권한 오류라고 가정하십시오. 위의 George에 대한 나의 답변보기
jcolebrand

확인. 그런 다음 Apache를 GID로 실행하는 데 중점을 두어야합니다 vboxsf. 변경 한 관련 부품을 편집하고 게시 할 수 있습니까 Group?
Josh

envvars에서 한 줄을 편집하고 그룹이라고 말했지만 지금 상자를 보지 않았습니다.
jcolebrand

0

공유 폴더가 자동 마운트되도록 구성한 경우 그런 다음 먼저 동일한 폴더를 비활성화하고 공유 폴더를 수동으로 마운트해야합니다. vm을 시작할 때마다 자동 마운트가 필요한 경우 / etc / fstab에 해당 항목을 추가해야합니다. (fsbox를 통해 vbox 공유 폴더를 마운트하는 데 문제가있는 것 같습니다. 따라서 /etc/rc.local에 아래 언급 된 명령을 추가하면 시작시 마운트 할 수있었습니다).

올바른 사용자 / 그룹으로 공유 폴더로드

내가 알 수있는 한이 오류는 공유 폴더의 소유자와 그룹으로 인한 것입니다. Apache는 파일이 www-data 그룹에 속할 것으로 예상합니다. 그러나 기본적으로 VirtualBox의 공유 폴더는 vboxsf 사용자에 속합니다. 이 사용자를 www-data 그룹에 추가합니다. 이렇게하려면 게스트에서 그룹 속성을 편집하십시오.

sudo usermod -a -G vboxsf www-data

이제 공유 폴더를 마운트하고 www-data 사용자 및 그룹에 할당합니다. 사용자 및 그룹 ID를 확인하려면 게스트 시스템에서 / etc / passwd 파일 (cat / etc / passwd | grep 'www-data')을 살펴보십시오. 데비안 기반 OS에서, 두 ID는 보통 33으로 설정됩니다. 따라서 게스트에서 다음 명령을 실행하면됩니다.

mount -t vboxsf -o rw,uid=33,gid=33 website /media/sf_website

website는 공유 폴더의 이름이며 (위 스크린 샷 참조) / media / sf_website는 폴더가 마운트 될 위치입니다.

자세한 내용은 http://jimmybonney.com/articles/configure_virtualbox_shared_folder_apache_virtual_host/ 링크를 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.