[ Laravel 5.6 文档 ] 快速入门 —— 安装配置
ccwgpt 2024-10-17 08:07 25 浏览 0 评论
[ Laravel 5.6 文档 ] 快速入门 —— 安装配置, 文章转自laravel学院。
服务器要求
Laravel 框架对PHP版本和扩展有一定要求,不过这些要求 Laravel Homestead 都已经满足了,不过如果你没有使用 Homestead 的话(那真是一件很遗憾的事情),有必要了解下这些以便确认自己的环境满足要求:
PHP >= 7.1.3
PHP OpenSSL 扩展
PHP PDO 扩展
PHP Mbstring 扩展
PHP Tokenizer 扩展
PHP XML 扩展
PHP Ctype 扩展
PHP JSON 扩展
满足以上需求之后,就可以开始安装 Laravel 了。
安装 Laravel
Laravel 使用 Composer 管理依赖,所以,安装之前确保已经在机器上安装了 Composer(如果尚未安装的话参考这份文档去安装吧)。
通过 Laravel 安装器
首先,通过 Composer 安装 Laravel 安装器:
composer global require "laravel/installer"
确保
$HOME/.composer/vendor/bin
在系统路径中(Mac中对应路径是
~/.composer/vendor/bin
,Windows对应路径是
~/AppData/Roaming/Composer/vendor/bin
,其中
~
表示当前用户家目录),否则不能在命令行任意路径下调用
laravel
命令。
安装完成后,通过简单的
laravel new
命令即可在当前目录下创建一个新的 Laravel 应用,例如,
laravel new blog
将会创建一个名为
blog
的新应用,且包含所有 Laravel 依赖。该安装方法比通过 Composer 安装要快很多:
laravel new blog
如果之前已经安装过旧版本的 Laravel 安装器,需要更新后才能安装最新的 Laravel 5.6 框架应用:
composer global update
通过 Composer Create-Project
你还可以在终端中通过 Composer 的
create-project
命令来安装 Laravel 应用:
composer create-project --prefer-dist laravel/laravel blog
如果要下载安装 Laravel 其他版本应用,比如 5.5 版本,可以使用这个命令:
composer create-project --prefer-dist laravel/laravel blog 5.5.*。
本地开发服务器
如果你在本地安装了 PHP,并且想要使用 PHP 内置的开发环境服务器为应用提供服务,可以使用 Artisan 命令
serve
:
php artisan serve
该命令将会在本地启动开发环境服务器,这样在浏览器中通过
http://localhost:8000
即可访问应用:
?
当然,更强大的本地开发环境选择还是 Homestead 和 Valet。
配置 Laravel
初始化配置
公共目录
安装完 Laravel 后,需要将 Web 服务器的 document/web 根目录指向 Laravel 应用的
public
目录,该目录下的
index.php
文件作为前端控制器(单一入口),所有 HTTP 请求都会通过该文件进入应用。
配置文件
Laravel 框架的所有配置文件都存放在
config
目录下,所有的配置项都有注释,所以你可以轻松遍览这些配置文件以便熟悉所有配置项。
目录权限
安装完 Laravel 后,需要配置一些目录的读写权限:
storage
和
bootstrap/cache
目录对 Web 服务器指定的用户而言应该是可写的,否则 Laravel 应用将不能正常运行。如果你使用 Homestead 虚拟机做为开发环境,这些权限已经设置好了。
应用key
接下来要做的事情就是将应用的 key(APP_KEY)设置为一个随机字符串,如果你是通过 Composer 或者 Laravel 安装器安装的话,该 key 的值已经通过
php artisan key:generate
命令生成好了。
通常,该字符串应该是 32 位长,通过
.env
文件中的
APP_KEY
进行配置,如果你还没有将
.env.example
文件重命名为
.env
,现在立即这样做。如果应用 key 没有被设置,用户 Session 和其它加密数据将会有安全隐患!
更多配置
Laravel 几乎不再需要其它任何配置就可以正常使用了,不过,你最好再看看
config/app.php
文件,其中包含了一些基于应用可能需要进行改变的配置,比如
timezone
和
locale
(分别用于配置时区和本地化)。
你可能还想要配置 Laravel 的一些其它组件,比如缓存、数据库、Session 等,关于这些我们将会在后续文档一一探讨。
Web 服务器配置
关于虚拟主机的配置(映射域名到Laravel应用目录)略过,如果了解细节可参考这篇教程,当然也可以留待下一篇讲 Homestead 和 Valet 再去了解。本文只探讨如何美化 URL 让其更具有可读性。
Apache
框架中自带的
public/.htaccess
文件支持隐藏 URL 中的
index.php
,如过你的 Laravel 应用使用 Apache 作为服务器,需要先确保 Apache 启用了
mod_rewrite
模块以支持
.htaccess
解析。
如果 Laravel 自带的
.htaccess
文件不起作用,试试将其中内容做如下替换:
Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]
Nginx
如果你使用的是 Nginx,使用如下站点配置指令就可以支持 URL 美化:
location / { try_files $uri $uri/ /index.php?$query_string; }
当然,使用 Homestead 或 Valet 的话,以上配置已经为你配置好,无需额外操作。
环境配置
基于应用运行的环境不同设置不同的配置值能够给我们开发带来极大的方便,比如,我们通常在本地和线上环境配置不同的缓存驱动,这一功能在 Laravel 中很容易实现。
Laravel 使用 PHP 扩展库 DotEnv 来实现这一功能,在新安装的 Laravel 中,根目录下有一个
.env.example
文件,如果 Laravel 是通过 Composer 安装的,那么该文件已经被重命名为
.env
,否则的话你要自己手动重命名该文件。
不要试图将
.env
文件提交到版本控制系统(如Git或Svn)中,一方面,开发环境和线上环境配置值不一样,提交没有意义,更重要的是,
.env
包含了很多应用敏感信息,如数据库用户名及密码等,如果不慎将代码提交到 Github 公开仓库,后果将不堪设想!
如果你是在一个团队中进行开发,则需要将
.env.example
文件随你的应用代码一起提交到源码控制中:将一些配置值以占位符的方式放置在
.env.example
文件中,这样其他开发者就会很清楚运行你的应用需要配置哪些环境变量。
还可以创建一个
.env.testing
文件,该文件会在运行 PHPUnit 测试或执行带有
--env=testing
选项的 Artisan 命令时覆盖从
.env
文件读取的值。
注:
.env
文件中的所有变量都可以被外部环境变量覆盖,例如服务器级别或系统级别的环境变量。
获取环境变量配置值
应用每次接受请求时,
.env
中列出的所有配置及其对应值都会被载入到 PHP 超全局变量
$_ENV
中,然后你就可以在应用中通过辅助函数
env
来获取这些配置值。实际上,如果你去查看 Laravel 的配置文件,就会发现很多地方已经在使用这个辅助函数了:
'debug' => env('APP_DEBUG', false),
传递到
env
函数的第二个参数是默认值,如果环境变量没有被配置将会使用该默认值。
判断当前应用环境
当前应用环境由
.env
文件中的
APP_ENV
变量决定,你可以通过
App
门面上的
environment
方法来访问其值:
$environment = App::environment();
你也可以向
environment
方法传递参数来判断当前环境是否匹配给定值,如果需要的话你甚至可以传递多个值。如果当前环境与给定值匹配,该方法返回
true
:
if (App::environment('local')) { // The environment is local } if (App::environment('local', 'staging')) { // The environment is either local OR staging... }
注:当前应用环境判断可以被服务器级别环境变量
APP_ENV
覆盖。当你需要在不同环境配置间共享同一应用时很有用,你可以在服务器配置中设置一个给定主机来匹配给定环境。
访问配置值
你可以使用全局辅助函数
config
在应用代码的任意位置访问配置值,配置值以文件名+“.”+配置项的方式进行访问,当配置项没有被配置的时候返回默认值:
$value = config('app.timezone');
如果要在运行时设置配置值,传递数组参数到
config
方法即可:
config(['app.timezone' => 'Asia/Shanghai']);
缓存配置文件
为了给应用加速,你可以使用 Artisan 命令
config:cache
将所有配置文件的配置缓存到单个文件里,这将会将所有配置选项合并到单个文件从而被框架快速加载。
应用每次上线,都要运行一次
php artisan config:cache
,但是在本地开发时,没必要经常运行该命令,因为配置值经常会改变。
注:如果在部署过程中执行
config:cache
命令,需要确保只在配置文件中调用了
env
方法。一旦配置文件被缓存后,
.env
文件将不能被加载,所有对
env
函数的调用都会返回
null
。
维护模式
当你的应用处于维护模式时,所有对应用的请求都应该返回同一个自定义视图。这一功能在对应用进行升级或者维护时,使得“关闭”站点变得轻而易举。对维护模式的判断代码位于应用默认的中间件栈中,如果应用处于维护模式,访问应用时状态码为
503
的
MaintenanceModeException
将会被抛出。
要开启维护模式,关闭站点,只需执行 Artisan 命令
down
即可:
php artisan down
还可以提供
message
和
retry
选项给
down
命令。
message
的值用于显示或记录自定义消息,而
retry
的值用于设置 HTTP 请求头的
Retry-After
:
php artisan down --message="Upgrading Database" --retry=60
要关闭维护模式,开启站点,对应的 Artisan 命令是
up
:
php artisan up
注:你可以通过定义自己的模板来定制默认的维护模式模板,自定义模板视图位于
resources/views/errors/503.blade.php
。
维护模式 & 队列
当你的站点处于维护模式中时,所有的队列任务都不会执行;当应用退出维护模式这些任务才会被继续正常处理。
维护模式的替代方案
由于维护模式命令的执行需要几秒时间,你可以考虑使用 Envoyer 实现零秒下线作为替代方案。
相关推荐
- 用Steam启动Epic游戏会更快吗?(epic怎么用steam启动)
-
Epic商店很香,但也有不少抱怨,其中一条是启动游戏太慢。那么,如果让Steam启动Epic游戏,会不会速度更快?众所周知,Steam可以启动非Steam游戏,方法是在客户端左下方点击“添加游戏”,然...
- Docker看这一篇入门就够了(dockerl)
-
安装DockerLinux:$curl-fsSLhttps://get.docker.com-oget-docker.sh$sudoshget-docker.sh注意:如果安装了旧版...
- AYUI 炫丽PC开发UI框架2016年6月15日对外免费开发使用 [1]
-
2016年6月15日,我AY对外发布AYUI(WPF4.0开发)的UI框架,开发时候,你可以无任何影响的去开发PC电脑上的软件exe程序。AYUI兼容XP操作系统,在Win7/8/8.1/10上都顺利...
- 别再说C#/C++套壳方案多了!Tauri这“借壳生蛋”你可能没看懂!
-
浏览器套壳方案,C#和C++有更多,你说的没错,从数量和历史积淀来看,C#和C++确实有不少方式来套壳浏览器,让Web内容在桌面应用里跑起来。但咱们得把这套壳二字掰扯清楚,因为这里面学问可大了!不同的...
- OneCode 核心概念解析——Page(页面)
-
在接触到OneCode最先接触到的就是,Page页面,在低代码引擎中,页面(Page)设计的灵活性是平衡“快速开发”与“复杂需求适配”的关键。以下从架构设计、组件系统、配置能力等维度,解析确...
- React是最后的前端框架吗,为什么这么说的?
-
油管上有一位叫Theo的博主说,React是终极前端框架,为什么这么说呢?让我们来看看其逻辑:这个标题看起来像假的,对吧?React之后明明有无数新框架诞生,凭什么说它是最后一个?我说的“最后一个”不...
- 面试辅导(二):2025前端面试密码:用3个底层逻辑征服技术官
-
面试官放下简历,手指在桌上敲了三下:"你上次解决的技术难题,现在回头看有什么不足?"眼前的候选人瞬间僵住——这是上周真实发生在蚂蚁金服终面的场景。2025年的前端战场早已不是框架熟练...
- 前端新星崛起!Astro框架能否终结React的霸主地位?
-
引言:当"背着背包的全能选手"遇上"轻装上阵的短跑冠军"如果你是一名前端开发者,2024年的框架之争绝对让你眼花缭乱——一边是React这位"背着全家桶的全能选...
- 基于函数计算的 BFF 架构(基于函数计算的 bff 架构是什么)
-
什么是BFFBFF全称是BackendsForFrontends(服务于前端的后端),起源于2015年SamNewman一篇博客文章《Pattern:BackendsFor...
- 谷歌 Prompt Engineering 白皮书:2025年 AI 提示词工程的 10 个技巧
-
在AI技术飞速发展的当下,如何更高效地与大语言模型(LLM)沟通,以获取更准确、更有价值的输出,成为了一个备受关注的问题。谷歌最新发布的《PromptEngineering》白皮书,为这一问题提供了...
- 光的艺术:灯具创意设计(灯光艺术作品展示)
-
本文转自|艺术与设计微信号|artdesign_org_cn“光”是文明的起源,是思维的开端,同样也是人类睁眼的开始。每个人在出生一刻,便接受了光的照耀和洗礼。远古时候,人们将光奉为神明,用火来...
- MoE模型已成新风口,AI基础设施竞速升级
-
机器之心报道编辑:Panda因为基准测试成绩与实际表现相差较大,近期开源的Llama4系列模型正陷入争议的漩涡之中,但有一点却毫无疑问:MoE(混合专家)定然是未来AI大模型的主流范式之一。...
- Meta Spatial SDK重大改进:重塑Horizon OS应用开发格局
-
由文心大模型生成的文章摘要Meta持续深耕SpatialSDK技术生态,提供开自去年9月正式推出以来,Meta持续深耕其SpatialSDK技术生态,通过一系列重大迭代与功能增强,不断革新H...
- "上云"到底是个啥?用"租房"给你讲明白IaaS/PaaS/SaaS的区别
-
半夜三点被机房报警电话惊醒,顶着黑眼圈排查服务器故障——这是十年前互联网公司运维的日常。而现在,程序员小王正敷着面膜刷剧,因为公司的系统全"搬"到了云上。"部署到云上"...
- php宝塔搭建部署thinkphp机械设备响应式企业网站php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的机械设备响应式企业网站php源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试了一下...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 用Steam启动Epic游戏会更快吗?(epic怎么用steam启动)
- Docker看这一篇入门就够了(dockerl)
- AYUI 炫丽PC开发UI框架2016年6月15日对外免费开发使用 [1]
- 别再说C#/C++套壳方案多了!Tauri这“借壳生蛋”你可能没看懂!
- OneCode 核心概念解析——Page(页面)
- React是最后的前端框架吗,为什么这么说的?
- 面试辅导(二):2025前端面试密码:用3个底层逻辑征服技术官
- 前端新星崛起!Astro框架能否终结React的霸主地位?
- 基于函数计算的 BFF 架构(基于函数计算的 bff 架构是什么)
- 谷歌 Prompt Engineering 白皮书:2025年 AI 提示词工程的 10 个技巧
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- mfc框架 (52)
- abb框架断路器 (48)
- ui自动化框架 (47)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)