4.6 KiB
Współdzielone środowisko hostujące
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.
Wdrożenie podstawowej aplikacji
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.
Zmiana nazwy webroota
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.
Folder root FTP jest zapisywalny
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.
Dodatkowe opcje serwera
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.
Sprawdzenie wymagań
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 http://example.com/requirements.php
.
Nie zapomnij o skasowaniu tego pliku po sprawdzeniu wymagań.
Wdrożenie zaawansowanej aplikacji
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.
Przeniesienie skryptów wejściowych do jednego folderu webroot
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
.
Rozdzielone sesje i ciasteczka
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',
],
],
],