鍍金池/ 教程/ PHP/ 安裝及配置
門(mén)面
Laravel Homestead
安裝及配置
測(cè)試
HTTP 中間件
加密
升級(jí)指南
幫助函數(shù)
應(yīng)用目錄結(jié)構(gòu)
集合
新手入門(mén)指南-簡(jiǎn)單任務(wù)管理系統(tǒng)
任務(wù)調(diào)度
查詢(xún)構(gòu)建器
視圖
驗(yàn)證
Laravel Cashier(訂購(gòu)&支付&發(fā)票)
本地化
隊(duì)列
調(diào)整器
分頁(yè)
文件系統(tǒng)/云存儲(chǔ)
貢獻(xiàn)代碼
哈希
HTTP 控制器
緩存
遷移
HTTP 請(qǐng)求
Laravel Elixir
發(fā)行版本說(shuō)明
Envoy 任務(wù)運(yùn)行器(SSH任務(wù))
序列化
Session
起步
帶用戶(hù)功能的任務(wù)管理系統(tǒng)
起步
用戶(hù)授權(quán)
郵件
事件
填充數(shù)據(jù)
HTTP 路由
服務(wù)提供者
Blade 模板引擎
包開(kāi)發(fā)
用戶(hù)認(rèn)證
Artisan 控制臺(tái)
HTTP 響應(yīng)
集合
服務(wù)容器
關(guān)聯(lián)關(guān)系
一次請(qǐng)求的生命周期
契約
Redis
錯(cuò)誤&日志

安裝及配置

1、安裝

1.1 服務(wù)器要求

Laravel 框架有少量的系統(tǒng)要求,當(dāng)然,Laravel Homestead 虛擬機(jī)滿(mǎn)足所有這些要求:

  • PHP 版本 >= 5.5.9
  • PHP 擴(kuò)展:OpenSSL
  • PHP 擴(kuò)展:PDO
  • PHP 擴(kuò)展:Mbstring
  • PHP 擴(kuò)展:Tokenizer

    1.2 安裝 Laravel

Laravel 使用 Composer 管理依賴(lài),因此,使用 Laravel 之前,確保機(jī)器上已經(jīng)安裝 Composer。

1.2.1 通過(guò) Laravel 安裝器

首先,通過(guò) Composer 安裝 Laravel 安裝器:

composer global require "laravel/installer=~1.1"

確保 ~/.composer/vendor/bin 在系統(tǒng)路徑 PATH 中,否則不能調(diào)用 laravel命令。

安裝完成后,通過(guò)簡(jiǎn)單的 laravel new 命令將會(huì)在當(dāng)前目錄下創(chuàng)建一個(gè)新的 Laravel 應(yīng)用,例如,laravel new blog 將會(huì)創(chuàng)建一個(gè)名為 blog 的 Laravel 安裝目錄,該目錄中已經(jīng)包含了所有 Laravel 依賴(lài)。該安裝方法比通過(guò) Composer 安裝要快很多:

laravel new blog

1.2.2 通過(guò) Composer

你還可以在終端中通過(guò) Composer 的 create-project 目錄來(lái)安裝 Laravel:

composer create-project laravel/laravel --prefer-dist

該命令會(huì)在當(dāng)前目錄中創(chuàng)建一個(gè)名為 laravel 的 Laravel 安裝,如果想要指定安裝目錄名,可通過(guò)如下命令:

composer create-project laravel/laravel blog --prefer-dist

該命令會(huì)在當(dāng)前目錄中創(chuàng)建一個(gè)名為 blog 的 Laravel 安裝。

擴(kuò)展閱讀 —— 實(shí)例教程:在 Windows 中安裝 Laravel 5.1.X

2、配置

2.1 基本配置

Laravel 框架的所有配置文件都存放在 config 目錄中,每一個(gè)選項(xiàng)都是文檔化(有良好注釋?zhuān)┑?,所以隨便瀏覽所有配置文件去熟悉這些配置選項(xiàng)。

2.1.1 目錄權(quán)限

安裝完 Laravel 后,需要配置一些權(quán)限。storagebootstrap/cache 目錄應(yīng)該是可寫(xiě)的,如果你在使用 Homestead 虛擬機(jī),這些權(quán)限已經(jīng)被設(shè)置好了。

2.1.2 應(yīng)用 Key

接下來(lái)要做的事情就是將應(yīng)用 key 設(shè)置為一個(gè)隨機(jī)字符串,如果你是通過(guò) Composer 或者 Laravel 安裝器安裝的話(huà),該 key 的值已經(jīng)通過(guò) key:generate 命令生成好了。通常,該字符串應(yīng)該是32位長(zhǎng),該 key 被配置在 .env環(huán)境文件中(APP_KEY),如果你還沒(méi)有將 .env.example 文件重命名為 .env,現(xiàn)在立即這樣做。如果應(yīng)用 key 沒(méi)有被設(shè)置,用戶(hù) sessions 和其它加密數(shù)據(jù)將會(huì)有安全隱患!

2.1.3 更多配置

Laravel 幾乎不再需要其它任何配置就可以使用了,你可以自由地開(kāi)始開(kāi)發(fā)了!但是,你最好再看看 config/app.php 文件和它的文檔,其中包含了一些基于你的應(yīng)用可能需要進(jìn)行改變的配置,比如 timezonelocale。

你可能還想要配置 Laravel 的一些其它組件,比如:

  • 緩存
  • 數(shù)據(jù)庫(kù)
  • Session Laravel 安裝完成后,你還應(yīng)該配置自己的本地環(huán)境,如數(shù)據(jù)庫(kù)驅(qū)動(dòng)、郵箱服務(wù)器、緩存驅(qū)動(dòng)等。

2.1.4 美化 URL

  • Apache 框架中自帶的 public/.htaccess 文件支持 URL 中隱藏 index.php,如過(guò)你的 Laravel 應(yīng)用使用 Apache 作為服務(wù)器,需要先確保 Apache 啟用了 mod_rewrite 模塊以支持 .htaccess 解析。

如果 Laravel 自帶的 .htaccess 文件不起作用,試試將其中內(nèi)容做如下替換:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
  • Nginx 在 Nginx 中,使用如下站點(diǎn)配置指令就可以支持 URL 美化:
location / {
    try_files $uri $uri/ /index.php?$query_string;
}

當(dāng)然,使用 Homestead 的話(huà),以上配置已經(jīng)為你配置好以支持 URL 美化。

2.2 環(huán)境配置

基于應(yīng)用運(yùn)行環(huán)境擁有不同配置值能夠給我們開(kāi)發(fā)帶來(lái)極大的方便,比如,我們想在本地和線(xiàn)上環(huán)境配置不同的緩存驅(qū)動(dòng),在 Laravel 中這很容易實(shí)現(xiàn)。

Laravel 中使用了 Vance Lucas 開(kāi)發(fā)的 PHP 庫(kù) DotEnv 來(lái)實(shí)現(xiàn)這一目的,在新安裝的 Laravel 中,根目錄下有一個(gè) .env.example 文件,如果 Laravel 是通過(guò) Composer 安裝的,那么該文件已經(jīng)被重命名為 .env,否則的話(huà)你要自己手動(dòng)重命名該文件。

在每次應(yīng)用接受請(qǐng)求時(shí),.env 中列出的所有變量都會(huì)被載入到 PHP 超全局變量 $_ENV 中,然后你就可以在應(yīng)用中通過(guò)幫助函數(shù) env 來(lái)獲取這些變量值。實(shí)際上,如果你去查看 Laravel 的配置文件,就會(huì)發(fā)現(xiàn)很多選項(xiàng)已經(jīng)在使用這些幫助函數(shù)了。

你可以盡情的按你所需對(duì)本地服務(wù)器上的環(huán)境變量進(jìn)行修改,線(xiàn)上環(huán)境也是一樣。但不要把 .env 文件提交到源碼控制(svn 或 git 等)中,因?yàn)槊總€(gè)使用你的應(yīng)用的不同開(kāi)發(fā)者或服務(wù)器可能要求不同的環(huán)境配置。

如果你是在一個(gè)團(tuán)隊(duì)中進(jìn)行開(kāi)發(fā),你可能需要將 .env.example 文件隨你的應(yīng)用一起提交到源碼控制中,通過(guò)將一些配置值以占位符的方式放置在 .env.example 文件中,其他開(kāi)發(fā)者可以很清楚明了的知道運(yùn)行你的應(yīng)用需要配置哪些環(huán)境變量。

2.2.1 訪(fǎng)問(wèn)當(dāng)前應(yīng)用環(huán)境

當(dāng)前應(yīng)用環(huán)境由 .env 文件中的 APP_ENV 變量決定,你可以通過(guò) App 門(mén)面environment 方法來(lái)訪(fǎng)問(wèn)其值:

$environment = App::environment();

你也可以向 environment 方法中傳遞參數(shù)來(lái)判斷當(dāng)前環(huán)境是否匹配給定值,如果需要的話(huà)你甚至可以傳遞多個(gè)值:

if (App::environment('local')) {
    // The environment is local
}

if (App::environment('local', 'staging')) {
    // The environment is either local OR staging...
}

應(yīng)用實(shí)例也可以通過(guò)幫助函數(shù) app 來(lái)訪(fǎng)問(wèn):

$environment = app()->environment();

2.3 配置緩存

為了給應(yīng)用加速,你可以使用 Artisan 命令 config:cache 將所有配置文件合并到單個(gè)文件里,這將會(huì)將所有配置選項(xiàng)合并到單個(gè)文件從而可以被框架快速加載。

你應(yīng)該將 config:cache 作為日常部署的一部分。

2.4 訪(fǎng)問(wèn)配置值

你可以使用全局的幫助函數(shù) config 來(lái)訪(fǎng)問(wèn)配置值,配置值可以通過(guò)”.”來(lái)分隔配置文件和配置選項(xiàng),如果配置選項(xiàng)不存在的話(huà)則會(huì)返回默認(rèn)值:

$value = config('app.timezone');

如果要在運(yùn)行時(shí)設(shè)置配置值,傳遞一個(gè)數(shù)組到 config 幫助函數(shù):

config(['app.timezone' => 'America/Chicago']);

2.5 命名你的應(yīng)用

安裝完成 Laravel 之后,你可能想要命名你的應(yīng)用,默認(rèn)情況下,app 目錄處于命名空間 App 之下,然后 Composer 使用 PSR-4 自動(dòng)載入標(biāo)準(zhǔn)來(lái)自動(dòng)載入該目錄,你可以使用 Artisan 命令 app:name 來(lái)改變?cè)撁臻g以匹配你的應(yīng)用名稱(chēng)。

比如,如果你的應(yīng)用名稱(chēng)是“Horsefly”,你可以在安裝根目錄下運(yùn)行如下命令:

php artisan app:name Horsefly

來(lái)重命名應(yīng)用的命名空間,當(dāng)然你也可以繼續(xù)使用 App 作為命名空間不變。

3、維護(hù)模式

當(dāng)你的站點(diǎn)處于維護(hù)模式時(shí),所有對(duì)站點(diǎn)的請(qǐng)求都會(huì)返回同一個(gè)自定義視圖。當(dāng)你在對(duì)站點(diǎn)進(jìn)行升級(jí)或者維護(hù)時(shí),這使得“關(guān)閉”站點(diǎn)變得輕而易舉,對(duì)維護(hù)模式的判斷代碼位于默認(rèn)的中間件棧中,如果應(yīng)用處于維護(hù)模式,則狀態(tài)碼為503的 HttpException 將會(huì)被拋出。

想要開(kāi)啟維護(hù)模式,只需執(zhí)行 Artisan 命令 down 即可:

php artisan down

關(guān)閉維護(hù)模式,對(duì)應(yīng)的 Artisan 命令是 up

php artisan up

3.1 維護(hù)模式響應(yīng)模板

默認(rèn)的維護(hù)模式響應(yīng)模板位于 resources/views/errors/503.blade.php

3.2 維護(hù)模式 & 隊(duì)列

當(dāng)你的站點(diǎn)處于維護(hù)模式中時(shí),所有的隊(duì)列任務(wù)都不會(huì)執(zhí)行;當(dāng)應(yīng)用退出維護(hù)模式這些任務(wù)才會(huì)被繼續(xù)正常處理。