Yii2 frontend и backend на одном домене

Используем в проектах шаблон Advanced и следующую структуру папок. Работает на шаред-хостингах

www/admin
www/assets
www/css
www/framework
    www/framework/backend
    www/framework/common
    www/framework/frontend
    www/framework/vendor
    ...
www/js
www/index.php
...

Содержимое www/index.php:

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

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

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

$application = new yii\web\Application($config);
$application->run();

Содержимое www/admin/index.php:

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

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

$config = yii\helpers\ArrayHelper::merge(
    require(__DIR__ . '/../framework/common/config/main.php'),
    require(__DIR__ . '/../framework/common/config/main-local.php'),
    require(__DIR__ . '/../framework/backend/config/main.php'),
    require(__DIR__ . '/../framework/backend/config/main-local.php')
);

$application = new yii\web\Application($config);
$application->run();

Почти как из коробки, только изменены пути

Еще один способ

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

В командной строке линукса пропишите:
$ ln -s путь_от_корня/backend/web путь_от_корня/frontend/web/admin

В Windows:
$ mklink /J папка_проекта\frontend\web\admin папка_проекта\backend\web

информация от сюда:
http://stackoverflow.com/questions/26732480/yii2-advanced-template-backend-and-frontend-on-same-domain

Запись опубликована автором в рубрике yii2.

Добавить комментарий