web-dev-qa-db-ja.com

ホストマシンから共有フォルダーのページを提供するようにApacheを構成する方法は?

Virtualbox 5.2.22を使用してWindows 10上でUbuntu 18.10を実行しています

私が達成しようとしていることを説明しましょう。 Windowsでは、2つの開発環境があります。 WAMPサーバーを使用して開発しています。 Dropboxを使用して、2つの開発環境を同期します。方法は次のとおりです。ディレクトリd:\Dropbox\_wwwがあり、Apacheの両方がまったく同じ方法で構成されています。開発では、SQLiteを使用しているため、データベースに問題はありません。私は問題なく1年以上この方法で作業してきました。

私の唯一の問題は、環境の1つとして自宅のコンピューターを使用し、ゲームや他のプログラムなどでいっぱいになっていることです。そのため、クリーンなVM Linuxを使用。

d:\dropbox\_wwwを共有フォルダーにし、/media/sf__wwwにマウントします。これに完全にアクセスできます。VSCodeを使用してファイルなどを編集できます。

これで、LAMPサーバーを構成し、Apache 2、PHP、およびmySQLが完全に動作し、/var/www/testで小さなページを作成しました。

私の問題は、/media/sf__wwwを指すようにApacheの仮想サーバーを構成できないことです。これは私がやったことです:

/ etc/hostsに次を追加しました:

laravel.com.devel    127.0.0.1

次のlaravel.conf/etc/Apache2/sites-availableを作成しました。

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /media/sf__www/lara/
    ErrorLog ${Apache_LOG_DIR}/error.log
    CustomLog ${Apache_LOG_DIR}/access.log combined
    ServerName laravel.com.devel
</VirtualHost>

Apache2.confには次のものがあります。

<Directory "/media/sf__www/lara/">
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

次に、サイトをアクティブにし、Apacheを再起動しました。

Sudo a2ensite laravel.conf
service Apache2 reload

今、私がブラウザに行くとき、私が得るすべては403です:

Forbidden

You don't have permission to access / on this server.
Apache/2.4.34 (Ubuntu) Server at laravel.com.devel Port 80

それがファイルシステムのパーミッションに関係しているかもしれないと思って(私はUbuntuの初心者です)、ディレクトリのすべてのパーミッションを変更するためにSudo chmod 777 lara -Rをしましたが、それでも403が得られます。

したがって、/var/www/以外のディレクトリを操作するには、Apacheをどのように構成する必要があるのか​​という考えはありますか?

編集:ll /media/sf__www/laraからの部分的な出力:

drwxrwx--- 1 root vboxsf   4096 oct 23 17:51 ./
drwxrwx--- 1 root vboxsf   4096 dic  8 09:58 ../
drwxrwx--- 1 root vboxsf   4096 oct 26 21:05 app/
-rwxrwx--- 1 root vboxsf   1686 oct 22 18:44 artisan*
drwxrwx--- 1 root vboxsf      0 oct 21 12:08 bootstrap/
-rwxrwx--- 1 root vboxsf   1477 oct 22 18:44 composer.json*
-rwxrwx--- 1 root vboxsf 144373 oct 22 18:48 composer.lock*

このディレクトリをchmod/chownできないように見えます


EDIT:グループの出力

luisferfranco@luisfer-vb:/media/sf__www/lara$ groups
luisferfranco adm cdrom Sudo dip plugdev lpadmin sambashare vboxsf

EDIT:ディレクトリでのsetfaclの出力:

luisferfranco@luisfer-vb:/media/sf__www/lara$ Sudo setfacl -d -R -m u:$USER:rwx,g:www-data:rwx,o:rx /media/sf__www/lara
[Sudo] contraseña para luisferfranco: 
setfacl: /media/sf__www/lara: La operación no está soportada
setfacl: /media/sf__www/lara/app: La operación no está soportada
setfacl: /media/sf__www/lara/app/Console: La operación no está soportada
setfacl: /media/sf__www/lara/app/Exceptions: La operación no está soportada

ファイルごとに「サポートされていない操作」と表示されます。私は他のサイトで読んでいますが、これはパーティションに関連している可能性があります


編集:[解決しよう]

ジョージ・ウドセン( https://askubuntu.com/users/459561/george-udosen user:459561)に感謝したい。 。彼はそれが機能するまでさまざまなことを試しました。基本的に、問題を解決したのは、次のように1人のユーザーをvboxsfグループに追加することでした。

Sudo adduser www-data vboxsf

本当にありがとうございます、あなたはクリスマスの日から完全な見知らぬ人を助けるのに時間がかかりすぎました、あなたは素晴らしい人です。

3
luisfer

Virtualboxがユーザーrootとグループvboxsfで共有フォルダーをマウントするため、UbuntuゲストのWindowsホストからApacheに共有フォルダーにアクセスさせようとするのは困難です。私たち(OPと私)がコマンドでその場所を再マウントしようとした後にこれを機能させるには

 Sudo mount -t vboxsf -o remount,uid=1000,gid=1000,rw __www /media/sf__www

これは機能しなかったため、次のコマンドでグループvboxsfにApacheユーザーwww-dataを追加する回避策が使用されました。

 Sudo adduser www-data vboxsf

その後、ゲストのApacheはその場所にアクセスできました。

1
George Udosen

私自身は初心者ですが、このケースを解決するためのちょっとしたヒントを提供できます。通常、ルートユーザー(デフォルト)が所有するディレクトリ構造を持っています。通常のユーザーがWebディレクトリ内のファイルを変更できるようにしたい場合は、次のようにして所有権を変更できます。

Sudo chown -R $USER:$USER /media/sf__www/lara/

このLaraディレクトリが一般ユーザーによって所有されていることを確認してください。所有していない場合は、上記のコマンドを試してからApacheを再起動してください。問題が解決するかどうか教えてください。

0
Imrank