使用“php artisan serve”命令运行 Laravel 有啥意义?

Posted

技术标签:

【中文标题】使用“php artisan serve”命令运行 Laravel 有啥意义?【英文标题】:Whats the point of running Laravel with the command 'php artisan serve'?使用“php artisan serve”命令运行 Laravel 有什么意义? 【发布时间】:2017-04-15 00:26:04 【问题描述】:

我似乎不明白为什么我们需要使用 php artisan serve 运行 Laravel 应用程序而不是仅使用 Apachenginx 运行它。我知道在开发中,我们使用 artisan 来启动网站,部署到服务器后,您使用网络服务器加载网站。

首先在 artisan 中运行应用程序有什么用?

【问题讨论】:

您不必需要这样做。它适用于由于某种原因您没有可用的 Web 服务器的情况。这个原因可能是任何原因,因此要涵盖服务器不可用或配置错误的情况 - 您可以使用php artisan serve 为什么没有足够的文档? 为什么会有?没有任何暗示您必须使用它,它只是在您可能需要它的情况下存在。某些功能不需要记录到涵盖所有可能的使用场景的地步。你有 nginx / Apache 吗?伟大的!您没有并且想要快速检查某些内容或测试项目的一部分?没问题,快速php artisan serve 完成这项工作,只需几秒钟将其键入 CLI 即可启动并运行。无需过多考虑此特定功能。 【参考方案1】:

serve 命令只是PHP Built-in Webserver 的快捷方式,这是 PHP 开箱即用的东西,所以使用它的目的是尽可能快地开始测试您的应用程序,您只需要安装 PHP , Composer 和您的应用程序已启动(当然,如果您不需要其他任何东西)。但是如果你已经安装了 Nginx,那就没有任何意义了,直接用吧。

在生产环境中使用内置网络服务器是不明智的。

【讨论】:

感谢您的解释。但是很奇怪,我执行的是等价的命令,却没有加载资产:php -S 127.0.0.1:8000 C:/wamp/www/pym/server.php你知道为什么吗? 我遇到了与@JCarlosR 相同的问题,但能够通过从公共域运行“php -S”或在命令末尾添加“-t public”来解决它。跨度> 【参考方案2】:

在开发过程中使用php artisan serve 而不是典型的网络服务器的一个优点是您可以使用 Psysh 作为调试器 (Laravel Tinker) 来设置断点。

例如,在我想打断的代码行:

eval(\Psy\sh());

然后我点击将运行该部分代码的页面,当它到达该行时,它将进入一个 Psy Shell repl(在我启动 php artisan serve 的命令行窗口中)。然后我可以在执行时检查变量等。这对于调试非常有用。据我所知,您不能在运行 Apache/Nginx 时执行此操作。它必须与工匠服务(或运行自动化测试)一起使用。

更多信息在这里:

https://tighten.co/blog/supercharge-your-laravel-tinker-workflow

http://psysh.org/

【讨论】:

【参考方案3】:

目的:使用Php artisan serve(PHP内置服务器)的目的只是为了测试和轻松启动您的项目,不应该在实际网站部署中使用它。

资产不工作:始终将您的索引文件公开,这是 Laravel 框架的美感和安全性,您的资产将始终有效。如果您厌倦了使用 C:/wamp/www/pym/server.php 之类的自定义 URL,则在本地使用虚拟主机,但不要但不要将索引放在公共文件夹之外。 如果你真的想在你的根目录中使用索引,那么你应该自定义你所有的 asset()url() 帮助函数,并且应该把你的确切 url 示例资产(' /login') 应更改为asset('localhost/yourprojectroot/login')。

【讨论】:

【参考方案4】:
php artisan serve --host your_server_ip --port 8000

复制 http://your_server_ip:8000 并在浏览器中运行

【讨论】:

【参考方案5】:

嗯,一直在寻找相同的答案,但找不到任何令人满意的答案,如果您也像我一样不满意,请尝试运行运行时返回的链接

php artisan serve

返回

Laravel development server started: <http://127.0.0.1:8000>

复制 /http://127.0.0.1:8000 并在浏览器中运行它,猜猜它返回什么);你第一次安装 laravel 时第一次得到的页面,或者我猜它会返回路由文件夹中的页面设置为 /home 目录或文件(默认主页)。

简而言之:

php artisan serve

启动发球,例如,当您要开车并且在开车前启动发动机时,您可以同时启动发动机和开车,这不是必须的,而是取决于。所以对我来说就是这样php artisan serve CLI。

【讨论】:

以上是关于使用“php artisan serve”命令运行 Laravel 有啥意义?的主要内容,如果未能解决你的问题,请参考以下文章

运行 php artisan serve 命令时,laravel 无法打开流致命错误

我在 laravel 中运行“php artisan serve”命令时出错,它给出以下错误

php artisan serve - 如何让mysql运行

Laravel 项目在 Ubuntu 16.04 上未运行 php artisan serve 时无法运行

PhpStorm:运行 php artisan serve 未定义索引:REQUEST_URI [重复]

如何使用 php artisan serve 设置域名