Запускаем своё первое приложение с 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