it-swarm-ja.com

LaravelおよびApache2:403禁止

LaravelアプリをApache2にローカルにデプロイしようとしていますが、http://myapp.localhost.com/を参照しようとすると、次のエラーが表示されます。

Forbidden

You don't have permission to access / on this server.

Apache/2.4.7 (Ubuntu) Server at myapp.localhost.com Port 80

myapp.conf/etc/Apache2/sites-availableを作成して、仮想ホストをセットアップしました。

<VirtualHost *:80>
  ServerName myapp.localhost.com
  DocumentRoot "/home/user/projects/myapp/public"
  <Directory "/home/user/projects/myapp/public">
    AllowOverride all
  </Directory>
</VirtualHost>

/etc/Apache2/sites-enabledSudo ln -s ../sites-available/myapp.conf)にシンボリックリンクを作成しました

/etc/hostsファイルも編集して追加しました:

127.0.0.1   myapp.localhost.com

このエラーが発生する理由は何ですか?アプリケーションをApache2も使用するherokuにデプロイしようとすると、同じ問題が発生します。

2
dabadaba

私は欠けています

Options Indexes FollowSymLinks Includes ExecCGI

myapp.confで。 Apache-2.4現在、mod_authz_Hostが使用されており、Require(例Require all granted)を使用する必要があります。

ところで...これ:

このサーバーで/にアクセスする権限がありません。

Httpd.confを使用する場合、Apacheをデフォルトとして覚えています。 sites-*/*が使用されていますか?

1
Rinzwind

VirtualHostで、ホームディレクトリのLaravelアプリケーションを指すようにDocumentRootを記述します。さらに、以下に示すディレクトリを独自のパスとともに追加する必要があります。

<Directory /home/john/Laravel_Projects/links/public/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        Require all granted
</Directory>

2番目のステップでは、Laravelプロジェクトに移動して、次のコマンドを実行する必要があります。

Sudo chmod -R 777 storage bootstrap/cache

最後に、Apache2を再起動します。

Sudo service Apache2 restart
0