安裝 Yii(Installing Yii)

2018-02-24 15:40 更新

安裝 Yii

你可以通過(guò)兩種方式安裝 Yii:使用?Composer?或下載一個(gè)歸檔文件。推薦使用前者,這樣只需執(zhí)行一條簡(jiǎn)單的命令就可以安裝新的擴(kuò)展或更新 Yii 了。

注意:和 Yii 1 不同,以標(biāo)準(zhǔn)方式安裝 Yii 2 時(shí)會(huì)同時(shí)下載并安裝框架本身和一個(gè)應(yīng)用程序的基本骨架。

通過(guò) Composer 安裝

如果還沒(méi)有安裝 Composer,你可以按?getcomposer.org?中的方法安裝。在 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.0.0"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic

第一條命令安裝?Composer asset plugin,它是通過(guò) Composer 管理 bower 和 npm 包所必須的,此命令全局生效,一勞永逸。 第二條命令會(huì)將 Yii 安裝在名為?basic?的目錄中,你也可以隨便選擇其他名稱。

注意:在安裝過(guò)程中 Composer 可能會(huì)詢問(wèn)你 GitHub 賬戶的登錄信息,因?yàn)榭赡茉谑褂弥谐^(guò)了 GitHub API (對(duì)匿名用戶的)使用限制。因?yàn)?Composer 需要為所有擴(kuò)展包從 GitHub 中獲取大量信息,所以超限非常正常。(譯注:也意味著作為程序猿沒(méi)有 GitHub 賬號(hào),就真不能愉快地玩耍了)登陸 GitHub 之后可以得到更高的 API 限額,這樣 Composer 才能正常運(yùn)行。更多細(xì)節(jié)請(qǐng)參考?Composer 文檔(該段 Composer 中文文檔期待您的參與)。

技巧:如果你想安裝 Yii 的最新開(kāi)發(fā)版本,可以使用以下命令代替,它添加了一個(gè)?stability 選項(xiàng)中文版):

composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic

注意,Yii 的開(kāi)發(fā)版(dev 版)不應(yīng)該用于生產(chǎn)環(huán)境中,它可能會(huì)破壞運(yùn)行中的代碼。

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

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

  1. 從?yiiframework.com?下載歸檔文件。
  2. 將下載的文件解壓縮到 Web 目錄中。
  3. 修改?config/web.php?文件,給?cookieValidationKey?配置項(xiàng)添加一個(gè)密鑰(若你通過(guò) Composer 安裝,則此步驟會(huì)自動(dòng)完成):

    // !!! 在下面插入一段密鑰(若為空) - 以供 cookie validation 的需要
    'cookieValidationKey' => '在此處輸入你的密鑰',

其他安裝方式

上文介紹了兩種安裝 Yii 的方法,安裝的同時(shí)也會(huì)創(chuàng)建一個(gè)立即可用的 Web 應(yīng)用程序。對(duì)于小的項(xiàng)目或用于學(xué)習(xí)上手,這都是一個(gè)不錯(cuò)的起點(diǎn)。

但是其他的安裝方式也存在:

  • 如果你只想安裝核心框架,然后從零開(kāi)始構(gòu)建整個(gè)屬于你自己的應(yīng)用程序模版,可以參考從頭構(gòu)建自定義模版一節(jié)的介紹。
  • 如果你要開(kāi)發(fā)一個(gè)更復(fù)雜的應(yīng)用,可以更好地適用于團(tuán)隊(duì)開(kāi)發(fā)環(huán)境的,可以考慮安裝高級(jí)應(yīng)用模版。

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

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

http://localhost/basic/web/index.php

這個(gè) URL 假設(shè)你將 Yii 安裝到了一個(gè)位于 Web 文檔根目錄下的?basic?目錄中,且該 Web 服務(wù)器正運(yùn)行在你自己的電腦上(localhost)。你可能需要將其調(diào)整為適應(yīng)自己的安裝環(huán)境。

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

  • 通過(guò)瀏覽器訪問(wèn) URL?http://localhost/basic/requirements.php
  • 執(zhí)行如下命令:

    cd basic
    php requirements.php

你需要配置好 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)。

配置 Web 服務(wù)器

補(bǔ)充:如果你現(xiàn)在只是要試用 Yii 而不是將其部署到生產(chǎn)環(huán)境中,本小節(jié)可以跳過(guò)。

通過(guò)上述方法安裝的應(yīng)用程序在 Windows,Max OS X,Linux 中的?Apache HTTP 服務(wù)器或?Nginx HTTP 服務(wù)器且PHP版本為5.4或更高都可以直接運(yùn)行。Yii 2.0 也兼容 Facebook 公司的?HHVM,由于 HHVM 和標(biāo)準(zhǔn) PHP 在邊界案例上有些地方略有不同,在使用 HHVM 時(shí)需稍作處理。

在生產(chǎn)環(huán)境的服務(wù)器上,你可能會(huì)想配置服務(wù)器讓應(yīng)用程序可以通過(guò) URL?http://www.example.com/index.php?訪問(wèn)而不是http://www.example.com/basic/web/index.php。這種配置需要將 Web 服務(wù)器的文檔根目錄指向?basic/web?目錄??赡苣氵€會(huì)想隱藏掉 URL 中的?index.php,具體細(xì)節(jié)在?URL 解析和生成一章中有介紹,你將學(xué)到如何配置 Apache 或 Nginx 服務(wù)器實(shí)現(xiàn)這些目標(biāo)。

補(bǔ)充:將?basic/web?設(shè)置為文檔根目錄,可以防止終端用戶訪問(wèn)?basic/web?相鄰目錄中的私有應(yīng)用代碼和敏感數(shù)據(jù)文件。禁止對(duì)其他目錄的訪問(wèn)是一個(gè)不錯(cuò)的安全改進(jìn)。

補(bǔ)充:如果你的應(yīng)用程序?qū)?lái)要運(yùn)行在共享虛擬主機(jī)環(huán)境中,沒(méi)有修改其 Web 服務(wù)器配置的權(quán)限,你依然可以通過(guò)調(diào)整應(yīng)用的結(jié)構(gòu)來(lái)提升安全性。詳情請(qǐng)參考共享主機(jī)環(huán)境?一章。

推薦使用的 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">
    # 開(kāi)啟 mod_rewrite 用于美化 URL 功能的支持(譯注:對(duì)應(yīng) pretty URL 選項(xiàng))
    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)求分發(fā)至 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;
        try_files $uri =404;
    }

    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 才能正確地判斷連接是否安全。

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)