[LNMP]Yii 2.x 應(yīng)用程序目錄結(jié)構(gòu)(基于官方Advanced版本)

說明


應(yīng)用程序目錄結(jié)構(gòu)適用于Yii 2.x 版本鹅髓,注:Yii 2.x 必須運行在 PHP 5.4+ 以上的環(huán)境。

代碼git


https://github.com/tusamuel/Yii2.x-Code-Template

該目錄結(jié)構(gòu)支持特性


  1. 公共靜態(tài)文件目錄static/度秘,方便單獨web緩存優(yōu)化或CDN加速;
  2. 公共數(shù)據(jù)文件目錄data/瞻鹏,方便數(shù)據(jù)目錄單獨掛載尖滚;
  3. 公共的配置文件目錄config/,公共日志目錄runtime/庐氮,方便部署和日常運維语稠;
  4. 獨立的vendor/、source/弄砍、frontend/仙畦、backend/、console/ ,系統(tǒng)權(quán)限和web訪問權(quán)限分離音婶;
  5. 包含國際化語言包(source/messages/**/**.php)议泵;
  6. 包含主題(僅前臺系統(tǒng),source/frontend/themes/**/views/**)
  7. 非生產(chǎn)環(huán)境代碼桃熄,tests/、tools/

目錄結(jié)構(gòu)


根目錄文件

<pre>
build.xml Jenkins 配置文件(如果未使用Jenkins集成型奥,可忽略本文件)
</pre>

vendor/

框架和組件的源碼目錄(composer默認安裝目錄)

source/

程序源碼目錄
<pre>
common/ 公共源碼
assets/
models/
components/
frontend/ 前臺應(yīng)用源碼
assets/
models/
controllers/
views/
themes/ 主題目錄
backend/ 后臺應(yīng)用源碼
assets/
models/
controllers/
views/
console/ 腳本應(yīng)用源碼
models/
controllers/

messages/ 國際化語言包
</pre>

config/

程序配置目錄
<pre>
common/ 公共配置
frontend/ 前臺應(yīng)用配置
backend/ 后臺應(yīng)用配置
console/ 命令行應(yīng)用配置
</pre>

static/

靜態(tài)文件目錄瞳收,包括css、js厢汹、images
<pre>
common/ 公共靜態(tài)文件
frontend/ 前臺應(yīng)用靜態(tài)文件
backend/ 后臺應(yīng)用靜態(tài)文件
</pre>

data/

用戶數(shù)據(jù)目錄(用戶上傳數(shù)據(jù))

runtime/

程序日志目錄(yii應(yīng)用生成)
<pre>
frontend/ 前臺日志目錄
backend/ 后臺日志目錄
console/ 腳本日志目錄
</pre>

根目錄文件frontend/

前臺應(yīng)用web目錄

根目錄文件backend/

后臺應(yīng)用web目錄

說明console/

命令行應(yīng)用目錄

tests/

測試腳本目錄(僅用于開發(fā)和測試螟深,不部署到生產(chǎn)環(huán)境)

tools/

工具目錄(僅用于應(yīng)用初始化,部署完后應(yīng)刪除)
<pre>
composer.phar
composer.json
composer.lock
init
init.bat
requirement.php
environments/
</pre>

目錄的系統(tǒng)權(quán)限


目錄的系統(tǒng)權(quán)限烫葬,通過/path/tools/init 初始化工具 自動完成界弧,詳見[Yii 2.x 的應(yīng)用初始化工具](待更新)。

源碼目錄

這些目錄不允許web修改搭综,也不允許shell執(zhí)行垢箕,目錄所有者是root:root 或jenkins_publisher:jenkins_publisher(或其他源碼發(fā)布管理組/用戶),目錄權(quán)限為:755兑巾,文件權(quán)限為:644
<pre>
vendor/
source/
config/
static/
frontend/
backend/
</pre>

web目錄

這些目錄允許web修改条获,但不允許shell執(zhí)行,及子目錄權(quán)限所有者是nobody:root 或 nobody:jenkins_publisher蒋歌,目錄權(quán)限為:755帅掘,文件權(quán)限為:644
<pre>
data/
runtime/
</pre>

命令行應(yīng)用入口

<pre>
console/
</pre>

目錄的web訪問權(quán)限


目錄的web訪問權(quán)限通過nginx(或apache)配置進行限制委煤,詳見 nginx 配置 部分

僅允許特定的入口文件執(zhí)行php(默認 index.php)

<pre>
/path/index.php (軟鏈,指向 /path/frontend/index.php)
/path/frontend/index.php
/path/backend/index.php
</pre>

允許web訪問的目錄

除了以下目錄外修档,其他目錄均無web訪問的權(quán)限碧绞,并返回404錯誤
<pre>
assets/ (軟鏈,指向 /path/frontend/assets/)
data/
static/
frontend/
backend/
</pre>

禁止通過web執(zhí)行腳本文件的目錄

在允許web訪問的目錄中吱窝,以下目錄不能執(zhí)行任何的腳本文件讥邻,包括php、jsp癣诱、sh等腳本文件计维,并返回403
<pre>
data/
static/
frontend/assets/
backend/assets/
</pre>

nginx配置(僅location 部分)

<pre>
index index.html index.htm index.php;
#隱藏index.php
location / {
if (!-e $request_filename){
rewrite ^/(.*) /index.php last;
}
}

#web可訪問,但禁止腳本執(zhí)行的目錄
location ~\* ^/(frontend|backend)/assets/.\*\.(php|php5|asp|aspx|py|pl|cgi|sh)$ {
    return 404;
    break;
}

#web可訪問撕予,但禁止腳本執(zhí)行的目錄
location ~\* ^/(static|data|assets)/.\*\.(php|php5|asp|aspx|py|pl|cgi|sh)$ {
    return 404;
    break;
}

#禁止web訪問的目錄
location ~\* ^/(config|runtime|source|verdor|console|tests)/ {
    return 404;
    break;
}

#允許frontend或backend目錄下的index.php文件
location ~\* ^/(frontend|backend)/index\.php$ {
    try_files $uri =404;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
}

#允許根目錄下的index.php文件
location ~\* ^/index\.php$ {
    try_files $uri =404;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
}

</pre>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鲫惶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子实抡,更是在濱河造成了極大的恐慌欠母,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吆寨,死亡現(xiàn)場離奇詭異赏淌,居然都是意外死亡,警方通過查閱死者的電腦和手機啄清,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門六水,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辣卒,你說我怎么就攤上這事掷贾。” “怎么了荣茫?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵想帅,是天一觀的道長。 經(jīng)常有香客問我啡莉,道長港准,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任咧欣,我火速辦了婚禮浅缸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘该押。我一直安慰自己疗杉,他們只是感情好,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著烟具,像睡著了一般梢什。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上朝聋,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天嗡午,我揣著相機與錄音,去河邊找鬼冀痕。 笑死荔睹,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的言蛇。 我是一名探鬼主播僻他,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼腊尚!你這毒婦竟也來了吨拗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤婿斥,失蹤者是張志新(化名)和其女友劉穎劝篷,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體民宿,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡娇妓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了活鹰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哈恰。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖志群,靈堂內(nèi)的尸體忽然破棺而出蕊蝗,到底是詐尸還是另有隱情,我是刑警寧澤赖舟,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站夸楣,受9級特大地震影響宾抓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜豫喧,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一石洗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧紧显,春花似錦讲衫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽招驴。三九已至,卻和暖如春枷畏,著一層夾襖步出監(jiān)牢的瞬間别厘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工拥诡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留触趴,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓渴肉,卻偏偏與公主長得像冗懦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子仇祭,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

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