Laravel框架有少量的系統(tǒng)要求,當(dāng)然,Laravel Homestead?虛擬機(jī)滿足所有這些要求:
Laravel使用Composer管理依賴,因此,使用Laravel之前,確保機(jī)器上已經(jīng)安裝Composer。
首先,通過(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依賴。該安裝方法比通過(guò)Composer安裝要快很多:
laravel new blog
你還可以在終端中通過(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
Laravel框架的所有配置文件都存放在config
目錄中,每一個(gè)選項(xiàng)都是文檔化(有良好注釋)的,所以隨便瀏覽所有配置文件去熟悉這些配置選項(xiàng)。
安裝完Laravel后,需要配置一些權(quán)限。storage
和bootstrap/cache
目錄應(yīng)該是可寫的,如果你在使用Homestead虛擬機(jī),這些權(quán)限已經(jīng)被設(shè)置好了。
接下來(lái)要做的事情就是將應(yīng)用key設(shè)置為一個(gè)隨機(jī)字符串,如果你是通過(guò)Composer或者Laravel安裝器安裝的話,該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è)置,用戶sessions和其它加密數(shù)據(jù)將會(huì)有安全隱患!
Laravel幾乎不再需要其它任何配置就可以使用了,你可以自由地開(kāi)始開(kāi)發(fā)了!但是,你最好再看看config/app.php
文件和它的文檔,其中包含了一些基于你的應(yīng)用可能需要進(jìn)行改變的配置,比如timezone
和locale
。
你可能還想要配置Laravel的一些其它組件,比如:
Laravel安裝完成后,你還應(yīng)該配置自己的本地環(huán)境,如數(shù)據(jù)庫(kù)驅(qū)動(dòng)、郵箱服務(wù)器、緩存驅(qū)動(dòng)等。
框架中自帶的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中,使用如下站點(diǎn)配置指令就可以支持URL美化:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
當(dāng)然,使用Homestead的話,以上配置已經(jīng)為你配置好以支持URL美化。
基于應(yīng)用運(yùn)行環(huán)境擁有不同配置值能夠給我們開(kāi)發(fā)帶來(lái)極大的方便,比如,我們想在本地和線上環(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
,否則的話你要自己手動(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)行修改,線上環(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)境變量。
當(dāng)前應(yīng)用環(huán)境由.env
文件中的APP_ENV
變量決定,你可以通過(guò)App
門面的environment
方法來(lái)訪問(wèn)其值:
$environment = App::environment();
你也可以向environment
方法中傳遞參數(shù)來(lái)判斷當(dāng)前環(huán)境是否匹配給定值,如果需要的話你甚至可以傳遞多個(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)訪問(wèn):
$environment = app()->environment();
為了給應(yīng)用加速,你可以使用Artisan命令config:cache
將所有配置文件合并到單個(gè)文件里,這將會(huì)將所有配置選項(xiàng)合并到單個(gè)文件從而可以被框架快速加載。
你應(yīng)該將config:cache
作為日常部署的一部分。
你可以使用全局的幫助函數(shù)config
來(lái)訪問(wèn)配置值,配置值可以通過(guò)”.”來(lái)分隔配置文件和配置選項(xiàng),如果配置選項(xiàng)不存在的話則會(huì)返回默認(rèn)值:
$value = config('app.timezone');
如果要在運(yùn)行時(shí)設(shè)置配置值,傳遞一個(gè)數(shù)組到config
幫助函數(shù):
config(['app.timezone' => 'America/Chicago']);
安裝完成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)用名稱。
比如,如果你的應(yīng)用名稱是“Horsefly”,你可以在安裝根目錄下運(yùn)行如下命令:
php artisan app:name Horsefly
來(lái)重命名應(yīng)用的命名空間,當(dāng)然你也可以繼續(xù)使用App作為命名空間不變。
當(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
默認(rèn)的維護(hù)模式響應(yīng)模板位于resources/views/errors/503.blade.php
當(dāng)你的站點(diǎn)處于維護(hù)模式中時(shí),所有的隊(duì)列任務(wù)都不會(huì)執(zhí)行;當(dāng)應(yīng)用退出維護(hù)模式這些任務(wù)才會(huì)被繼續(xù)正常處理。
更多建議: