【问题标题】:Laravel Access forbidden on localhost xampplocalhost xampp 上禁止 Laravel 访问
【发布时间】:2016-05-16 17:01:55
【问题描述】:

我刚开始就卡住了。我已经安装了 laravel,当我运行 php artisan serv 命令时,会出现这个(Laravel development server started on http://localhost:8000/)行但是当我通过浏览器访问它时(http://localhost:8000/)然后显示以下错误。

禁止访问! 您无权访问请求的对象。它要么是读保护的,要么是服务器不可读的。 如果您认为这是服务器错误,请联系网站管理员。 错误 403 本地主机 Apache/2.4.18 (Win32) OpenSSL/1.0.2e PHP/7.0.2

请帮帮我。任何帮助将不胜感激。我是 laravel 的初学者。

【问题讨论】:

  • 那你检查你安装的php框架的文件权限了吗? http 服务器进程可以读取这些文件吗?因为错误信息明确指出不能,不是吗?
  • 是的。但我不知道如何检查文件权限。我应该在哪里检查我的意思是必须有任何命令或其他东西。如果我的项目路径是 C:\Users\Shivam\Desktop\laravel_project\blog>,如何更改文件权限
  • 啊,对不起,我的错,没有发现您使用的是 MS-Windows 环境。在这种情况下,文件权限不是问题,这些系统不提供与之相媲美的功能。
  • 是的,我使用的是 windows 环境。那么问题到底出在哪里?

标签: apache laravel xampp laravel-artisan


【解决方案1】:

按照以下步骤创建虚拟主机:

切换到您的 XAMPP 安装目录(通常为 C:\xampp)并使用您喜欢的文本编辑器打开 apache\conf\extra\ 子目录中的“httpd-vhosts.conf”和“httpd-xampp.conf”文件. 使用以下指令将这些行添加到两个文件中:

<VirtualHost *:80>
       DocumentRoot "C:\Users\Shivam\Desktop\laravel_project\blog"
       ServerName blog.dev
   <Directory "C:\Users\Shivam\Desktop\laravel_project\blog">
    Options Indexes FollowSymLinks MultiViews   
    AllowOverride all 
    Order Deny,Allow
    Allow from all
    Require all granted
  </Directory>  
</VirtualHost>

这包含两个虚拟主机配置块:

第一个块是默认或后备虚拟主机,用于后续块不匹配的所有请求。 第二个块设置一个名为 wordpress.localhost 的虚拟主机。 DocumentRoot 指令指定为该虚拟主机服务请求时要使用的目录(在本例中为 WordPress 安装目录),而 ServerName 指令指定虚拟主机的自定义域名。

要添加更多虚拟主机,只需复制第二个虚拟主机块并根据您的要求修改端口号、DocumentRoot 和 ServerName 指令。例如,如果您想将 SSL 与您的自定义域名一起使用,您可以为端口 443 添加一个新的虚拟主机块。 如果您计划拥有大量配置非常相似的虚拟主机,请考虑在虚拟主机中使用基于通配符的子域。

使用 XAMPP 控制面板重新启动 Apache 以使您的更改生效。

此时,您的虚拟主机已配置完毕。但是,如果您尝试浏览 wordpress.localhost 域,您的浏览器将显示失败通知,因为该域实际上并不存在。要解决此问题,需要将自定义域映射到本地 IP 地址。为此,请打开文件 C:\windows\system32\drivers\etc\hosts 并向其中添加以下行:

127.0.0.1           blog.dev

这负责将 wordpress.localhost 域名映射到本地机器,该机器的 IP 地址始终为 127.0.0.1

【讨论】:

  • 感谢您宝贵的时间。我想问一下我需要更改 DocumentRoot "C:/xampp/apps/laravelProject/public" 吗?我将您的代码按原样粘贴在两个文件中,但似乎对我不起作用。同样在 win 8 中,它不允许我编辑 ...etc/hosts 文件。它说请检查此文件是否在另一个文档中打开。
  • 好的,给我xampp目录的路径。要编辑 etc/hosts,只需将其复制到另一个目录(例如桌面)并编辑它,然后将其替换为 etc/hosts 中的文件
  • 我已将这一行(127.0.0.1 laravelProject.dev)粘贴到 hosts 文件中。我的 xampp 目录的路径是 C:\xampp
  • 好,给我你的项目公共文件夹的路径
  • 这里是我的 laravel 项目 C:\Users\Shivam\Desktop\laravel_project\blog 的路径
【解决方案2】:

在我看来,您已经在端口 8000 上运行了 Apache。

尝试像这样运行 serve 命令: php artisan serve --port=9000

运行后导航到http://localhost:9000

【讨论】:

  • 谢谢。但它没有用。我更改了端口,然后再次启动了相同的问题服务器,但是当我导航到 localhost:9000 时,它说您无权访问请求的目录
猜你喜欢
  • 2017-03-20
  • 2018-10-07
  • 2020-07-10
  • 2013-07-22
  • 2022-12-31
  • 2015-11-11
  • 2013-01-19
  • 2014-10-22
  • 2017-02-20
相关资源
最近更新 更多