start-installation.md 13.6 KB
Newer Older
RichWeber committed
1
Встановлення Yii
2
================
RichWeber committed
3 4

Ви можете встановити Yii двома шляхами: використовуючи [Composer](http://getcomposer.org/) або завантаживши архів.
5
Перший варіант э бажанішим, тому що дозволить встановити всі нові [розширення](structure-extensions.md)
RichWeber committed
6 7
або оновити Yii однією командою.

8 9
> Примітка: На відміну від Yii 1, після стандартного встановлення Yii 2 ми отримуємо як фреймворк, так і шаблон додатка.

RichWeber committed
10

11
Встановлення за допомогою Composer <span id="installing-via-composer"></span>
12
----------------------------------
RichWeber committed
13

14 15
Якщо у вас все ще не вставновлено Composer, то це можна зробити за допомогою інструкції на [getcomposer.org](https://getcomposer.org/download/).
Користувачам Linux та Mac OS X потрібно виконати наступні команди:
RichWeber committed
16

17 18
    curl -s http://getcomposer.org/installer | php
    mv composer.phar /usr/local/bin/composer
RichWeber committed
19

20
При роботі з Windows, необхідно завантажити та запустити [Composer-Setup.exe](https://getcomposer.org/Composer-Setup.exe).
RichWeber committed
21

22
В разі наявності проблем або якщо вам необхідна додаткова інформація, зверніться до [документації Composer](https://getcomposer.org/doc/).
RichWeber committed
23

24 25
Якщо ж Composer вже було встановлено раніше, переконайтесь, що використовуюєте його останню версію.
Ви можете оновити Composer простою командою `composer self-update`.
RichWeber committed
26

27
Після встановлення Composer, встановити Yii можна виконавши наступну команду з директорії, яка доступна через Web:
RichWeber committed
28

29 30
    composer global require "fxp/composer-asset-plugin:1.0.0-beta4"
    composer create-project --prefer-dist yiisoft/yii2-app-basic basic
RichWeber committed
31

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Перша команда встановить [плагін ресурсів composer (composer-asset-plugin)](https://github.com/francoispluchino/composer-asset-plugin/),
що дозволить керувати залежностями пакетів Bower та NPM за допомогою Composer. Цю команду потрібно виконати лише один раз.
Друга команда встановить Yii у директорію під назвою `basic`. За бажанням, ви можете обрати іншу директорію.

> Примітка: Під час встановлення може статися так, що Composer запитає облікові дані від вашого профілю на Github,
> через встановлені обмеження запитів Github API. Це є нормальним, оскільки Composer повинен отримати багато інформації
> для всіх пакетів із Github. Надання облікових даних профіля Github збільшить кількість запитів до API, потрібних для
> подальшої роботи Composer. Для більш детальної інформації, будь ласка, зверніться до
> [документації Composer](https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens).

> Підказка: Якщо ви хочете встановити останню нестабільну версію Yii, ви можете виконати наступну команду,
> яка додає опцію [stability](https://getcomposer.org/doc/04-schema.md#minimum-stability):
>
>     composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic
>
> Варто зауважити, що нестабільну версію Yii не можна використовувати на робочому сервері, оскільки вона може порушити
> виконання робочого коду.
RichWeber committed
49 50


51
Встановлення з архіву <span id="installing-from-archive-file"></span>
52
---------------------
RichWeber committed
53

54
Встановлення Yii з архіву складається з трьох кроків:
RichWeber committed
55

56
1. Завантажте архів за адресою [yiiframework.com](http://www.yiiframework.com/download/);
RichWeber committed
57
2. Розпакуйте архів в директорію, доступну через Web.
58 59 60 61 62 63 64
3. Відредагуйте файл конфігурації `config/web.php` - необхідно заповнити секретний ключ до пункту `cookieValidationKey`
   (це виконуєтся автоматично при вставленні Yii через Composer):

   ```php
   // !!! встановити секретний ключ до наступного пункту (якщо порожній) - це необхідно для валідації кукі
   'cookieValidationKey' => 'enter your secret key here',
   ```
RichWeber committed
65 66


67
Інші параметри встановлення <span id="other-installation-options"></span>
68
---------------------------
RichWeber committed
69

70
Вище наведені інструкції по встановленню Yii, які також створюють базовий веб-додаток, готового до роботи.
RichWeber committed
71 72
Це відмінний варіант для невеликих проектів або для тих, хто тільки розпочинає вивчати Yii.

73
Але є ще й інші варіанти встановлення:
RichWeber committed
74

75 76
* Якщо вам потрібен тільки один фреймворк і ви хотіли б створити додаток з нуля, використовуйте інструкцію, 
  що описана у розділі [Створення додатка з нуля](tutorial-start-from-scratch.md).
RichWeber committed
77
* Якщо хочете розпочати з більш насиченого додатка, який добре підходить для роботи в команді, використовуйте
78
  [разширений шаблон додатка](tutorial-advanced-app.md).
RichWeber committed
79 80


81
Перевірка встановлення <span id="verifying-installation"></span>
RichWeber committed
82 83
----------------------

84
Після встановлення, ви можете перевірити за допомогою браузера свій встановлений додаток Yii за наступним URL:
RichWeber committed
85 86

```
87
http://localhost/basic/web/index.php
RichWeber committed
88 89
```

90 91 92 93
Даний URL передбачає встановлення додатка в директорію `basic` базової директорії вашого локального веб-сервера (`localhost`).
Можливо вам знадобиться підкорегувати налаштування свого сервера.

![Успішно встановленний Yii](images/start-app-installed.png)
RichWeber committed
94

95 96
Ви повинні побачити сторінку браузера із привітанням "Congratulations!". Якщо ні — провірте, чи задовільняють
налаштування PHP вимогам Yii одним із способів:
RichWeber committed
97

98 99
* Браузером перейдіть на URL `http://localhost/basic/requirements.php`
* Або виконайте наступні команди в консолі: 
RichWeber committed
100 101 102 103 104 105

  ```
  cd basic
  php requirements.php
  ```

106 107 108
Для коректної роботи фреймворка вам необхідно мати PHP, який відповідає його мінімальним вимогам. 
Основна вимога — PHP версії 5.4 або вище. Якщо ваш додаток працює з базою даних, необхідно встановити
[розширення PHP PDO](http://www.php.net/manual/en/pdo.installation.php) та відповідний драйвер 
RichWeber committed
109 110 111
(наприклад, `pdo_mysql` для MySQL).


112
Налаштування веб серверів <span id="configuring-web-servers"></span>
113
-------------------------
RichWeber committed
114

115 116
> Інформація: можете пропустити даний підрозділ, якщо ви тільки розпочали знайомитися з фреймворком 
  і не розгортаєте його на робочому сервері.
RichWeber committed
117

118 119 120 121
Додаток, встановлений за інструкціями, наведеними вище, буде працювати одразу як з [Apache HTTP server](http://httpd.apache.org/),
так і з [Nginx HTTP server](http://nginx.org/) під Windows, Mac OS X чи Linux із встановленим PHP 5.4 або вище.
Yii 2.0 також сумісний із віртуальною машиною [HHVM](http://hhvm.com/) фейсбука, однак є деякі крайні випадки, 
де HHVM поводиться інакше, ніж рідний PHP, тому ви повинні бути дуже уважними при використанні HHVM.  
RichWeber committed
122

123 124 125 126
На рабочому сервері вам напевно захочеться змінити URL додатку з `http://www.example.com/basic/web/index.php`
на `http://www.example.com/index.php`. Для цього необхідно змінити кореневу директорію в налаштуваннях веб сервера на `basic/web`.
Додатково можно сховати `index.php` із URL, як це описано у розділі [Маршрутизація та створення URL](runtime-routing.md). 
Далі буде показано як налаштувати Apache і Nginx для цих цілей.
RichWeber committed
127

128 129
> Інформація: Встанновлюючи `basic/web` кореневою директорією веб-сервера, ви забороняєте кінцевим користувачам доступ
  до приватного коду додатка та важливим даним, які знаходяться на одному рівні з `basic/web`. Це робить додаток більш захищенним.
RichWeber committed
130

131 132
> Інформація: Якщо додаток працює на хостингу, де немає доступу до налаштувань сервера, ви всеодно можете змінити структуру
  додатка для покращення безпеки, як описано в розділі [Робота на shared хостингу](tutorial-shared-hosting.md).
RichWeber committed
133 134


135
### Рекомендовані налаштування Apache <span id="recommended-apache-configuration"></span>
RichWeber committed
136

137 138
Додайте наступний код до файлу конфігурации Apache `httpd.conf` або в конфігураційний файл віртуального хоста. 
Не забудьте замінити `path/to/basic/web` на коректний шлях до `basic/web`.
RichWeber committed
139 140 141 142 143 144

```
# Встановлюємо кореневою директорією "basic/web"
DocumentRoot "path/to/basic/web"

<Directory "path/to/basic/web">
145
    # використаємо mod_rewrite для підтримки гарних URL
RichWeber committed
146
    RewriteEngine on
147
    # Якщо запитуваний файл або директорія існують - звертаємось до них напряму
RichWeber committed
148 149 150 151 152 153 154 155 156 157
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # Якщо ні - перенаправляємо запит на index.php
    RewriteRule . index.php

    # ...інші налаштування...
</Directory>
```


158
### Рекомендовані налаштування Nginx <span id="recommended-nginx-configuration"></span>
RichWeber committed
159

160 161 162
Для використання [Nginx](http://wiki.nginx.org/) вам потрібно встановити PHP як [FPM SAPI](http://php.net/install.fpm).
Використовуйте наступні параметри Nginx, замінивши `path/to/basic/web` на коректний шлях до `basic/web`,
а `mysite.local` на бажаний домен.
RichWeber committed
163 164 165 166 167 168 169

```
server {
    charset utf-8;
    client_max_body_size 128M;

    listen 80; ## listen for ipv4
170
    #listen [::]:80 default_server ipv6only=on; ## слухаємо ipv6
RichWeber committed
171 172 173 174 175

    server_name mysite.local;
    root        /path/to/basic/web;
    index       index.php;

176 177
    access_log  /path/to/basic/log/access.log main;
    error_log   /path/to/basic/log/error.log;
RichWeber committed
178 179

    location / {
180
        # Перенаправляємо всі запити від неіснуючих директорій або файлів на index.php
RichWeber committed
181 182 183
        try_files $uri $uri/ /index.php?$args;
    }

184
    # розкоментуйте строки нижче для запобігання обробки звернень Yii до неіснуючих статичних файлів
RichWeber committed
185 186 187 188 189 190 191 192 193
    #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.conf;
        fastcgi_pass   127.0.0.1:9000;
        #fastcgi_pass unix:/var/run/php5-fpm.sock;
194
        try_files $uri =404;
RichWeber committed
195 196 197 198 199 200 201 202
    }

    location ~ /\.(ht|svn|git) {
        deny all;
    }
}
```

203
Використовуючи дану конфігурацію встановіть `cgi.fix_pathinfo=0` в `php.ini`, щоб запобігти зайвим системним викликам `stat()`.
RichWeber committed
204

205 206
Врахуйте також, що при використанні HTTPS необхідно задавати `fastcgi_param HTTPS on;` щоб Yii міг корректно 
визначати захищене з’єднання.