Yii2.0的學(xué)習(xí)(一)

安裝Yii2

你可以通過(guò)兩種方式來(lái)安裝Yii框架:

  • 通過(guò)Composer安裝
  • 通過(guò)下載一個(gè)所需文件以及Yii框架文件的應(yīng)用模板

推薦前者方式,這樣只需一條簡(jiǎn)單的命令就可以安裝新的Yii框架了。

通過(guò)Composer安裝

Composer是PHP中用來(lái)管理依賴(dependency)關(guān)系的工具。你可以在自己的項(xiàng)目中聲明所依賴的外部工具庫(kù)(libraries),Composer會(huì)幫你安裝這些依賴的庫(kù)文件。

了解了什么是Composer,那么推薦您使用Composer安裝Yii框架。從這里下載Composer:下載,或直接運(yùn)行下述命令:

curl -s http://getcomposer.org/installer | php

官方 Composer 指南如下:

在 Linux 和 Mac OS X 中,你可以運(yùn)行如下命令:

 curl -sS https://getcomposer.org/installer | php
 mv composer.phar /usr/local/bin/composer

在 Windows 中,你需要下載并運(yùn)行 Composer-Setup.exe

如果遇到任何問(wèn)題或者想更深入地學(xué)習(xí) Composer,請(qǐng)參考 Composer 英文文檔Composer 中文文檔

如果你已經(jīng)安裝有 Composer 請(qǐng)確保使用的是最新版本, 你可以用 composer self-update 命令更新 Composer 為最新版本。

Composer 安裝后,切換到一個(gè)可通過(guò) Web 訪問(wèn)的目錄,執(zhí)行如下命令即可安裝 Yii :

composer global require "fxp/composer-asset-plugin:^1.2.0"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
composer create-project yiisoft/yii2-app-advanced advanced

第一條命令安裝 Composer asset plugin, 它是通過(guò) Composer 管理 bower 和 npm 包所必須的,此命令全局生效,一勞永逸。

第二條命令安裝yii basic模版 并部署到 basic 的目錄中。如果你想使用其它目錄名稱,你可以選擇其他目錄名稱。

第三條命令安裝yii advanced模版 并部署到advanced目錄中。

通過(guò)歸檔文件安裝

通過(guò)歸檔文件安裝 Yii 包括三個(gè)步驟:

  1. yiiframework.com 下載歸檔文件。
  2. 將下載的文件解壓縮到 Web 訪問(wèn)的文件夾中。
  3. config/web.php 文件,給 cookieValidationKey 配置項(xiàng) 添加一個(gè)密鑰(若你通過(guò) Composer 安裝,則此步驟會(huì)自動(dòng)完成):
// !!! 在下面插入一段密鑰(若為空) - 以供 cookie validation 的需要
'cookieValidationKey' => '在此處輸入你的密鑰',

附加:如果要開(kāi)發(fā)一個(gè)更復(fù)雜的應(yīng)用,可以更好地適用于團(tuán)隊(duì)開(kāi)發(fā)環(huán)境的,可以考慮安裝高級(jí)模版

驗(yàn)證安裝結(jié)果

可以通過(guò)兩種方式驗(yàn)證安裝結(jié)果:
1.通過(guò)內(nèi)置Web服務(wù)器

  1. 通過(guò)Web服務(wù)器

第一種,內(nèi)置服務(wù)器,切換到web目錄,可以通過(guò)下面代碼實(shí)現(xiàn)

php yii serve

注意: 默認(rèn)情況下Https-server將監(jiān)聽(tīng)8080。可是如果這個(gè)端口已經(jīng)使用或者你想通過(guò)這個(gè)方式運(yùn)行多個(gè)應(yīng)用程序,你可以指定使用哪些端口。 只加上 --port 參數(shù):

php yii serve --port=8080

使用瀏覽器通過(guò)如下 URL 訪問(wèn)剛安裝完的 Yii 應(yīng)用了:

http://localhost:8080/
成功頁(yè)面

你應(yīng)該可以在瀏覽器中看到如上所示的 “Congratulations!” 頁(yè)面。如果沒(méi)有, 請(qǐng)通過(guò)以下任意一種方式,檢查當(dāng)前 PHP 環(huán)境是否滿足 Yii 最基本需求:

  • 復(fù)制 /requirements.php/web/requirements.php,然后通過(guò)瀏覽器訪問(wèn) URL http://localhost/requirements.php
  • 執(zhí)行如下命令:
cd basic
php requirements.php

可以訪問(wèn)Yii的web訪問(wèn)目錄:

http://localhost/basic/web/index.php
http://localhost/advanced/frontend/web/index.php
http://localhost/advanced/backend/web/index.php

配置Web服務(wù)器

通過(guò)上述方法安裝的應(yīng)用程序在 Windows,Max OS X,Linux 中的 Apache HTTP 服務(wù)器或 Nginx HTTP 服務(wù)器 上都可以直接運(yùn)行。

配置好 PHP 安裝環(huán)境,使其符合 Yii 的最小需求。主要是需要 PHP 5.4 或 以上版本。 如果應(yīng)用需要用到數(shù)據(jù)庫(kù),那還要安裝 PDO PHP 擴(kuò)展 和相應(yīng)的數(shù)據(jù)庫(kù)驅(qū)動(dòng)(例如訪問(wèn) MySQL 數(shù)據(jù)庫(kù)所需的 pdo_mysql)。

推薦使用的 Apache 配置

在 Apache 的 httpd.conf文件或在一個(gè)虛擬主機(jī)配置文件中使用如下配置。注意,你應(yīng)該將 path/to/basic/web 替換為實(shí)際的 basic/web目錄。

# 設(shè)置文檔根目錄為 “basic/web”
DocumentRoot "path/to/basic/web"
 
<Directory "path/to/basic/web">
    RewriteEngine on
 
    # 如果請(qǐng)求的是真實(shí)存在的文件或目錄,直接訪問(wèn)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # 如果請(qǐng)求的不是真實(shí)文件或目錄,分發(fā)請(qǐng)求至 index.php
    RewriteRule . index.php
 
    # ...其它設(shè)置...
</Directory>
推薦使用的 Nginx 配置

為了使用 Nginx,你應(yīng)該已經(jīng)將 PHP 安裝為 FPM SAPI 了。使用如下 Nginx 配置,將 path/to/basic/web 替換為實(shí)際的 basic/web 目錄,mysite.local替換為實(shí)際的主機(jī)名以提供服務(wù)。

server {
    charset utf-8;
    client_max_body_size 128M;
 
    listen 80; 
    ## 監(jiān)聽(tīng) ipv4 上的 80 端口
    #   listen [::]:80 default_server ipv6only=on; 
    ## 監(jiān)聽(tīng) ipv6 上的 80 端口
 
    server_name mysite.local;
    root        /path/to/basic/web;
    index       index.php;
 
    access_log  /path/to/basic/log/access.log main;
    error_log   /path/to/basic/log/error.log;
 
    location / {
        # 如果找不到真實(shí)存在的文件,把請(qǐng)求重定向給 index.php
        try_files $uri $uri/ /index.php?$args;
    }
 
    # 若取消下面這段的注釋,可避免 Yii 接管不存在文件的處理過(guò)程(404)
    #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    #    try_files $uri =404;
    #}
    #error_page 404 /404.html;
 
    location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass   127.0.0.1:9000;
        #fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
 
    location ~ /\.(ht|svn|git) {
        deny all;
    }
}

使用該配置時(shí),你還應(yīng)該在 php.ini 文件中設(shè)置 cgi.fix_pathinfo=0 , 能避免掉很多不必要的 stat() 系統(tǒng)調(diào)用。

還要注意當(dāng)運(yùn)行一個(gè) HTTPS 服務(wù)器時(shí),需要添加 fastcgi_param HTTPS on; 一行, 這樣 Yii 才能正確地判斷連接是否安全。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評(píng)論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,489評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 178,290評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,776評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,510評(píng)論 6 412
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,866評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 43,036評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,585評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,331評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,536評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,754評(píng)論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 35,154評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,469評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,273評(píng)論 3 399
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,505評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容