W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
共享的托管環(huán)境常常會對目錄結構以及配置文件有較多的限制。然而,在大多數(shù)情況下,你仍可以通過少量的修改以在共享托管環(huán)境下運行 Yii 2.0。
由于共享托管環(huán)境往往只有一個 webroot,如果可能,請優(yōu)先使用基礎項目模板( basic project template )構建你的應用程序。參考?安裝 Yii 章節(jié)在本地安裝基礎項目模板。當你讓應用程序在本地正常運行后,我們將要做少量的修改以讓它可以在共享托管服務器運行。
用FTP或者其他的工具連接到你的托管服務器,你可能看到類似如下的目錄結構:
config
logs
www
在以上,www
?是你的 web 服務器的 webroot 目錄。不同的托管環(huán)境下名稱可能各不相同,通常是類似:?www
,?htdocs
, 和public_html
?之類的名稱。
對于我們的基礎項目模板而言,其 webroot 名為?web
?。 在你上傳你的應用程序到 web 服務器上去之前,將你的本地 webroot 重命名以匹配服務器。 即: 從?web
?改為?www
,?public_html
?或者其他你的托管環(huán)境的 webroot 名稱。
如果你有 FTP 根目錄的寫權限,即,有?config
,?logs
?和?www
?的根目錄,那么,如本地根目錄相同的結構上傳?assets
,commands
?等目錄。
如果你的 web 服務器是 Apache,你需要增加一個包含如下內(nèi)容的?.htaccess
?文件到你的?web
?目錄(或者?public_html
?根據(jù)實際情況而定,是你的?index.php
?文件所在的目錄)。
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
對于nginx而言,你不需要額外的配置文件。
為了運行 Yii ,你的 web 服務器必須匹配它的環(huán)境要求。最低的要求必須是 PHP 5.4。為了檢查環(huán)境配置,將?requirements.php
?從你的根目錄拷貝到 webroot 目錄,并通過瀏覽器輸入 URL?http://example.com/requirements.php
?運行它。最后,檢查結束后別忘了刪除這個文件哦!
部署一個高級應用程序到共享的托管環(huán)境比基礎應用要麻煩的原因在于它包含有兩個 webroot 目錄,而共享的托管環(huán)境不支持兩個。對于這種情況,我們需要調(diào)整目錄結構。
首先我們需要一個 webroot 目錄,如重命名 webroot一節(jié)所述,創(chuàng)建一個新的跟你的托管環(huán)境 webroot 同名的目錄,如類似?www
?或者public_html
?的名字。創(chuàng)建如下的目錄結構,其中?www
?目錄指代你剛剛創(chuàng)建的 webroot 目錄。
www
admin
backend
common
console
environments
frontend
...
www
?目錄是我們的前臺目錄,所以將?frontend/web
?里面的內(nèi)容移到這個目錄。 將?backend/web
?里面的內(nèi)容移到?www/admin
?目錄。對于每種情況下,你需要調(diào)整`index.php?和?
index-test.php` 里面引用的目錄結構。
通常情況下,backend 和 frontend 運行在不同的域下,當我們將其都移到同一個域時, frontend 和 backend 將會共享相同的 cookie,這樣會造成沖突。為了修復這個問題,如下調(diào)整 backend 的應用程序配置文件?backend/config/main.php
:
'components' => [
'request' => [
'csrfParam' => '_backendCSRF',
'csrfCookie' => [
'httpOnly' => true,
'path' => '/admin',
],
],
'user' => [
'identityCookie' => [
'name' => '_backendIdentity',
'path' => '/admin',
'httpOnly' => true,
],
],
'session' => [
'name' => 'BACKENDSESSID',
'cookieParams' => [
'path' => '/admin',
],
],
],
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: