百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

[ Laravel 5.6 文档 ] 快速入门 —— 安装配置

bigegpt 2024-10-18 04:20 9 浏览

[ 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 实现零秒下线作为替代方案。

相关推荐

当Frida来“敲”门(frida是什么)

0x1渗透测试瓶颈目前,碰到越来越多的大客户都会将核心资产业务集中在统一的APP上,或者对自己比较重要的APP,如自己的主业务,办公APP进行加壳,流量加密,投入了很多精力在移动端的防护上。而现在挖...

服务端性能测试实战3-性能测试脚本开发

前言在前面的两篇文章中,我们分别介绍了性能测试的理论知识以及性能测试计划制定,本篇文章将重点介绍性能测试脚本开发。脚本开发将分为两个阶段:阶段一:了解各个接口的入参、出参,使用Python代码模拟前端...

Springboot整合Apache Ftpserver拓展功能及业务讲解(三)

今日分享每天分享技术实战干货,技术在于积累和收藏,希望可以帮助到您,同时也希望获得您的支持和关注。架构开源地址:https://gitee.com/msxyspringboot整合Ftpserver参...

Linux和Windows下:Python Crypto模块安装方式区别

一、Linux环境下:fromCrypto.SignatureimportPKCS1_v1_5如果导包报错:ImportError:Nomodulenamed'Crypt...

Python 3 加密简介(python des加密解密)

Python3的标准库中是没多少用来解决加密的,不过却有用于处理哈希的库。在这里我们会对其进行一个简单的介绍,但重点会放在两个第三方的软件包:PyCrypto和cryptography上,我...

怎样从零开始编译一个魔兽世界开源服务端Windows

第二章:编译和安装我是艾西,上期我们讲述到编译一个魔兽世界开源服务端环境准备,那么今天跟大家聊聊怎么编译和安装我们直接进入正题(上一章没有看到的小伙伴可以点我主页查看)编译服务端:在D盘新建一个文件夹...

附1-Conda部署安装及基本使用(conda安装教程)

Windows环境安装安装介质下载下载地址:https://www.anaconda.com/products/individual安装Anaconda安装时,选择自定义安装,选择自定义安装路径:配置...

如何配置全世界最小的 MySQL 服务器

配置全世界最小的MySQL服务器——如何在一块IntelEdison为控制板上安装一个MySQL服务器。介绍在我最近的一篇博文中,物联网,消息以及MySQL,我展示了如果Partic...

如何使用Github Action来自动化编译PolarDB-PG数据库

随着PolarDB在国产数据库领域荣膺桂冠并持续获得广泛认可,越来越多的学生和技术爱好者开始关注并涉足这款由阿里巴巴集团倾力打造且性能卓越的关系型云原生数据库。有很多同学想要上手尝试,却卡在了编译数据...

面向NDK开发者的Android 7.0变更(ndk android.mk)

订阅Google官方微信公众号:谷歌开发者。与谷歌一起创造未来!受Android平台其他改进的影响,为了方便加载本机代码,AndroidM和N中的动态链接器对编写整洁且跨平台兼容的本机...

信创改造--人大金仓(Kingbase)数据库安装、备份恢复的问题纪要

问题一:在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录,您可...

OpenSSH 安全漏洞,修补操作一手掌握

1.漏洞概述近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSH安全漏洞(CNNVD-202407-017、CVE-2024-6387)情况的报送。攻击者可以利用该漏洞在无需认证的情况下,通...

Linux:lsof命令详解(linux lsof命令详解)

介绍欢迎来到这篇博客。在这篇博客中,我们将学习Unix/Linux系统上的lsof命令行工具。命令行工具是您使用CLI(命令行界面)而不是GUI(图形用户界面)运行的程序或工具。lsoflsof代表&...

幻隐说固态第一期:固态硬盘接口类别

前排声明所有信息来源于网络收集,如有错误请评论区指出更正。废话不多说,目前固态硬盘接口按速度由慢到快分有这几类:SATA、mSATA、SATAExpress、PCI-E、m.2、u.2。下面我们来...

新品轰炸 影驰SSD多款产品登Computex

分享泡泡网SSD固态硬盘频道6月6日台北电脑展作为全球第二、亚洲最大的3C/IT产业链专业展,吸引了众多IT厂商和全球各地媒体的热烈关注,全球存储新势力—影驰,也积极参与其中,为广大玩家朋友带来了...