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
Dział zatytułowany „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
Dział zatytułowany „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.
configlogswwwW 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
Dział zatytułowany „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
Dział zatytułowany „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 +FollowSymLinksIndexIgnore */*
RewriteEngine on
# jeśli katalog lub plik istnieje, użyj go bezpośrednioRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d
# w innym przypadku przekieruj żądanie na index.phpRewriteRule . index.phpW przypadku serwera nginx nie powinieneś potrzebować dodatkowego pliku konfiguracyjnego.
Sprawdzenie wymagań
Dział zatytułowany „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 https://example.com/requirements.php.
Nie zapomnij o skasowaniu tego pliku po sprawdzeniu wymagań.
Wdrożenie zaawansowanej aplikacji
Dział zatytułowany „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
Dział zatytułowany „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 adminbackendcommonconsoleenvironmentsfrontend...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
Dział zatytułowany „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', ], ],],