開(kāi)始 ―― 安裝及配置

2018-02-24 15:38 更新

開(kāi)始 —— 安裝及配置

1、安裝

1.1 服務(wù)器要求

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

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

1.2 安裝Laravel

Laravel使用Composer管理依賴,因此,使用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依賴。該安裝方法比通過(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)都是文檔化(有良好注釋)的,所以隨便瀏覽所有配置文件去熟悉這些配置選項(xiàng)。

2.1.1 目錄權(quán)限

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

2.1.2 應(yīng)用Key

接下來(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ì)有安全隱患!

2.1.3 更多配置

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

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

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的話,以上配置已經(jīng)為你配置好以支持URL美化。

2.2 環(huán)境配置

基于應(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)境變量。

2.2.1 訪問(wèn)當(dāng)前應(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();

2.3 配置緩存

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

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

2.4 訪問(wèn)配置值

你可以使用全局的幫助函數(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']);

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)用名稱。

比如,如果你的應(yī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ù)正常處理。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)