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