vagrant共有ディレクトリでsetfaclを実行する


10

Symfony2プロジェクトをvagrant VMで稼働させようとしています。これに関する膨大な数の記事を見てきましたが、キャッシュディレクトリに適切なアクセス許可を取得することは、耐え難いほど苦痛を伴うことが判明しています。

私の中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のすべての権限の問題を回避するには、Apacheを実行しているユーザーとグループをvagrantに変更するのが最も簡単な解決策です。これを行うには、ファイル/ etc / apache2 / envvarsを編集し、16行目と17行目を次のように置き換えます。そう。

Apacheのユーザーとグループを変更したくない場合は、ramdiskをマウントしてsymfonyプロジェクトをその上に置くこともできます。次に、バグラントはこのディスクの権限を変更できます。RAMディスクをマウントする方法については、このリンクを参照してください。


3

より良い解決策は、属性オーバーライドを使用することです。Opscode Wikiを参照してください。

たとえば、ロール定義では:

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

共有フォルダ内のTypo3で同じ問題が発生し、一時ファイルを作成できませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.