ホストへの共有フォルダーを使用して、VirtualBox VMにUbuntu11.04デスクトップ32ビットをセットアップします。共有フォルダーは
/media/sf_Dev/
DocumentRoot
がそのフォルダーを指すようにApache2を変更したいので、/etc/Apache2/sites-available/default
を編集して、ファイル内の既存のtwoパスを/ media/sf_Dev /に置き換えます。/var/wwwとすると、index.htmlは表示されません。
/var
をls -l
で見ると、
drwxr-xr-x 2 root root ... www
そして私がls -l /media/
を見ると
drwxrwx--- 1 root vboxsf ... sf_Dev
そして、Apacheは私がそのディレクトリに置いたindex.htmlを見ていないようです(cp /var/www/index.html /media/sf_Dev/
iirc)
また、envvarsを編集してグループをvboxsfにしようとしましたが、その部分は間違っていたと思います。
export Apache_RUN_GROUP=www-data
に
export Apache_RUN_GROUP=vboxsf
Apache2がそのディレクトリからファイルを提供できるようにするために何をする必要がありますか? (技術的には、Apacheのファイルを/media/sf_Dev/Apache/www
から提供したいのですが、一度に1つのステップを理解しているので、それが問題を解決するのに役立つ場合は、そうしてください)
Apacheの補足グループとしてvboxsfグループを追加するのがおそらく最も簡単でしょう。
Ubuntu:
Sudo usermod -a -G vboxsf www-data
Fedora:
Sudo usermod -a -G vboxsf Apache
これは、自動マウントされた共有フォルダーにアクセスする場合に役立ちます。ファイルにアクセスするために、vboxsfグループに独自のユーザー名を追加することもできます。
これは権限の問題のようです。 「その他」(現在パーミッションがない、または/media/sf_Dev/
であるパーミッションビットの3番目のグループ)の---
に対する読み取りおよび実行パーミッションが必要です。
したがって、次のコマンドを実行する必要があります(Ubuntuであるため、Sudoに注意してください)。
Sudo chmod 775 /media/sf_Dev/
これにより、「その他」の読み取りと実行が追加され、所有者とグループに完全な権限が残ります。
また、インデックスファイルが実際に/ media/sf_Dev /に存在することを確認してください。 (cpコマンドでSudoを忘れており、rootとして実行していないと想定します。)
あなたは特定のエラーが何であるかを言わなかった、ただ
そして、Apacheは私がそのディレクトリに置いたindex.htmlを見ないようです
特定のエラーが役立ちます。これは、Apacheのerror_log
にファイルできます。これは通常、Ubuntの/var/log/Apache2/error.log
の下にありますが、 ErrorLog
ディレクティブ を介して構成できます。あなたの<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>
EDIT:Apacheサーバーにmod_php
(FastCGI PHPではない)があり、suexec
を使用していない場合は、 Apacheは適切なGID(グループID)で実行されており、次のPHP snippit:
<?php
var_dump(posix_getegid());
がvboxsf
と同じGIDを返すことを確認してください。 (vboxsfのGIDは/etc/groups
にあります)
共有フォルダーを自動マウントするように構成した場合。次に、最初に同じものを無効にして、共有フォルダーを手動でマウントする必要があります。 vmを起動するたびに自動マウントする必要がある場合は、/ etc/fstab内にそれぞれのエントリを追加する必要があります。 (fstabを介したvbox共有フォルダーのマウントに問題があるようです。したがって、/ etc/rc.local内に以下のコマンドを追加すると、起動時にマウントできました)。
私の知る限り、このエラーは共有フォルダの所有者とグループが原因です。 Apacheは、レンダリングするファイルがグループwww-dataに属することを想定しています。ただし、デフォルトでは、VirtualBoxの共有フォルダーはvboxsfユーザーに属しています。このユーザーをwww-dataグループに追加します。これを行うには、ゲストのグループプロパティを編集します。
Sudo usermod -a -G vboxsf www-data
次に、共有フォルダーをマウントして、www-dataユーザーとグループに割り当てます。ユーザーIDとグループIDを確認するには、ゲストマシンの/ etc/passwdファイル(cat/etc/passwd | grep'www-data ')を確認します。 DebianベースのOSでは、通常、両方のIDが値33に設定されます。したがって、ゲストに対して次のコマンドを発行するだけです。
mount -t vboxsf -o rw,uid=33,gid=33 website /media/sf_website
ウェブサイトは共有フォルダーの名前であり(上のスクリーンショットに示されているように)、/ media/sf_websiteはフォルダーがマウントされる場所であることに注意してください。
詳細については、このリンクを参照してください http://jimmybonney.com/articles/configure_virtualbox_shared_folder_Apache_virtual_Host/