방랑 공유 디렉토리에서 setfacl 실행


10

방대한 VM으로 Symfony2 프로젝트를 시작하고 실행하려고합니다. 나는 이것에 대한 기사를 보았지만, 캐시 디렉토리를 올바르게 허가받는 것은 엄청나게 고통스러운 것으로 판명되었습니다.

Vagrantfile:

config.vm.share_folder("src", "/var/www", "../www")

내 VM의 fstab파일 :

proc            /proc           proc    nodev,noexec,nosuid 0       0
/dev/mapper/ubuntu--1110-root /               ext4    acl,errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=4ed7eaaf-6f42-48ba-b5ed-f0c1df9add38 /boot           ext2    defaults        0       2
/dev/mapper/ubuntu--1110-swap_1 none            swap    sw              0       0

acl 패키지가 VM에 설치되었습니다.

Symfony2 설치 지침에 따라 / var / www에서 다음을 실행할 때 :

 sudo setfacl -R -m u:apache:rwx -m u:username:rwx app/cache app/logs

나는 얻다:

지원되지 않는 작업

FS의 다른 디렉토리 또는 파일 (공유 디렉토리 외부)에서 명령을 실행할 수 있으며 명령이 작동합니다. 무엇을 제공합니까?


이 지금은 주위에이 작품을 실제 문제를 해결하지만, 실행되지 않았다 stackoverflow.com/questions/7357120/...
조쉬 남경 무명에게

답변:


6

Symfony2 및 Vagrant의 모든 권한 문제를 무시하기 위해 가장 쉬운 해결책은 아파치를 실행하는 사용자 및 그룹을 방랑자로 변경하는 것입니다. 이렇게하려면 / etc / apache2 / envvars 파일을 편집하고 16 행과 17 행을 다음과 같이 바꾸십시오. export APACHE_RUN_USER = vagrant export APACHE_RUN_GROUP = vagrant이 지침은 Ubuntu의 Apache 2.2에 대한 것이므로 Apache 및 OS 버전에서 참조하십시오. 그래서.

아파치 사용자와 그룹을 변경하지 않으려면 램 디스크를 마운트하고 심포니 프로젝트를 배치하십시오. 그러면 vagrant는이 디스크에 대한 권한을 수정할 수 있습니다. 램 디스크 마운트 방법에 대한 지침 은 이 링크 를 참조하십시오 .


3

더 나은 솔루션은 속성 재정의를 사용하는 것입니다. Opscode Wiki를 참조하십시오 .

예를 들어 역할 정의에서 :

override_attributes({
    "apache" => {
      "user" => "vagrant",
      "group" => "vagrant"
    }
})

공유 폴더에서 Typo3와 동일한 문제가 발생하여 임시 파일을 만들지 못했습니다.

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