Laravel 5.5 框架对PHP版本和扩展有一定要求:
满足以上需求之后,就可以开始安装 Laravel 了。
【 这些要求 Homestead 都已经满足了,强烈推荐使用 Homestead 环境,当然 Docker 也很不错。】
Laravel 使用 Composer 管理依赖,所以,安装之前确保已经在机器上安装了 Composer。
打开命令行,切换到你需要保存到的目录,通过 Composer Create-Project 进行安装,具体命令如下:
composer create-project --prefer-dist laravel/laravel blog 5.5.*
说明: blog为项目的名称,可更改。
Laravel 5.5 采用单一入口文件,文件名为 index.php,该文件位于应用目录的 public 目录中。所有 HTTP 请求都会通过该文件进入应用。
配置 web 服务器的域名根目录时,需要配置到 public 目录。
如果你使用的是 Nginx,使用如下站点配置指令就可以支持 URL 美化,即省略 index.php 入口文件。
location / {
try_files $uri $uri/ /index.php?$query_string;
}
当然,使用 Homestead 或 Valet 的话,以上配置已经为你配置好,无需额外操作。
Laravel 框架的所有配置文件都存放在 config 目录下,所有的配置项都有注释说明。建议通读一遍。
基于应用运行的环境不同设置不同的配置值能够给我们的开发带来极大的方便,比如,我们通常在本地和线上环境配置不同的缓存驱动和数据库连接,这一功能在 Laravel 中很容易实现。
Laravel 使用 PHP 扩展库 DotEnv 来实现这一功能,在新安装的 Laravel 中,根目录下有一个 .env.example 文件,如果 Laravel 是通过 Composer 安装的,那么该文件已经被重命名为 .env,否则的话你要自己手动重命名该文件。
.env 文件是 Laravel 的环境配置文件,通过该文件可以方便地实现不同运行环境的不同配置。
不要试图将 .env 文件提交到版本控制系统(如 Git 或 Svn )中。
一方面,开发环境和线上环境配置值不一样,提交没有意义;更重要的是,.env 文件包含了很多的敏感信息,如数据库用户名及密码等,如果不慎将其提交到 Github 公开仓库,后果将不堪设想!
可以创建一个 .env.testing 文件,该文件会在运行 PHPUnit 测试或执行带有 --env=testing 选项的 Artisan 命令时覆盖从 .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...
}
你可以使用全局辅助函数 config 在应用代码的任意位置访问 config 目录中的配置值。
配置值以文件名+“.”+配置项的方式进行访问,当配置项没有被配置的时候返回默认值:
$value = config('app.timezone');
如果要在运行时设置配置值,传递数组参数到 config 方法即可:
config(['app.timezone' => 'Asia/Shanghai']);
为了给应用加速,你可以使用 Artisan 命令 config:cache 将所有配置文件的配置缓存到单个文件里,这将会将所有配置选项合并到单个文件从而被框架快速加载。
php artisan config:cache
应用每次上线,都要运行一次 php artisan config:cache,但是在本地开发时,没必要经常运行该命令,因为配置值经常会改变。
注:如果在部署过程中执行 config:cache 命令,需要确保只在配置文件中调用了 env 方法。
安装完 Laravel 后,需要配置一些目录的读写权限:storage 和 bootstrap/cache 目录对 Web 服务器指定的用户而言应该是可写的,否则 Laravel 应用可能不会正常运行。
如果你使用 Homestead 虚拟机做为开发环境,这些权限已经设置好了。
修改 config/app.php 配置文件中的 timezone 配置项,设置为你当前所在的时区。
'timezone' => 'Asia/Shanghai',
当你的应用处于维护模式时,所有对应用的请求都应该返回同一个自定义视图。这一功能在对应用进行升级或者维护时,使得“关闭”站点变得轻而易举。
对维护模式的判断代码位于应用默认的中间件栈中,如果应用处于维护模式,访问应用时状态码为 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 目录,然后在 errors 目录中,创建 503.blade.php 视图文件。
例如,下面是 resources/views/errors/503.blade.php 视图文件的一个简单示例:
<style>
div {
display: flex;
justify-content: center;
height: 20%;
align-items: center;
}
style>
<div>
<h2>{
{ $exception->getMessage() ? : '系统维护中,请稍候 ...' }}h2>
div>