安裝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è)步驟:
- 從 yiiframework.com 下載歸檔文件。
- 將下載的文件解壓縮到 Web 訪問(wèn)的文件夾中。
-
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ù)器
- 通過(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īng)該可以在瀏覽器中看到如上所示的 “Congratulations!” 頁(yè)面。如果沒(méi)有, 請(qǐng)通過(guò)以下任意一種方式,檢查當(dāng)前 PHP 環(huán)境是否滿足 Yii 最基本需求:
- 復(fù)制
/requirements.php
到/web/requirements.php
,然后通過(guò)瀏覽器訪問(wèn) URLhttp://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 才能正確地判斷連接是否安全。