0

0

(我的第一次)安装 Laravel

心靈之曲

心靈之曲

发布时间:2024-11-25 08:00:15

|

900人浏览过

|

来源于dev.to

转载

有时,尤其是当您刚刚开始职业生涯时,您似乎遵循了指示却一事无成 - 而其他人似乎发现这非常容易。

这可能非常令人沮丧,我想描述一下即使在几十年之后我也经历完全相同的事情的几种方式。所以我在这里,试图详细描述我在努力让事情顺利进行时所犯的错误和失误。这是我关于这个主题的第一篇文章,但我希望发表更多。

让我们来学习 laravel

laravel 致力于提供令人惊叹的开发者体验 [...] 无论您是 php web 框架新手还是拥有多年经验 [...]

laravel 被誉为“开发人员的框架”,至少在 php 圈子里是这样,因为它比其他框架更简单,并且需要简单而严格的架构决策。我已经完成了其他一些 php 框架 - drupal 7 、drupal 8 、symfony、wordpress、concrete5、prestashop、codeigniter 从我的脑海中浮现出来 - 所以我不打算讨论这个毫无准备。

我将从一台准系统笔记本电脑开始,看看我能走多远。

安装先决条件(tldr;问题:零,信心:最高)

在创建您的第一个 laravel 应用程序之前,请确保您的本地计算机已安装 php、composer 和 laravel 安装程序。此外,您应该安装 node 和 npm 或 bun,以便可以编译应用程序的前端资产。

好的。不是问题。我将自己安装一些 php,从 getcomposer.org 获取 composer,并弄清楚下一步如何安装“laravel 安装程序”。显然我的发行版已经安装了 node 22,或者是我之前设置其他东西时安装的,所以应该涵盖这一点。

$ 作曲家全局需要 laravel/installer

繁荣。完毕。还没有问题,我们有了一个良好的开端,信心空前高涨。

建立一个新的 laravel 项目(tldr;问题:一些,信心:高)

$ laravel 新示例应用
zsh:找不到命令:laravel

哦。也许我必须重新审视那个至高无上的信心。

因此,composer 似乎没有将任何内容安装到常规二进制路径中,并且 composer 安装程序也没有执行任何操作将自身添加到系统路径中。我以前从来没有真正面对过这个问题,因为我直接从 composer 安装的二进制文件出现的任何路径运行它们。例如,对于 drupal,有供应商/drush/drush/drush 或供应商/bin/drush,具体取决于你正在运行哪个版本。我是否需要为自己添加符号链接或别名,或者在作曲家“全局”添加的地方找到 laravel 二进制文件?

我不知道,所以我必须寻找这个。

我在 stack overflow 的答案中找到了一些线索:你可以使用 composer 全局配置 bin-dir --absolute 找到 composer 二进制目录,显然在现代版本的 composer 中,所有带有可执行命令的东西都会将其放入该目录中而不是迷失在等级制度中。

好。我可以在启动脚本中添加一些内容,将其放入我的路径中...除了该命令生成的不仅仅是路径...

$ 作曲家全局配置 bin-dir --absolute
将当前目录更改为 /home/moopet/.config/composer
/home/moopet/.config/composer/vendor/bin

...而且我不能使用整个字符串作为目录。也许我需要使用 tail 来获取最后一行,或者其他东西。等等,不,这个答案还有另一个评论,其中包括 --quiet 标志。那有什么作用?我会尝试composer --help:

用法:
列表 [选项] [--] [<namespace>]

嗯,呃,事实证明,在裸露的composer命令上运行--help实际上为list子命令提供了帮助,而不是composer本身。这让我困惑了一分钟。

-q --quiet 不输出任何消息

嗯,这听起来没什么用!我们想要一些输出。还有什么?

--raw 输出原始命令列表
--format=format 输出格式(txt、xml、json 或 md)[默认值:“txt”]

也许是其中之一?

“--raw”选项不存在。
“--format”选项不存在。

不。正如我所想,这些是列出的选项,而不是通用标志。

无论如何,让我们用 --quiet 来运行它,只是为了便便和搞笑:

$ 作曲家全局配置 bin-dir --absolute --quiet
/home/moopet/.config/composer/vendor/bin

嗯,你知道吗,它成功了。只是记录得很糟糕。

我将使用一些保护代码将其弹出到我的 shell 启动脚本中,然后我们可以继续:

if command -v composer >/dev/null; then
  export PATH=$(composer global config bin-dir --absolute --quiet):$PATH
fi

设置一个新的 laravel 项目,采取 2(tldr;问题:一些,信心:动摇)

这次 laravel 新的示例应用程序启动,并提示我一些事情。我接受默认值,因为除了入门套件之外,我还没有阅读足够多的文档来了解其中的差异。我选择“breeze”,因为文档中就是这样的。

它开始安装过程,一切看起来都很好,直到:

- 根 composer.json 需要 laravel/pint ^1.0 -> 可满足 laravel/pint[v1.0.0, v1.1.0, v1.1.1]。
- laravel/pint[v1.0.0, ..., v1.1.1] 需要 ext-xml * -> 您的系统中缺少它。安装或启用 php 的 xml 扩展。

等等,php 需要 xml 扩展吗?这从未被列为要求!好的,我将快速安装 php-xml。

好的,全部安装完毕。我将再次运行设置。

laravel 新示例应用程序
在 newcommand.php 第 789 行:
申请已存在!

哦。

Typeface
Typeface

AI创意内容创作助手

下载

因此,安装程序完成了一半,但由于未验证其依赖项而失败,并使应用程序处于损坏状态。这不是一个好兆头。 laravel 已经推出,什么,版本 11?

(我的第一次)安装 Laravel

他们现在肯定已经完成了基本的前期要求检查了吗?那好吧。我只需 rm -r example-app 并重新开始,没有任何损失,因为我还没有真正开始。

长话短说1下一个缺少的依赖项是 dom 扩展,或者可能是 xml 扩展。或者也许是 curl 扩展。

- phpunit/phpunit[11.0.1, ..., 11.4.3] 需要 ext-dom * -> 您的系统中缺少它。安装或启用 php 的 dom 扩展。
- 根composer.json需要phpunit/phpunit ^11.0.1 ->可由phpunit/phpunit[11.0.1, ..., 11.4.3]满足。

所以我需要安装 php-dom 吗?不,尝试其他一些。再次堆栈溢出。原来我需要安装 php-curl。好的。

继续。 rm -r 目录并再次运行安装向导。

建立一个新的 laravel 项目,采取 3(tldr;问题:hngg,信心:仍然摇摆不定,但最近解决问题的成功得到了支撑)

它提示我使用哪个数据库服务器。他们所有人都在旁边说“缺少 pdo 扩展”。

叹息。

我退出安装程序,再次删除整个目录,apt安装php8.3-mysql,因为没有直接的php-pdo包,也没有可用的php-mysql别名,所以我做了一些烦人的apt正在寻找。

illuminatedatabasequeryexception
sqlstate[hy000] [2002] 连接被拒绝(连接:mysql,sql:选择存在(从 information_schema.tables 选择 1,其中 table_schema = 'laravel_example_app' 和 table_name = 'migrations' 和 table_type in ('base table', 'system versioned' )) 作为“存在”)

现在怎么办? 此安装程序从未要求我提供数据库的连接详细信息。它试图针对...某物运行 sql 命令。谁知道呢?

碰巧,我在 lan 中的另一台主机上运行了一个 mysql 服务器,并准备使用它(尽管我会注意到,自带数据库并未被列为 laravel 的要求)。我想我应该安装 sqlite,也许这会起作用,因为它不需要任何凭据。

sudo apt install php8.3-sqlite

再试一次。

rm -r 示例应用
laravel 新示例应用程序
...

巨大的成功。黑客的声音“我在”。为了胜利。成功的孩子。

(我的第一次)安装 Laravel

结论

我成功了吗?我想。

但是如果有人问我这可能需要多长时间,那么基于热情的文档和声誉,我会说 20 分钟。如果我是为了工作而这样做,根据开发人员的经验估计,我的项目经理会加倍或四倍。

我真的花了多长时间?一天晚上一个小时左右,第二天一个小时左右。我并不着急,但事情并不简单。

你知道吗? 我对此不满意。它没有使用 mysql,因为安装程序的这一部分似乎完全损坏了。我正在使用 sqlite,这距离实际生产环境中发生的情况又近了一步。因此,在我开始实际教程之前,todo 列表中肯定还剩下一些事情。

但是它运行了。构建步骤声称他们顺利进行。

我已准备好进入下一阶段:修复在浏览器中打开演示页面后控制台中出现的 jsonexception、语法错误和 processtimedoutexception。

(我的第一次)安装 Laravel

呃哦。

如果一切顺利就好了,嗯。


  1. 合唱:太晚了↩

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
PHP Symfony框架
PHP Symfony框架

本专题专注于PHP主流框架Symfony的学习与应用,系统讲解路由与控制器、依赖注入、ORM数据操作、模板引擎、表单与验证、安全认证及API开发等核心内容。通过企业管理系统、内容管理平台与电商后台等实战案例,帮助学员全面掌握Symfony在企业级应用开发中的实践技能。

87

2025.09.11

laravel组件介绍
laravel组件介绍

laravel 提供了丰富的组件,包括身份验证、模板引擎、缓存、命令行工具、数据库交互、对象关系映射器、事件处理、文件操作、电子邮件发送、队列管理和数据验证。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

341

2024.04.09

laravel中间件介绍
laravel中间件介绍

laravel 中间件分为五种类型:全局、路由、组、终止和自定。想了解更多laravel中间件的相关内容,可以阅读本专题下面的文章。

295

2024.04.09

laravel使用的设计模式有哪些
laravel使用的设计模式有哪些

laravel使用的设计模式有:1、单例模式;2、工厂方法模式;3、建造者模式;4、适配器模式;5、装饰器模式;6、策略模式;7、观察者模式。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

795

2024.04.09

thinkphp和laravel哪个简单
thinkphp和laravel哪个简单

对于初学者来说,laravel 的入门门槛较低,更易上手,原因包括:1. 更简单的安装和配置;2. 丰富的文档和社区支持;3. 简洁易懂的语法和 api;4. 平缓的学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

386

2024.04.10

laravel入门教程
laravel入门教程

本专题整合了laravel入门教程,想了解更多详细内容,请阅读专题下面的文章。

146

2025.08.05

laravel实战教程
laravel实战教程

本专题整合了laravel实战教程,阅读专题下面的文章了解更多详细内容。

85

2025.08.05

laravel面试题
laravel面试题

本专题整合了laravel面试题相关内容,阅读专题下面的文章了解更多详细内容。

84

2025.08.05

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

69

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.6万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 854人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号