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(共有ディレクトリの外)にある他のディレクトリまたはファイルでコマンドを実行でき、コマンドは機能します。何が得られますか?
Symfony2とVagrantのすべての権限の問題を回避するには、Apacheを実行しているユーザーとグループをvagrantに変更するのが最も簡単な解決策です。これを行うには、ファイル/ etc/Apache2/envvarsを編集し、16行目と17行目を次のように置き換えます。exportApache_RUN_USER= vagrant export Apache_RUN_GROUP = vagrantこれらの手順はUbuntu上のApache2.2用であることに注意してください。そう。
Apacheのユーザーとグループを変更したくない場合は、ramdiskをマウントしてsymfonyプロジェクトをその上に置くこともできます。次に、バグラントはこのディスクの権限を変更できます。 RAMディスクをマウントする方法については、 このリンク を参照してください。
より良い解決策は、属性のオーバーライドを使用することです。 Opscode Wiki を参照してください。
たとえば、役割の定義では:
override_attributes({
"Apache" => {
"user" => "vagrant",
"group" => "vagrant"
}
})
共有フォルダー内のTypo3で同じ問題が発生し、一時ファイルを作成できませんでした。