Для запуска платформы необходимо установить инструмент для управления зависимостями в PHP - Composer. При использовании терминала ConEmu, который включен в локальный веб-сервер OpenServer под Windows, это шаг можно пропустить.

composer -V. Ожидаемый ответ: Composer version x.x.xsudo mv composer.phar /usr/local/bin/composer;php composer.phar update;composer update.common/config/main-local.php. Данный файл создается на предыдущем шаге в момент инициализации приложения и уже содержит некоторые локальные настройки в зависимости от выбранного окружения. Доступы к базе данных необходимо указать в следующем блоке:
'components' => [...'db' => ['class' => 'yii\db\Connection','dsn' => 'mysql:host=localhost;dbname=databaseName','username' => 'username','password' => 'password','charset' => 'utf8',]...]
php yii migrate из корня проекта.Все вышеизложенное можно описать более кратко:
composer update;php init;common/config/main-local.php;php yii migrate.Следующим шагом установки является настройка Доменов для приложения.
После установки платформы следует выполнить консольную команду php requirements.php. После выполнения команды будет отображен отчет о проверке установленных расширений.
Данный check релизован на основе решения Requirements.
Для того, чтобы гарантировать верную настройку сервера, необходимо удостовериться не только в конфигурациях PHP CLI, но и в конфигурациях PHP вызываемого Apache, так как их php.ini могут отличаться друг от друга.
Для проверки настройки сервера на PHP CLI необходимо запустить из корня проекта следующую консольную команду: php requirements.php.
Для проверки настройки сервера на уровне Apache нужно на время перенести файл requirements.php в папку frontend/web и backend/web. А также подкорректировать путь до директории Yii2 фреймворка в файле index.php:
// you may need to adjust this path to the correct Yii framework path$frameworkPath = dirname(__FILE__) . '/../../vendor/yiisoft/yii2';
Таким образом файл будет доступен для Apache. В зависимости от доменных настроек платформы файл будет доступен по следующим ссылкам:
Обращаем ваше внимание, что в целях безопасности после проверки необходимо удалить файл requirements.php из открытых папок frontend/web и backend/web.
Приложение и его панель управления (Личный кабинет) в целях безопасности настраиваются на разных поддоменах. Обычно Панель управления размещается на субдомене admin.site.com, а сайт на основном домене site.com. Также не стоит забывать об отдельном поддомене для “статики” (загрузки файлов) http://static.site.com.
Домены должны быть настроены следующим образом:
| Домен | Описание | Папка |
|---|---|---|
| site.com | Frontend. Внешний сайт. “Морда” | /frontend/web |
| admin.site.com | Backend. Панель управления | /backend/web |
| static.site.com | Static. Папка для загружаемых файлов с приложений. | /static |
Для правильной генерации ссылок в системе необходимо задать домены в конфигурации системы common/config/params.php:
return ['adminDomain' => 'admin.cmstaskon.loc','publicDomain' => 'cmstaskon.loc','staticDomain' => 'static.cmstaskon.loc'];
Для локальной настройки рекомендуется вносить изменения в файл common/config/params-local.php, так как он находится в .gitignore и изменения не попадут в систему контроля версий Git.
Расшифровка ключей конфигурации:
adminDomain - панель управления (backend);
publicDomain - внешний сайт (frontend);
staticDomain - загружаемые файлы системы (static).
В ходе разработки в некоторых случаях необходимо сгенерировать ссылку с одного приложения на другое, для таких целей в системе присутствуют алиасы (aliases):
@admin - панель управления (backend);
@public - внешний сайт (frontend);
@static - загружаемые файлы системы (static);
@staticPath - путь до папки для загружаемых файлов системы (static).
Пример генерации ссылки на backend из другого приложения:
<?= Html::a(Yii::t('app', 'sign_in'), '@admin/login', ['class' => 'nav-link']); ?>
В некоторых случаях необходимо развернуть проект на одном домене. Для начала необходимо настроить домен в корень проекта и произвести следующие изменения в файлах системы:
Заменить содержимое .htaccess в корне проекта на следующее:
AddDefaultCharset UTF-8Options +FollowSymLinksDirectoryIndex index.php index.htmlRewriteEngine onRewriteRule /\. - [L,F]# define the app environment variableRewriteCond %{REQUEST_URI} !^/((frontend|backend)/web|admin|static)RewriteRule ^ - [E=APP:frontend]RewriteCond %{REQUEST_URI} (?!^/backend/web)^/adminRewriteRule ^ - [E=APP:backend]RewriteCond %{REQUEST_URI} (?!^/static)^/staticRewriteRule ^ - [E=APP:static]# rewrite the URI of the frontend appRewriteCond %{ENV:APP} =frontendRewriteRule ^ frontend/web%{REQUEST_URI}# if a directory or a file exists, use the request directlyRewriteCond %{ENV:APP} =frontendRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d# otherwise forward the request to index.phpRewriteRule ^ frontend/web/index.php [L]# redirect to the URL without a trailing slash (uncomment if necessary)RewriteRule ^admin/$ /admin [L,R=301]# rewrite the URI of the backend appRewriteCond %{ENV:APP} =backendRewriteRule ^admin/?(.*)$ backend/web/$1# if a directory or a file exists, use the request directlyRewriteCond %{ENV:APP} =backendRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d# otherwise forward the request to index.phpRewriteRule ^ backend/web/index.php [L]# handle a directory trailing slash, redirect to the initial URI instead the rewritten oneRewriteCond %{REQUEST_FILENAME} -dRewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [L,R=301]# rewrite the URI of the static folderRewriteCond %{ENV:APP} =staticRewriteRule ^static/?(.*)$ static/$1# if a directory or a file exists, use the request directlyRewriteCond %{ENV:APP} =staticRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d# handle a directory trailing slash, redirect to the initial URI instead the rewritten oneRewriteCond %{REQUEST_FILENAME} -dRewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [L,R=301]
Путь admin можно заменить на необходимое.
common/config/params.php на следующие:
return ['adminDomain' => 'cmstaskon.loc/admin','publicDomain' => 'cmstaskon.loc','staticDomain' => 'cmstaskon.loc/static'];
frontend/config/main.php.
'request' => [//'csrfCookie' => [//'domain' => ".{$params['publicDomain']}"//],'csrfParam' => '_csrf']
'session' => ['class' => 'common\components\Session',//'cookieParams' => [//'domain' => ".{$params['publicDomain']}"//]]
'container' => ['definitions' => [//'yii\web\Cookie' => ['domain' => ".{$params['publicDomain']}"]],]
backend/config/main.php.'baseUrl' => '/admin' в секцию components.request и убрать csrfCookie.domain из данной секции.
'request' => ['baseUrl' => '/admin'//'csrfCookie' => [//'domain' => ".{$params['publicDomain']}"//],'csrfParam' => '_csrf']
'session' => ['class' => 'common\components\Session',//'cookieParams' => [//'domain' => ".{$params['publicDomain']}"//]]
'container' => ['definitions' => [//'yii\web\Cookie' => ['domain' => ".{$params['publicDomain']}"],'yii\data\Pagination' => ['pageSize' => 50]],]
common/modules/language/config/backend.php и common/modules/language/config/frontend.php.
'urlManager' => ['class' => 'h0rseduck\multilingual\components\UrlManager','languageCookieOptions' => [//'domain' => ".{$commonParams['publicDomain']}"],]
Для того, чтобы мы смогли Вам предоставить доступ расскажите немного о себе
Опишите в форме ниже задачу, которую требуется реализовать.