База знаний

Инструкции и ответы на вопросы о хостинге, работе сайтов и приложений

Yii2

Yii2фреймворк для разработки веб-приложений на PHP. Он имеет базовую и расширенную версии. В расширенной содержится два приложения: для самого сайта (frontend) и для административной части (backend), в базовой — приложение одно (frontend).

Выберите версию, которая подходит для решения ваших задач, а мы расскажем, как ее установить.

Установка Yii2 basic

Базовую версию фреймворка установить несложно. Рекомендуем работать, подключившись по SSH.

Перейдите в каталог ~/domains/domain.ru и удалите папку public_html: [username@server ~]$ cd domains/domain.ru/
 [username@server domain.ru]$ rm -r public_html 
Эту операцию можно выполнить и с помощью Файлового менеджера в Панели управления.

Скачайте последнюю версию фреймворка с официального сайта с помощью утилиты wget:

[username@server domain.ru]$ wget ссылка_на_архив

Распакуйте архив: [username@server domain.ru]$ tar xfz yii-basic-app-X.X.XX.tgz  где X.X.XX — версия вашего дистрибутива.

Переместите файлы из каталога ~/domains/domain.ru/basic в ~/domains/domain.ru:

[username@server domain.ru]$ mv basic/* .

И удалите каталог basic, а также сам архив:

[username@server domain.ru]$ rm -r basic
 [username@server domain.ru]$ rm yii-basic-app-X.X.XX.tgz

Создайте базу данных в разделе «Базы данных» Панели управления и укажите данные для подключения к ней в файле ~/domains/domain.ru/config/db.php: [username@server domain.ru]$ vim config/db.php
'dsn' => 'mysql:host=localhost;dbname=username_db',
'username' => 'username_dbname',
'password' => 'password', 
Здесь username_db — название базы данных, username_dbname — имя пользователя базы данных, password — пароль. Для сохранения изменений и выхода из vim нажмите Esc и выполните команду :wq

Yii2 basic проверяет cookie, чтобы их было невозможно подделать. Укажите произвольный набор символов в качестве значения параметра cookieValidationKey в файле ~/domains/domain.ru/config/web.php:13 Если его не задать, при запуске проекта возникнет ошибка:

[username@server domain.ru]$ vim config/web.php 'cookieValidationKey' => 'proisvolnaya_frasa', 

По умолчанию корневым каталогом сайта является папка ~/domains/domain.ru/public_html. Для работы фреймворка необходимо, чтобы сайт открывался из директории ~/domains/domain.ru/web. Это можно реализовать с помощью символической ссылки. Создайте ее командой:

[username@domain.ru ~]$ ln -s /home/username/domains/domain.ru/web /home/username/domains/domain.ru/public_html 

Фреймворк установлен! При обращению к домену отобразится заглушка:

Процесс установки расширенной версии отличается от базовой. Рассмотрим его далее.

Установка Yii2 advanced

Yii2 advanced мы рекомендуем устанавливать с помощью Composer.

Composer — менеджер пакетов. С его помощью можно сразу установить и сам фреймворк, и необходимые для его работы библиотеки.

Подключитесь к серверу по SSH. Перейдите в каталог ~/domains: [username@server ~]$ cd domains/

И выполните команды: [username@server domains]$ curl -sS https://getcomposer.org/installer | php
 [username@server domains]$ php composer.phar global require "fxp/composer-asset-plugin:^X.X.X"
где X.X.X — актуальная версия пакета composer asset plugin, узнать которую можно в репозитории Packagist.

Composer установлен. Скачайте дистрибутив Yii2 advanced: [username@server domains]$ php composer.phar create-project --prefer-dist yiisoft/yii2-app-advanced domain.ru/ Замените domain.ru на имя вашего сайта.

Перейдите в каталог с именем домена:

[username@server domains]$ cd domain.ru/

Чтобы подготовить фреймворк к запуску, выполните команду:

[username@server domain.ru]$ php init --env=Development --overwrite=All

Создайте базу данных в разделе «Базы данных» Панели управления. В файле ~/domains/domain.ru/common/config/main-local.php укажите данные для подключения к БД: [username@server domain.ru]$ vim common/config/main-local.php
'dsn' => 'mysql:host=localhost;dbname=username_db',
'username' => 'username_dbname',
'password' => 'password',
Здесь username_db — название базы данных, username_dbname — имя пользователя базы данных, password — пароль.

Чтобы в базе данных были созданы необходимые для работы фреймворка таблицы, выполните миграцию:

[username@server domain.ru]$ php yii migrate

По умолчанию корневым каталогом сайта является папка public_html. Перенесите в нее файлы из каталога ~/domains/domain.ru/frontend/web:

[username@server domain.ru]$ mv frontend/web/{.,*}* public_html/

Перейдите в каталог public_html:

[username@server domain.ru]$ cd public_html/

Чтобы приложение для разработки административной части открывалось по ссылке http://domain.ru/admin, создайте символическую ссылку:

[username@server public_html]$ ln -s ../backend/web/ admin

Замените содержимое файла index.php.

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../common/config/bootstrap.php');
require(__DIR__ . '/../frontend/config/bootstrap.php');

$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../common/config/main.php'),
require(__DIR__ . '/../common/config/main-local.php'),
require(__DIR__ . '/../frontend/config/main.php'),
require(__DIR__ . '/../frontend/config/main-local.php')
);
 (new yii\web\Application($config))->run();

Если все настроено верно, при обращении к сайту вы увидите страницу:

А по ссылке http://domain.ru/admin — интерфейс для входа в административную панель:

Если в процессе установки Yii2 у вас возникли сложности, обратитесь в нашу службу поддержки.

Была ли эта инструкция полезной?