在没有 php artisan serve 的情况下运行 laravel 5 应用程序

Posted

技术标签:

【中文标题】在没有 php artisan serve 的情况下运行 laravel 5 应用程序【英文标题】:Run laravel 5 app without php artisan serve 【发布时间】:2016-11-25 01:42:08 【问题描述】:

我在 laravel 5.2 中创建了小型博客应用程序。每当我使用 php artisan serve 运行它时,该应用程序就可以工作。 但是没有运行 artisan serve ,当我从公共文件夹访问它时,例如localhost/blog/public/addBlog 它给出了找不到错误页面。

我的 routes.php 有以下几行 Route::get('addBlog','BlogsController');

通过访问http://localhost:8000/addBlog,它可以与 php artisan serve 正常工作

【问题讨论】:

【参考方案1】:

解决方案非常简单。 Laravel 期望你的公用文件夹是 webserver / url / domain 的根目录。

使用 serve 命令有效,因为 localhost:8000 是根目录。

使用较长的 url 不起作用,因为您的根是 localhost/blog 而不是 localhost。

一个相当简单的解决方案是创建一个虚拟主机,为了解释你如何做到这一点,我们需要知道你的本地主机上正在运行什么(xampp?wamp?)

不过,解决方案是虚拟主机指向 localhost/blog/public

更新 wamp 虚拟主机的示例

C:\Windows\System32\drivers\etc\hosts => 以管理员身份打开并添加

127.0.0.1 blog.dev

C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf

<VirtualHost *:80>
  ServerName blog.dev
  DocumentRoot "C:\wamp\www\blog\public"
  ServerAlias blog.dev
</VirtualHost>

xampp基本一样,只是vhosts conf的路径不一样

进行更改后不要忘记重新启动 wamp/xampp。然后只需通过浏览器打开http://blog.dev 即可享受

【讨论】:

【参考方案2】:

Laravel 期望该文件夹位于应用程序的根目录中,因此设置一个虚拟主机并更新您的主机文件以匹配。

【讨论】:

【参考方案3】:

使用以下命令

sudo a2enmod rewrite

我已经尝试过 ubuntu,但我不确定它是否会在另一个操作系统中运行

【讨论】:

以上是关于在没有 php artisan serve 的情况下运行 laravel 5 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

php artisan serve [ErrorException] laravel

Laravel:php artisan serve 无法启动

php artisan serve 找不到 autoload.php

php artisan serve - 如何让mysql运行

如何使用 php artisan serve 设置域名

php artisan serve 不能使用不同的端口