W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
你可以通過(guò)兩種方式安裝 Yii:使用?Composer?或下載一個(gè)歸檔文件。推薦使用前者,這樣只需執(zhí)行一條簡(jiǎn)單的命令就可以安裝新的擴(kuò)展或更新 Yii 了。
注意:和 Yii 1 不同,以標(biāo)準(zhǔn)方式安裝 Yii 2 時(shí)會(huì)同時(shí)下載并安裝框架本身和一個(gè)應(yīng)用程序的基本骨架。
如果還沒(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ò)歸檔文件安裝 Yii 包括三個(gè)步驟:
修改?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)。
但是其他的安裝方式也存在:
安裝完成后,就可以使用瀏覽器通過(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 最基本需求:
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
)。
補(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 的?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,你應(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 才能正確地判斷連接是否安全。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: