質問: 403ローカルアプリへのアクセス試行中にエラーが発生しました 私はiis linuxを初めて開発しようとしている少年なので、優しくしてください。ok、それで...私はワークステーションをlaravelで開発するように設定しようとしています。ubuntu 18.04を使用していて、apacheをインストールしました。私はlaravel composerからインストールし、最初のプロジェクトをcomposer create-project --prefer-dist laravel/laravel mysite "5.8.*"これにより、laravel/siteという名前のプロジェクトフォルダが/ etc/apache2/sites-enabledに作成されました。次のような新しいファイル/etc/apache2/sites-available/mysite.confを追加しました。<virtualhost *:80> serveradmin webmaster@localhost servername mysite serveralias www.mysite documentroot /etc/apache2/sites-enabled/mysite/public/index.php errorlog ${apache_log_dir}/error.log customlog ${apache_log_dir}/access.log combined</virtualhost> その後、/ etc/apache2/apache2.confに次の行を追加しました。include /etc/apache2/sites-available/mysite.conf そしてもちろん、仮想サイトを同じファイルのホワイトリストに登録しました:<directory /etc/apache2/sites-available/mysite> options indexes followsymlinks allowoverride none require all granted </directory> 私はa2ensiteを実行してapacheを再起動しました。しかし、 http:// localhost/mysite または http:/にアクセスしようとすると、403エラー(禁止。このリソースにアクセスする権限がありません)が常に表示されます。 /localhost/mysite/public/index.php また、localhostの代わりに127.0.0.1を使用すると、同じエラーがスローされます。この問題に関する洞察は大歓迎です。
回答: こんにちは私はローカル開発用の仮想ホストの設定を経験したので、これがあなたに役立つことを願っています。apache.confから行を削除します:_include /etc/apache2/sites-available/mysite.conf_そして、_sudo a2ensite mysite.conf_コマンドを実行して仮想ホストを有効にします。 (mysite.confファイルは... apache/sites-available /でも同じである必要があります)vhost confファイルで、documentrootを次のように編集します_<virtualhost *:80> serveradmin webmaster@localhost servername mysite.loc serveralias www.mysite.loc documentroot /your/project/path errorlog ${apache_log_dir}/error.log customlog ${apache_log_dir}/access.log combined </virtualhost> _ここで、servernameはプロジェクトのlocalhostドメインであり、_documentroot /your/project/path_はプロジェクトがホストされているルートフォルダーです(index.htmlまたはindex.phpがあるはずです)。 _/home/yourusername/projects/mysite/public_のように、index.phpファイルではなく、フォルダーへのパスのみを指定する必要があります。また、プロジェクトをホームディレクトリに移動して、プロジェクトにアクセスするためにroot権限を必要としないようにします。プロジェクトを/ home/yourusername/projects/mysite/publicに移動できますsudoで_/etc/hosts_ファイルをvim(またはnano、sublime、または任意のエディター)で編集します。次の行を追加します。_127.0.0.1 mysite.loc _そしておそらくあなたはそれをこのように見るでしょう:_127.0.0.1 localhost 127.0.0.1 mysite.loc _次に、コマンドを実行してconfサイトを有効にします(まだ実行していない場合)。 _sudo service apache2 reload_でapacheをリロードし、_sudo service apache2 restart_でapacheを再起動します。これで、vhostsは正しく構成されましたが、apacheのフォルダーに正しいユーザーおよびグループのアクセス許可を与える必要があります。通常は_/etc/apache2/apache2.conf_にあるsudoを使用してapache confファイルを編集します。この行を見つけます:_user ${apache_run_user} group ${apache_run_group} _コメントアウトして、プロジェクトの所有者のユーザー名とグループ名に変更します。これを確認するには、ターミナルを開き、cdを使用してプロジェクトにディレクトリを変更し、コマンド_ls -l_、ファイルとフォルダーの左側にフォルダーとファイルのユーザー名とグループ名が表示されます。_~ ➜ cd sites/mysite/public sites/mysite/public via ???? v7.2.24 ➜ ls -l total 0 -rw-r--r-- 1 mauriciogtz mauriciogtz 0 nov 5 11:15 index.php _私のファイル許可所有者のユーザー名はmauriciogtz(左側)で、私のグループはmauriciogtz(右側)です。apache confファイルに次のように追加します。_#user ${apache_run_user} #group ${apache_run_group} user mauriciogtz group mauriciogtz _うまくいかなかった場合は、以前にグループ名の代わりに_group staff_を使用できます。次に、このコードブロックを探します。_<directory /> options followsymlinks allowoverride none require all denied </directory> _それをすべてコピーしてすぐ下に貼り付け、次のように変更します。_<directory /home/mauriciogtz/sites/mysite/public> options indexes followsymlinks allowoverride all require all granted </directory> _ディレクトリパスをプロジェクトパスにする必要がある場合、プロジェクトフォルダ内でpwdを使用してパスを取得できます。apacheをもう一度_sudo service apache2 restart_で再起動します。これで終了です。これがうまくいくことを願っています。