VirtualBoxには、共有フォルダーという機能があり、ホストOS上のフォルダをゲストOSに自動的にマウントしてくれる機能があります。
Web系開発などで、ソースファイルをいじりたいときに、SMBやFTPなどで管理するよりも、直接いじれてしかもローカルのストレージ上なのでとても早くて便利です。
ですが、そのままだといろいろ問題があります。
パーミッションが変更できない
問題として、共有フォルダのパーミッションや所有者が変更できません。chmodコマンドなどで変更しようとしても無視されます。
これは、仕様上、”できない”ものとしてあきらめるしかないようです。
ということで、ユーザーの方から読み書きできるように、グループの追加を行います。
共有フォルダはvboxsfというグループになるのでapacheユーザーで読み書きできるようにするには以下のようにします。
gpasswd -a apache vboxsf
apacheグループで読み書きできれば、よほどパーミッションにうるさいシステムじゃない限りあまり問題は起きないと思います。
※ですが、本番環境・ステージング環境とかではちゃんと設定したほうがいいですね。
因みに、デフォルトのパーミッションは、手動でマウントすれば変更できます。
mount -t vboxsf -o dmode=0777,fmode=0777 (共有名) (マウント先)
それでもapacheからファイルが見れない
それでもなぜかapacheからファイルが見えないという場合は…VirtualBoxとは直接関係ないですが、たぶんSELinuxだと思います。
getenforce でEnforcingと出てくればSELinuxが生きています。
とりあえず、setenforce 0 で無効にして試してみてください。
これでうまく言った場合は、Selinuxが原因なので、”ちゃんと設定”しましょう。
開発環境などで、特に不要という場合は下記で無効にできます。
# vi /etc/selinux/config SELINUX=enforcing
enforcingをdisabledにして再起動すれば無効にできます。