Lab / YII

Запускаем своё первое приложение с YII на обычном хостинге

Сегодня поговорим о том, как начать разработку на фреймворке YII максимально просто и безболезнено. Мы сможем запустить наше первое приложение на обычном шаред хостинге например Beget Итак для начала скачиваем YII Framework 2 и распаковываем его в корневую директорию вашего сайта. Затем заходим в web/web.php и в строке 'cookieValidationKey' => '' вводим любое значение, например 'cookieValidationKey' => 'sfg8t0sf7g' Проверяем вашсайт.com/web вы должны увидеть вот такой экран приветствия: Запускаем своё первое приложение на YII на обычном хостинге Давайте теперь сделаем доступным его на основном домене вашсайт.com вместо вашсайт.com/web Для этого переносим файл index.php из папки web в корень вашего сайта и меняем в нём пути. Примечание: конечно правильнее было бы перенастроить веб сервер на папку web или сделать симлинк на оную. Было:
// comment out the following two lines when deployed to production
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');

$config = require(__DIR__ . '/../config/web.php');

(new yii\web\Application($config))->run();
Стало:
// comment out the following two lines when deployed to production
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');

$config = require(__DIR__ . '/config/web.php');

(new yii\web\Application($config))->run();
Тоесть мы просто убрали /.../ в трёх строчках, вот и вся магия, приложение стало доступно на основном домене, давайте ещё пути стилей в файле assets/AppAsset.php это 21 строка 'css/site.css' меняем на 'web/css/site.css' Мои поздравления! Вы только что настроили среду для разработки великолепных веб приложений!

Включение ЧПУ в Yii Framework

Теперь давайте разберёмся как настроить красивые адреса в приложении построенном на Yii. Что бы включить ЧПУ для начала создадим файл .htaccess в корневой папке приложения со следующим содержимым:
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on


# if file or directory dosn't exists go to /web/index.php 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php
Теперь в файл config/web.php добавляем такую конфигурацию: Я вставил её между 'errorHandler' и 'mailer'
 'urlManager' => [
 'enablePrettyUrl' => true,
 'showScriptName' => false,
 'enableStrictParsing' => false,
 'rules' => [
 '/' => '/view',
 '/' => '/site/index', // меняем главную страницу на корень домена
 '/about' => '/site/about', // так же можно заменить и /site/about на /about
 '//' => '/',
 ],
 ],
Теперь на вашем сайте будут доступны красивые понятные URL. Подробности но настройке роутинга в Yii можно найти в официальном репозитории github.com/yiisoft/yii2/blob/master/docs/guide/runtime-routing.md