Внимание! Инструкция была написана под ОС Ubuntu.
Для начала нам необходимо обновить Composer, открываем консоль и выполняем команду:
sudo composer self-update
Внимание! Для установки, при помощи composer должен быть аккаунт на github.
Подготовка github
Теперь нам необходимо создать токен на github. Для этого необходимо:
- Авторизоваться на github.com
- Для создания токена переходим по ссылке https://github.com/settings/tokens
- Нажимаем кнопку (в правом верхнем углу ) “Generate new token”
- Дальше, я в поле Description написал Composer и создаем токен
- После создания, на странице будет показан ключ наподобие c177393v2x43f792327e6e72e95b9d74fdj139b6
- Выполняем команду в консоле:
composer config -g github-oauth.github.com composer
C github закончили. Зададим права для папки с Composer:
sudo chmod 777 ~/.composer
Далее вводим команду для устанавливает плагин composer asset plugin (для управления зависимостями пакетов bower и npm через Composer, команду вводим один раз):
composer global require "fxp/composer-asset-plugin:~1.0.0"
Установка yii2
Далее переходим в каталог проекта и вводим команду:
composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application
Где yii-application - имя каталога, в который загрузится yii2.
При загрузке Yii2, если появиться запрос на ввод токена, то введите тот который мы получили ранее (у меня это c177393v2x43f792327e6e72e95b9d74fdj139b6)
Смотрим, как устанавливаются пакеты. Может быть такое, что версия какого-то пакета не найдена (например, jquery) жмем ENTER пока не будет найдет нужный.
Инициализация проекта
По окончанию установки нам необходимо выполнить инициализацию проекта, для этого в консоль вводим команду:
php init
Init запросит какую версию необходимо установить, для разработки (Development) или сразу готовую к запуску на сайте (Production). Выбираем первый вариант.
Создание базы данных
Теперь нам необходимо создать БД. Создаем БД. Указываем новую базу данных в основном локальном конфиге common/config/main-local.php
. После создания проекта (выполнении команды init) создается база yii2advanced. Переносим из этой базы в свою таблицы migration и user. Это делается при помощи команды в консоле:
php yii migrate
Конфигурация проекта
Открываем файл advanced/frontend/config/main.php
:
<?php return [ 'homeUrl' => '/', 'components' => [ 'request' => [ 'baseUrl' => '', ], 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, ], ], ];
Следующий файл advanced/backend/config/main.php
:
<?php return [ 'homeUrl' => '/admin', 'components' => [ 'request' => [ 'baseUrl' => '/admin', ], 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, ], ], ];
Конфигурация для Apache
Не проверял. Я работаю с nginx. В файле .htaccess
:
Options FollowSymLinks AddDefaultCharset utf-8 <IfModule mod_rewrite.c> RewriteEngine On # the main rewrite rule for the frontend application RewriteCond %{REQUEST_URI} !^/(backend/web|admin) RewriteRule !^frontend/web /frontend/web%{REQUEST_URI} [L] # redirect to the page without a trailing slash (uncomment if necessary) #RewriteCond %{REQUEST_URI} ^/admin/$ #RewriteRule ^(admin)/ /$1 [L,R=301] # the main rewrite rule for the backend application RewriteCond %{REQUEST_URI} ^/admin RewriteRule ^admin(.*) /backend/web/$1 [L] # if a directory or a file of the frontend application exists, use the request directly RewriteCond %{REQUEST_URI} ^/frontend/web RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # otherwise forward the request to index.php RewriteRule . /frontend/web/index.php [L] # if a directory or a file of the backend application exists, use the request directly RewriteCond %{REQUEST_URI} ^/backend/web RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # otherwise forward the request to index.php RewriteRule . /backend/web/index.php [L] RewriteCond %{REQUEST_URI} \.(htaccess|htpasswd|svn|git) RewriteRule \.(htaccess|htpasswd|svn|git) - [F] </IfModule>
Конфигурация для Nginx
server { charset utf-8; client_max_body_size 200M; listen 80; ## listen for ipv4 #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 server_name mysite; root /path/to/host/www; access_log /path/to/host/logs/advanced.access.log; error_log /path/to/host/logs/advanced.error.log ; location / { root /path/to/host/www/frontend/web; try_files $uri /frontend/web/index.php?$args; # avoiding processing of calls to non-existing static files by Yii location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { access_log off; expires 360d; try_files $uri =404; } } location /admin { alias /path/to/host/www/backend/web; rewrite ^(/admin)/$ $1 permanent; try_files $uri /backend/web/index.php?$args; } # avoiding processing of calls to non-existing static files by Yii location ~ ^/admin/(.+\.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar))$ { access_log off; expires 360d; rewrite ^/admin/(.+)$ /backend/web/$1 break; rewrite ^/admin/(.+)/(.+)$ /backend/web/$1/$2 break; try_files $uri =404; } location ~ \.php$ { include fastcgi_params; # check your /etc/php5/fpm/pool.d/www.conf to see if PHP-FPM is listening on a socket or port # fastcgi_pass unix:/var/run/php5-fpm.sock; ## listen for socket fastcgi_pass 127.0.0.1:9000; ## listen for port fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; try_files $uri =404; } #error_page 404 /404.html; location = /requirements.php { deny all; } location ~ \.(ht|svn|git) { deny all; } }
Комментарии
Название статьи проверьте. Composer !!!
ОтветитьСпасибо, исправил
Ответить