Ви можете встановити Yii двома шляхами: використовуючи менеджер пакунків Composer або завантаживши файл архіву. Перший варіант є бажанішим, тому що дозволяє встановлювати нові розширення або оновлювати Yii простим виконанням однієї команди.
Після стандартного встановлення Yii ми отримуємо як фреймворк, так і шаблон проекту. Шаблон проекту - це робочий проект Yii, в якому реалізовано деякий базовий функціонал, такий як система входу/виходу користувачів, форма зворотнього зв’язку і т. д. Його код організовано в рекомендований спосіб. Таким чином, це може слугувати гарною відправною точкою для ваших проектів.
У цьому та у наступних кількох розділах буде описано, як встановити Yii з так званим Базовим шаблоном проекту та як реалізувати нові можливості на базі цього шаблону. Також Yii надає інший шаблон із назвою Розширений шаблон проекту, який краще використовувати у середовищі розробки в команді для розробки складних додатків.
Info: Базовий шаблон проекту підходить для розробки 90 відсотків веб-додатків. Він відрізняється від Розширеного шаблону проекту в основному організацією коду. Якщо ви малознайомі з Yii, наполегливо рекомендується використовувати Базовий шаблон проекту із-за його простоти, але й достатньої функціональності.
Якщо у вас все ще не встановлено Composer, то це можна зробити за допомогою інструкції на getcomposer.org. Користувачам Linux та Mac OS X потрібно виконати наступні команди:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
При роботі з Windows, необхідно завантажити та запустити Composer-Setup.exe.
В разі наявності проблем або якщо вам необхідна додаткова інформація, зверніться до документації Composer.
Якщо ж Composer вже було встановлено раніше, переконайтесь, що використовуєте його останню версію.
Ви можете оновити Composer простою командою composer self-update
.
Після встановлення Composer, встановити Yii можна виконавши наступну команду з директорії, яка доступна через Web:
composer global require "fxp/composer-asset-plugin:^1.4.1"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
Перша команда встановить плагін ресурсів composer (composer-asset-plugin),
що дозволить керувати залежностями пакунків Bower та NPM за допомогою Composer. Цю команду потрібно виконати лише
один раз. Друга команда встановить Yii у директорію під назвою basic
. За бажанням, ви можете обрати інше ім’я для директорії.
Note: Під час встановлення може статися так, що Composer запитає облікові дані від вашого профілю на GitHub, через встановлені обмеження запитів GitHub API. Це є нормальним, оскільки Composer повинен отримати багато інформації для всіх пакунків із GitHub. Надання облікових даних профілю GitHub збільшить кількість запитів до API, потрібних для подальшої роботи Composer. Для більш детальної інформації, будь ласка, зверніться до документації Composer.
Tip: Якщо ви хочете встановити останню нестабільну версію Yii, ви можете виконати наступну команду, яка додає опцію stability:
composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic
Варто зауважити, що нестабільну версію Yii не можна використовувати на робочому сервері, оскільки вона може порушити виконання робочого коду.
Встановлення Yii з архіву складається з трьох кроків:
Відредагуйте файл конфігурації config/web.php
- необхідно ввести таємний ключ до пункту cookieValidationKey
(це виконується автоматично при вставленні Yii через Composer):
// !!! встановити таємний ключ до наступного пункту (якщо порожній) - це необхідно для перевірки кукі
'cookieValidationKey' => 'enter your secret key here',
Вище наведені інструкції показують як встановити Yii та створити базовий веб-додаток, який працює "з коробки". Цей підхід є гарною відправною точкою для більшості проектів, як малих так і великих. Це особливо підходить для тих, хто тільки розпочинає вивчати Yii.
Але є ще й інші варіанти встановлення:
Після успішного встановлення ви можете налаштувати свій веб-сервер (див. наступний розділ)
або використати вбудований веб-сервер PHP,
виконавши наступну консольну команду із директорії web
:
php yii serve
Note: За замовчуванням, HTTP-server буде прослуховувати порт 8080. Проте, якщо цей порт вже використовується, або ви бажаєте таким чинов використовувати кілька додатків одразу - ви можете встановити, який саме порт використовувати. Тільки додайтие аргумент --port:
php yii serve --port=8888
Тепер ви можете використати свій браузер для доступу до встановленого Yii додатку за наступним посиланням:
http://localhost:8080/
Ви повинні побачити сторінку із привітанням "Congratulations!" у вашому браузері. Якщо ж ні, будь ласка, перевірте, чи задовольняють налаштування PHP вимоги Yii. Це можна зробити одним із наведених способів:
/requirements.php
до /web/requirements.php
та використайте браузер для доступу до URL http://localhost/requirements.php
Виконайте наступні команди в консолі:
cd basic
php requirements.php
Необхідно налаштувати PHP таким чином, щоб він відповідав мінімальним вимогам Yii. Основна вимога — PHP версії 5.4 або вище.
Якщо ваш додаток працює з базою даних, необхідно встановити розширення PHP PDO
та відповідний драйвер (наприклад, pdo_mysql
для MySQL).
Info: можете пропустити даний підрозділ, якщо ви тільки розпочали знайомитися з фреймворком і не розгортаєте його на робочому сервері.
Додаток, встановлений за інструкціями, наведеними вище, буде працювати одразу як з Apache HTTP server, так і з Nginx HTTP server на Windows, Mac OS X чи Linux із встановленим PHP 5.4 або вище. Yii 2.0 також сумісний із віртуальною машиною Фейсбука HHVM, однак є деякі крайні випадки, де HHVM поводиться інакше, ніж рідний PHP, тому ви повинні бути дуже уважними при використанні HHVM.
На робочому сервері вам напевно захочеться змінити URL додатку з https://www.example.com/basic/web/index.php
на https://www.example.com/index.php
. Для цього необхідно змінити кореневу директорію в налаштуваннях веб-сервера на basic/web
.
Додатково можна сховати index.php
із URL, як це описано у розділі Маршрутизація та створення URL.
Далі буде описано як налаштувати Apache або Nginx для цих цілей.
Info: Встановлюючи
basic/web
кореневою директорією веб-сервера, ви забороняєте кінцевим користувачам доступ до приватного коду додатка та важливих даних, які знаходяться на одному рівні зbasic/web
. Це робить додаток більш захищеним.
Info: Якщо додаток працює на хостингу, де немає доступу до налаштувань сервера, ви все ще можете змінити структуру додатка для покращення безпеки, як описано в розділі Робота на віртуальному хостингу.
Додайте наступний код до файлу конфігурації httpd.conf
веб-сервера Apache або в конфігурацію віртуального хоста.
Не забудьте замінити path/to/basic/web
на коректний шлях до basic/web
.
# Встановлюємо кореневою директорією "basic/web"
DocumentRoot "path/to/basic/web"
<Directory "path/to/basic/web">
# використаємо mod_rewrite для підтримки гарних URL
RewriteEngine on
# Якщо запитуваний файл або директорія існують - звертаємось до них напряму
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Якщо ні - перенаправляємо запит на index.php
RewriteRule . index.php
# ...інші налаштування...
</Directory>
Для використання Nginx вам потрібно встановити PHP як FPM SAPI.
Використовуйте наступні параметри Nginx, замінивши path/to/basic/web
на коректний шлях до
basic/web
, а mysite.test
на актуальний домен.
server {
charset utf-8;
client_max_body_size 128M;
listen 80; ## "слухаємо порт" для ipv4
#listen [::]:80 default_server ipv6only=on; ## "слухаємо порт" для ipv6
server_name mysite.test;
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 / {
# Перенаправляємо всі запити на index.php, якщо це не наявна директорія або файл
try_files $uri $uri/ /index.php?$args;
}
# розкоментуйте рядки нижче для запобігання обробки звернень 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.conf;
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;
}
}
Використовуючи дану конфігурацію встановіть cgi.fix_pathinfo=0
у файлі php.ini
,
щоб запобігти зайвим системним викликам stat()
.
Врахуйте також, що при використанні HTTPS необхідно задавати fastcgi_param HTTPS on;
щоб Yii
міг коректно визначати захищене з’єднання.