【问题标题】:XAMPP localhost returns object not found after installing Laravel安装 Laravel 后 XAMPP localhost 返回对象未找到
【发布时间】:2013-06-12 08:23:49
【问题描述】:

经过一番折腾后,我让 laravel 与 XAMPP 一起工作。但是,我现在似乎无法通过 localhost 访问 htdocs 文件夹中的目录。尝试访问文件会返回 Object not found! 以及 The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

我为使 laravel 工作所做的更改现在看起来很模糊。我记得做的唯一一件事是编辑hosts 文件以通过在主机文件中添加127.0.0.1 laravel.dev 来启用虚拟主机(使用mac btw)。我还在 httpd-vhost.conf 文件中添加了一个虚拟主机。

我确实撤消了上述更改,但没有任何影响。

你有什么想法吗?

谢谢。

解惑 只是想我会澄清我的经历。在安装 laravel 4 之前,我可以使用 localhost/someProjectName 访问我的所有项目,但现在它失败了。

我正在尝试确定是什么变化导致了这种行为。顺便说一句,我访问我的 laravel 项目没有问题(我的映射允许我通过 laravel.dev 访问它)

【问题讨论】:

  • @asipiringCodeArtisan 我也遇到了完全相同的错误。我使用 composer 安装了 Laravel,并使用 artisan serve 为 Laravel 驱动的站点提供服务。从那以后,我现有的(非 Laravel)项目不再按预期在虚拟主机中工作。你最终解决了这个问题吗?
  • @nickspiel:我怀疑这与虚拟主机配置有关。我没有解决办法,我只知道问题出在哪里。
  • 是的,你是对的,事实证明我在 mys 日志文件的路径中有错字。 - 小学生错误。

标签: php laravel xampp laravel-4


【解决方案1】:

查看您的 /etc/httpd.conf 文件,看看您是否激活了虚拟主机。

如果是这样,请检查您的 etc/extra/httpd-vhosts.conf 文件。您可能已经设置了 VirtualHost。

编辑:我发现一旦你打开虚拟主机,XAMPP 需要一个默认的虚拟主机来保存你的基本 htdocs 文件

尝试添加一个默认的 VirtualHost(在文件底部),如下所示:

<VirtualHost *:80>
ServerName localhost
DocumentRoot "/Applications/XAMPP/htdocs"
<Directory "/Applications/XAMPP/htdocs">
Options Indexes FollowSymLinks Includes execCGI
AllowOverride All
Order Allow,Deny
Allow From All
</Directory>
</VirtualHost>

【讨论】:

  • 您或许应该尝试解释您的建议在这里做什么,而不是简单地给出指示 - 这样提出问题的用户也可以学习:)
  • 我需要在“全部允许”之后添加这一行:“要求全部授予”
【解决方案2】:

在我看来,您的目录配置方式有问题。请务必创建一个指向应用程序目录中的 public 文件夹的虚拟主机(如果您使用的是 Apache)。

例如,如果您的 Laravel 项目位于 /Applications/XAMPP/htdocs/Laravel 下,则像这样设置虚拟主机:

<VirtualHost *:80>
    DocumentRoot /Applications/XAMPP/htdocs/Laravel/public

    # Other directives here
</VirtualHost>

此外,如果您使用的是 PHP >= 5.4,请通过 SSH 进入应用程序文件夹并运行

./artisan serve

(确保您的 PHP 可执行文件在您的 PATH 变量中)。然后去 localhost:8000 你应该让你的应用程序运行。 运行该命令会运行 PHP 内置的 webserver,省去配置虚拟主机的麻烦。

【讨论】:

    【解决方案3】:

    在您的 Apache 的 http.conf 中,找到 DocumentRoot 行并在末尾添加子目录 /public

    一旦完成并重新启动 Apache,您将能够访问包含在 htdocs/public 文件夹中的所有内容(包括该文件夹的子目录),以及您在 Laravel 中定义的任何路由。

    Laravel 旨在以这种方式设置,通过不将代码和文件放在提供给网络的文件夹中来保护它们。

    【讨论】:

    • 嘿,我实际上是在尝试访问我的非 laravel 驱动的项目。我可以成功访问我的 laravel 项目,但其他项目似乎失败了。
    【解决方案4】:

    我有同样的问题,发现 vhost 中存在配置错误。所以这是正确的配置。

    etc/extra/httpd-vhosts.conf

    <VirtualHost *:80>
        DocumentRoot "D:/xampp/htdocs/laravel-master/public"
        ServerName laravel.local
        ErrorLog "logs/laravel-master-error.log"
         <Directory D:/xampp/htdocs/laravel-master/public>  
            AllowOverride All
            Order Allow,Deny
            Allow From All
        </Directory>
    </VirtualHost>
    

    在主机文件中

    127.0.0.1 laravel.local
    

    【讨论】:

      【解决方案5】:

      我不知道你运行的是 L4 还是 L3。但是,启动 CLI 并

      $ cd ./path/to/project

      那么对于 L4:

      $ php artisan serve
      

      对于 L3:

      $ php -S localhost:8000 -t public
      

      现在您可以转到localhost:8000 并查看您的申请。

      【讨论】:

        【解决方案6】:

        您遇到了问题,因为您的 htdocs 目录中确实不存在该对象。您不必在localhost127.0.0.1 之后附加xampp,因为xampp 会将其视为htdocs 下的对象或文件夹。

        如果您想访问您的博客,请确保您在 htdocs 下有一个博客文件夹并输入您的 URL localhost/blog

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-06-16
          • 2016-07-15
          • 2012-02-25
          • 2013-11-25
          • 2013-10-29
          • 1970-01-01
          • 2016-10-09
          • 2018-12-18
          相关资源
          最近更新 更多