Laravel 和 apache2:403 禁止访问

Laravel 和 apache2:403 禁止访问

我正在尝试在本地 apache2 中部署我的 Laravel 应用程序,但是当尝试浏览时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-enabled并在(sudo ln -s ../sites-available/myapp.conf)中创建符号链接

还编辑了/etc/hosts文件并添加:

127.0.0.1   myapp.localhost.com

知道我为什么会收到此错误吗?尝试将应用程序部署到 时也遇到了同样的问题heroku,它也使用了apache2

答案1

我错过了

Options Indexes FollowSymLinks Includes ExecCGI

在您的 myapp.conf 中。从 Apache-2.4 开始,使用 mod_authz_host 并且应该使用Require (示例 )。Require all granted

顺便说一下...这个:

您无权访问此服务器上的/。

我记得在使用 httpd.conf 时,apache 是默认的。你确定正在sites-*/*使用吗?

答案2

在您的 VirtualHost 中写入 DocumentRoot 以指向您主目录中的 Laravel 应用程序。此外,您还必须添加下面显示的目录,并使用您自己的路径。

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

第二步,您必须转到您的 Laravel 项目并运行以下命令。

sudo chmod -R 777 storage bootstrap/cache

最后重新启动 apache2:

sudo service apache2 restart

相关内容