Współdzielone środowiska hostujące są często ograniczone, jeśli chodzi o możliwości ich konfiguracji i struktury folderów. Pomimo to, wciąż, w większości przypadków, możesz w takim środowisku uruchomić Yii 2.0 po kilku drobnych modyfikacjach.
W standardowym współdzielonym środowisku hostującym jest zwykle tylko jeden główny folder publiczny (webroot), zatem wygodniej jest stosować podstawowy szablon projektu. Korzystając z instrukcji w sekcji Instalowanie Yii, zainstaluj taki szablon lokalnie. Po udanej instalacji, dokonamy kilku modyfikacji, aby aplikacji mogła działać na współdzielonym środowisku.
Połącz się ze swoim współdzielonym hostem za pomocą np. klienta FTP. Prawdopodobnie zobaczysz listę folderów podobną do poniższej.
config
logs
www
W tym przykładzie, www
jest folderem webroot. Folder ten może mieć różne nazwy, zwykle stosowane są: www
, htdocs
i public_html
.
Webroot w naszym podstawowym szablonie projektu nazywa się web
. Przed skopiowaniem aplikacji na serwer, zmień nazwę lokalnego folderu webroot, aby odpowiadała folderowi
na serwerze, czyli z web
na www
, public_html
lub na inną nazwę, która używana jest na serwerze.
Jeśli masz prawa zapisu w folderze poziomu root, czyli tam, gdzie znajdują się foldery config
, logs
i www
, skopiuj foldery assets
, commands
itd. bezpośrednio w to
miejsce.
Jeśli Twój serwer to Apache, będziesz musiał dodać plik .htaccess
z poniższą zawartością do folderu web
(czy też public_html
, bądź jakakolwiek jest jego nazwa),
gdzie znajduje się plik index.php
:
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# jeśli katalog lub plik istnieje, użyj go bezpośrednio
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# w innym przypadku przekieruj żądanie na index.php
RewriteRule . index.php
W przypadku serwera nginx nie powinieneś potrzebować dodatkowego pliku konfiguracyjnego.
Aby uruchomić Yii, Twój serwer musi spełniać jego wymagania. Minimalnym wymaganiem jest PHP w wersji 5.4. Możesz sprawdzić wszystkie wymagania, kopiując plik
requirements.php
z folderu root do folderu webroot i uruchamiając go w przeglądarce pod adresem https://example.com/requirements.php
.
Nie zapomnij o skasowaniu tego pliku po sprawdzeniu wymagań.
Wdrażanie zaawansowanej aplikacji na współdzielonym środowisku jest odrobinę bardziej problematyczne, niż w przypadku podstawowej aplikacji, ponieważ wymaga ona dwóch folderów webroot, czego zwykle nie wspierają serwery środowisk współdzielonych. Będziemy musieli odpowiednio dostosować strukturę folderów.
Na początek potrzebujemy folderu webroot. Stwórz nowy folder i nazwij go tak, jak webroot docelowego serwera, jak opisane zostało to w
Zmiana nazwy webroota powyżej, np. www
czy też public_html
. Następnie utwórz poniższą strukturę, gdzie www
jest folderem webroot,
który właśnie stworzyłeś:
www
admin
backend
common
console
environments
frontend
...
www
będzie naszym folderem frontend, zatem przenieś tam zawartość frontend/web
. Do folderu www/admin
przenieś zawartość backend/web
.
W każdym przypadku będziesz musiał zmodyfikować ścieżki w plikach index.php
i index-test.php
.
Backend i frontend zostały stworzone z myślą o uruchamianiu ich z poziomu oddzielnych domen. Jeśli uruchamiamy je z poziomu jednej domeny, frontend i backend będą dzielić
te same ciasteczka, co może wywołać konflikty. Aby temu zapobiec, zmodyfikuj backendową konfigurację aplikacji backend/config/main.php
jak poniżej:
'components' => [
'request' => [
'csrfParam' => '_backendCSRF',
'csrfCookie' => [
'httpOnly' => true,
'path' => '/admin',
],
],
'user' => [
'identityCookie' => [
'name' => '_backendIdentity',
'path' => '/admin',
'httpOnly' => true,
],
],
'session' => [
'name' => 'BACKENDSESSID',
'cookieParams' => [
'path' => '/admin',
],
],
],
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.