11 KiB
Instalacja Yii
Yii możesz zainstalować na dwa sposoby, korzystając z [Composera] (https://getcomposer.org/) lub pobierając plik archiwum. Pierwszy z nich jest najlepszym sposobem, ponieważ pozwala Ci na instalację nowych rozszerzeń lub aktualizację Yii przez wywołanie jednej komendy.
Standardowa instalacja Yii skutkuje pobraniem i zainstalowaniem całego framework'a oraz szablonu projektu. Szablon projektu jest działającym projektem Yii zawierającym w sobie podstawowe funkcjonalności, takie jak logowanie, formularz kontaktowy itp. Jego kod jest zorganizowany w zalecany sposób, dlatego może służyć jako dobry start dla Twojego projektu.
W tej oraz kilku kolejnych sekcjach opiszemy jak zainstalować Yii z tzw. "podstawowym szablonem projektu" oraz jak zaimplementować w nim nowe funkcjonalności. Yii dostarcza również drugi, zaawansowany szablon projektu, który jest lepszy dla programistów tworzących wielowarstwowe aplikacje.
Info: Podstawowy szablon projektu jest odpowiedni dla 90% aplikacji webowych. Główną różnicą, w porównaniu do zaawansowanego szablonu projektu, jest organizacja kodu. Jeśli dopiero zaczynasz swoją przygodę z Yii, mocno zalecamy trzymać się podstawowego szablonu, ze względu na jego prostotę oraz wystarczającą funkcjonalność.
Instalacja przez Composer
Jeśli nie posiadasz jeszcze zainstalowanego Composer'a to możesz to zrobić podążając według zamieszczonych na getcomposer.org instrukcji. W systemach operacyjnych Linux i Mac OS X należy wywołać następujące komendy:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
W systemie Windows należy pobrać i uruchomić Composer-Setup.exe.
W przypadku napotkania jakichkolwiek problemów lub chęci zdobycia większej ilości informacji na temat korzystania z Composer'a zalecamy odniesienie się do dokumentacji
Jeśli posiadałeś już wcześniej zainstalowanego Composer'a, upewnij się, że jest on zaktualizowany. Composer możesz zaktualizować wywołując komendę 'composer self-update'.
Z zainstalowanym Composer'em możesz przejść do instalacji Yii wywołując poniższe komendy w katalogu dostępnym w sieci web:
composer global require "fxp/composer-asset-plugin:~1.1.1"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
Pierwsza komenda instaluje wtyczkę zasobów, która pozwala na zarządzanie zasobami Bower'a oraz paczkami zależności NPM przez Composer.
Komendę tą wystarczy wywołać raz, po czym wtyczka będzie już na stałe zainstalowana.
Druga komenda instaluje Yii w katalogu basic
. Jeśli chcesz, możesz wybrać katalog o innej nazwie.
Note: Podczas instalacji Composer może zapytać o Twoje dane uwierzytelniające do Github'a. Jest to normalna sytuacja, ponieważ Composer potrzebuje wystarczającego limitu prędkości API do pobrania informacji o pakiecie zależnym z Github'a. Więcej szczegółów znajdziesz w dokumentacji Composer'a.
Tip: Jeśli chcesz zainstalować najnowszą wersję deweloperską Yii użyj poniższej komendy, która dodaje opcję stabilności:
composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic
Pamiętaj, że wersja deweloperska Yii nie powinna być używana w wersjach produkcyjnych aplikacji, ponieważ mogą wystąpić niespodziewane błędy.
Instalacja z pliku archiwum
Instalacja Yii z pliku archiwum dotyczy trzech kroków:
-
Pobranie pliku archiwum z yiiframework.com.
-
Rozpakowanie pliku archiwum do katalogu dostępnego w sieci web.
-
Zmodyfikowanie pliku
config/web.php
przez dodanie sekretnego klucza do elementu konfiguracjicookieValidationKey
(jest to wykonywane automatycznie jeśli instalujesz Yii używając Composer'a):// !!! wprowadź sekretny klucz tutaj - jest to wymagane przez walidację ciasteczek 'cookieValidationKey' => 'enter your secret key here',
Inne opcje instalacji
Powyższe instrukcje instalacji pokazują jak zainstalować Yii oraz utworzyć podstawową, działającą aplikację Web, która "działa po wyjęciu z pudełka". To podejście jest dobrym punktem startowym dla większości projektów, małych bądź dużych. Jest to szczególnie korzystne gdy zaczynasz naukę Yii.
Jednak dostępne są również inne opcje instalacji:
- Jeśli chcesz zainstalować wyłącznie framework i sam budować aplikację od podstaw
- Jeśli chcesz utworzyć bardziej wyrafinowaną aplikację, lepiej nadającą się do zespołu programistycznego, powinienieś rozważyć instalację zaawansowanego szablonu aplikacji.
Sprawdzenie instalacji
Po instalacji możesz użyć swojej przeglądarki aby uzyskać dostęp do swojej aplikacji Yii przechodząc pod adres:
http://localhost/basic/web/index.php
Adres zakłada, że zainstalowałeś Yii w katalogu o nazwie basic
, bezpośrednio jako katalog głównego katalogu serwera, oraz, że serwer jest uruchomiony na Twojej lokalnej maszynie ('localhost').
Być może będziesz musiał dostosować go do Twojego środowiska instalacyjnego.
Na stronie w przeglądarce powinienieś zobaczyć napis "Congratulations!". Jeśli nie, sprawdź czy zainstalowana wersja PHP jest wystarczająca do wymagań Yii. Możesz sprawdzić minimalne wymagania na dwa sposoby:
-
Używając przeglądarki przejdź pod adres
http://localhost/basic/requirements.php
-
Wywołaj poniższą komendę:
cd basic php requirements.php
Powinienieś skonfigurować swoją instalację PHP tak, aby spełniała minimalne wymogi Yii. Najważniejszym z nich jest posiadanie PHP w wersji 5.4 lub wyżej. Powinienieś również zainstalować
rozszerzenie PDO oraz odpowiedni sterownik bazy danych (np. pdo_mysql
dla bazy danych MySQL), jeśli Twoja aplikacja potrzebuje bazy danych.
Konfigurowanie serwerów WWW
Info: Możesz pominąć tą sekcję jeśli tylko testujesz Yii, bez zamiaru zamieszczania aplikacji na serwerze produkcyjnym.
Aplikacja zainstalowana według powyższych instrukcji powinna działać na serwerze Apache HTTP oraz serwerze Nginx HTTP, na systemie operacyjnym Windows, Mac OS X oraz Linux posiadających zainstalowany PHP 5.4 lub wyżej. Yii 2.0 jest również kompatybilne z facebook'owym HHVM. Są jednak przypadki, gdzie Yii zachowuje się inaczej w HHVM niż w natywnym PHP, dlatego powinieneś zachować szczególną ostrożność używając HHVM.
Na serwerze produkcyjnym będziesz chciał skonfigurować swój serwer Web tak, aby aplikacja była dostępna pod adresem http://www.example.com/index.php
zamiast http://www.example.com/basic/web/index.php
.
Taka konfiguracja wymaga wskazania głównego katalogu serwera na katalog basic/web
. Jeśli chcesz ukryć index.php
z adresu URL skorzystaj z informacji opisanych w dziale routing i tworzenie adresów URL
W tej sekcji dowiesz sie jak skonfigurować Twój serwer Apache lub Nginx aby osiągnąć te cele.
Info: Ustawiając
basic/web
jako główny katalog serwera zapobiegasz niechcianego dostępu użytkowników końcowych do prywatnego kodu oraz wrażliwych plików aplikacji, które są przechowywane w katalogubasic
. Blokowanie dostępu do tych folderów jest dużą poprawą bezpieczeństwa.
Info: W przypadku, gdy Twoja aplikacja działa na wspólnym środowisku hostingowym, gdzie nie masz dostępu do modyfikowania konfiguracji serwera, nadal możesz zmienić strukturę aplikacji dla lepszej ochrony. Po więcej informacji zajrzyj do działu wspólne środowisko hostingowe
Zalecane ustawienia Apache
Użyj następującej konfiguracji serwera Apache w pliku httpd.conf
lub w konfiguracji wirtualnego hosta.
Pamiętaj, że musisz zamienić ścieżkę path/to/basic/web
na aktualną ścieżkę do basic/web
Twojej aplikacji.
# Ustaw główny katalog na "basic/web"
DocumentRoot "path/to/basic/web"
<Directory "path/to/basic/web">
# użyj mod_rewrite do wsparcia "ładnych URL'i"
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
# ...inne ustawienia...
</Directory>
Zalecane ustawienia Nginx
Aby użyć Nginx powinienieś zainstalować PHP jako FPM SAPI.
Możesz użyć przedstawionej poniżej konfiguracji Nginx, zastępując jedynie ścieżkę path/to/basic/web
na aktualną ścieżkę do basic/web
Twojej aplikacji oraz mysite.local
na aktualną nazwę hosta.
server {
charset utf-8;
client_max_body_size 128M;
listen 80; ## nasłuchuj ipv4
#listen [::]:80 default_server ipv6only=on; ## listen for ipv6
server_name mysite.local;
root /path/to/basic/web;
index index.php;
access_log /path/to/basic/log/access.log;
error_log /path/to/basic/log/error.log;
location / {
# Przekieruj wszystko co nie jest prawdziwym plikiem na index.php
try_files $uri $uri/ /index.php?$args;
}
# odkomentuj aby uniknąć przetwarzania żądań do nieistniejących plików przez Yii
#location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
# try_files $uri =404;
#}
#error_page 404 /404.html;
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
try_files $uri =404;
}
location ~ /\.(ht|svn|git) {
deny all;
}
}
W przypadku użycia tej konfiguracji, powinienieś ustawić również cgi.fix_pathinfo=0
w pliku php.ini
aby zapobiec wielu zbędnych wywołań 'stat()'.
Należy również pamiętać, że podczas pracy na serwerze HTTPS musisz dodać fastcgi_param HTTPS on;
aby Yii prawidłowo wykrywało, że połączenie jest bezpieczne.