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
本当にありがとうございます、あなたはクリスマスの日から完全な見知らぬ人を助けるのに時間がかかりすぎました、あなたは素晴らしい人です。
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はその場所にアクセスできました。
私自身は初心者ですが、このケースを解決するためのちょっとしたヒントを提供できます。通常、ルートユーザー(デフォルト)が所有するディレクトリ構造を持っています。通常のユーザーがWebディレクトリ内のファイルを変更できるようにしたい場合は、次のようにして所有権を変更できます。
Sudo chown -R $USER:$USER /media/sf__www/lara/
このLaraディレクトリが一般ユーザーによって所有されていることを確認してください。所有していない場合は、上記のコマンドを試してからApacheを再起動してください。問題が解決するかどうか教えてください。