Yii2 установка advanced
Установка Yii2 advanced с настройкой ЧПУ и доступом к backend
-
Ставим composer:
$ curl -sS https://getcomposer.org/installer | php
-
Далее с флагом "global" ставим плагин, который позволит работать с пакетами bower и npm через Composer:
$ php composer.phar global require fxp/composer-asset-plugin:"*"
- это дейставие пропишет в файл ~/.composer/composer.json зависимость "fxp/composer-asset-plugin"
Данный плагин позволит работать с пакетами bower и npm через Composer т.е. устанавливать js пакеты из репозиториев bower и npm напрямую из композера используя синтаксис {asset-type}-asset/:
$ php composer.phar require "npm-asset/bootstrap": "*"
или
$ php composer.phar require "bower-asset/bootstrap": "*"
Подробности читать здесь: composer-asset-plugin basic-usage
-
Устанавливаем и разворачиваем собственно сам Yii2 в папку "advanced"
$ php composer.phar --prefer-dist create-project yiisoft/yii2-app-advanced advanced
-
Далее выполняем инициализацию:
$ php init Yii Application Initialization Tool v1.0 Which environment do you want the application to be initialized in? [0] Development [1] Production Your choice [0-1, or "q" to quit] ...
-
- вводим 0 или 1 в зависимости от желаемого типа окружения. Это создаст файлы:
- frontend/web/index.php
- frontend/web/index-test.php
- backend/web/index.php
- backend/web/index-test.php
-
Прописываем данные для работы с БД в файле: advanced/common/config/main.php
-
Далее выполняем миграцию:
$ php yii migrate Yii Migration Tool (based on Yii v2.0.9-dev) Creating migration history table "migration"...Done. Total 1 new migration to be applied: m130524_201442_init Apply the above migration? (yes|no) [no]: yes
Это создаст служебную таблицу migration и таблицу users в БД
Как сделать что бы:
http://example.com/ - frontend
http://example.com/backend/ - backend
-
создать симлинк:
$ cd /path/to/project/frontend/web $ ln -s ../../backend/web backend
-
В файле виртуального хоста:
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot /path/to/project/frontend/web # ! Важно ! <Directory /path/to/project> Options -Indexes +FollowSymLinks # ! Важно ! AllowOverride All Require all granted </Directory> ErrorLog /path/to/project/error.log CustomLog /path/to/project/access.log combined </VirtualHost>
-
Далее в .htaccess в директории, где развернут Yii
<IfModule mod_rewrite.c> IndexIgnore */* RewriteEngine on # if a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # otherwise forward it to index.php RewriteRule .* frontend/web/index.php?r=$0 </IfModule>
-
Затем ЧПУ ссылки:
// В файле frontend/config/main.php раскомментируем: ... , 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ], ], ...