Установка yii2 через composer

Перед тем как приступить к установке Yii2, необходимо на github создать токен, иначе при установке Composer будет спрашивать этот токен и все на этом закончиться.

Для этого заходим на сайт github.com (я надеюсь Вы там зарегистрированы, если нет, то зарегистрируйтесь).

Github, авторизация

Переходим по ссылке https://github.com/settings/tokens для создания токена.

Жмем кнопку «Generate new token»:

Github, создаем токен

Вводим название для нашего токена в поле «Token description» и жмем «Generate token»:

Github, generate token

Скопируйте токен и сохраните его в безопасное место, он может еще пригодится:

Github, сохраняем токен

Открываем консоль и вводим команду:

  1. composer config g githuboauth.github.com <oauthtoken>

где <oauthtoken> — Ваш токен

Добавляем токен github в Composer

Жмем Enter. Все токен добавлен, переходим к установке Yii2.

Переходим в папку куда необходимо установить yii2. Вводим команду для устанавливает плагин composer asset plugin (для управления зависимостями пакетов bower и npm через Composer, команду вводим один раз):

  1. composer global require «fxp/composer-asset-plugin:~1.0.3»

Затем команду:

  1. composer createproject preferdist yiisoft/yii2appbasic basic

Устанавливаем Yii2 basic через Composer

И тут моя первая ошибка, я не обратил внимания на проблему версии php. А заметил я это только во время написания статьи, ну да ладно, решил уже написать.

Установили. Теперь можем проверить, открываем браузер и вводи адрес проекта.

Если Вы увидели сайт, то все ок.

У меня было такая ошибка:

Parse error: syntax error, unexpected T_OBJECT_OPERATOR in Z:\home\yii2.test.local\www\basic\web\index.php on line 12

Ошибка, Parse error: syntax error, unexpected T_OBJECT_OPERATOR

Что бы понять, чего не хватает Yii2 нужно перейти по адресу http://yii2.test.local/basic/requirements.php.

По адресу http://yii2.test.local/basic/requirements.php была такая ошибка:

Error

The path to yii framework seems to be incorrect.

You need to install Yii framework via composer or adjust the framework path in file requirements.php.

Please refer to the README on how to install Yii.

Warning: require_once(Z:\home\yii2.test.local\www\basic/vendor/yiisoft/yii2/requirements/YiiRequirementChecker.php) [function.require-once]: failed to open stream: No such file or directory in Z:\home\yii2.test.local\www\basic\requirements.php on line 23

Fatal error: require_once() [function.require]: Failed opening required ‘Z:\home\yii2.test.local\www\basic/vendor/yiisoft/yii2/requirements/YiiRequirementChecker.php’ (include_path=’.;D:\web\usr\local\php5\pear’) in Z:\home\yii2.test.local\www\basic\requirements.php on line 23

Ошибка, The path to yii framework seems to be incorrect

Решил я эту проблему следующим образом. Заходим на сайт http://www.yiiframework.com/download/. И качаем архив Yii 2 with basic application template. Из архива я скопировал папку vendor в папку basic/web/. Проверяю, все равно ошибка, но по адресу http://yii2.test.local/basic/requirements.php вижу, что проблема в версии php:

Yii2, /basic/requirements.php

Из скриншота видно, что необходимо установить PHP 5.4 или выше. Так как я пользуюсь (пользовался) denwer и обнаружил, что там PHP 5.4 нет. Решил установить OpenServer (да я не заморачиваюсь с чистой установкой PHP, Apache, MySql)

Скачать OpenServer можно бесплатно с официального сайта http://open-server.ru/. Качаем и устанавливаем.

Установили. Запускаем, в настройках указываем PHP 5.6 и Apache 2.4 (иначе PHP 5.6 не будет работать). Для этого в трее правой кнопкой мыши кликаем по значку OpenServer и выбираем пункт, настройки:

Настройка OpenServer

И указываем необходимые настройки модулей:

Настройка модулей в OpenServer

Теперь переходим в папку OpenServer/domains и создаем там папку для проекта (у меня это yii2.ostest.local), копируем туда папку basic. Запускаем OpenServer.

Проверяем, открываем проект по адресу http://yii2.ostest.local/basic/requirements.php, все хорошо:

Yii2, /basic/requirements.php - успех

Открываем проект по адресу http://yii2.ostest.local/basic/web/ и…

Опять ошибка, да что ж такое:

Invalid Configuration – yii\base\InvalidConfigException

yii\web\Request::cookieValidationKey must be configured with a secret key.

Yii2, ошибка Invalid Configuration – yii\base\InvalidConfigException

Тут проблема в том, что нужно задать секретный ключ (cookieValidationKey), он нужен для валидации cookie. По идеи он должен был заполниться автоматически при установки с помощью композера, но что-то пошло не так. Способов решения этой ошибки 2:

Первый способ, задать ключ руками:

  1. //…
  2.  
  3. ‘cookieValidationKey’ => ‘mySuperSecretKey010’,
  4.  
  5. //…

Второй способ, отключить его:

  1. //…
  2.  
  3. ‘enableCookieValidation’ => false,
  4. ‘enableCsrfValidation’ => false,
  5. ‘cookieValidationKey’ => »,
  6.  
  7. //…

Запускаем опять.

Заработало

Вот как выглядит стартовая страница в Yii2 🙂

стартовая страница в Yii2 basic

Проверяем, переходим на внутренние страницы, все ок.

После этого у появилась идея, может проблема с установкой была из-за того, что у меня изначально версия PHP была 5.3.

А что если...

Решил я это дело проверить. У OpenServer есть своя консоль, т.е. php в переменные среды добавлять не надо, хорошо, запускаем эту консоль.

Для запуска встроенной консоли необходимо кликнуть правой кнопкой мыши по иконке OpenServer в трее, выбрать пункт меню «Дополнительно», «Консоль» [Меню → Дополнительно → Консоль].

OpenServer открываем консоль

Переходим в папку с проектом. Я так понимаю у OpenServer свой Composer, поэтому выполним все шаги сначала. Добавим токен командой:

  1. composer config g githuboauth.github.com <oauthtoken>

где <oauthtoken> — Ваш токен, который мы сгенерировали вначале статьи.

Добавляем токен для Composer

Выполним установку плагин composer asset plugin:

  1. composer global require «fxp/composer-asset-plugin:~1.0.3»

Устанавливаем Yii2 basic командой:

  1. composer createproject preferdist yiisoft/yii2appbasic basic

Ждем пока установиться

Установка Yii2 basic в OpenServer

Готово. Проверяем, исходя из ошибок, которые у меня были ранее, я сначала проверю создана ли папка vendor. Ага есть такая папка. Теперь проверю был ли сгенерирован ключ cookieValidationKey, открываю файл config/web.php. О чудо и он есть 'cookieValidationKey' => 'sddsEPwb7KjtUp-3K8Q4SkuKucLvRw2r'.

Ну теперь запускаем браузер и открываем проект. Все работает)

Все работает

Отлично. Все таки версия PHP при установки повлияла, а может еще что-то. Т.к. у OpenServer свой php, composer и прочее.

Теперь установим версию advanced. Но для начала надо разобраться в чем же разница между basic и advanced.

Если по простому, то basic — это одно приложение, advanced — это 3 приложения (frontend, backend, console) и папка common, для общих классов.

Вроде разобрались, перейдем к установке, исходя из опыта описанного выше. Создаем папку для проекта (у меня это yii2.test3.local), перезапускаем OpenServer, переходим в папку проекта(в консоле) и вводим команду установки Yii2 advanced в консоль:

  1. composer createproject preferdist yiisoft/yii2appadvanced yiiapplication

Ждем пока установиться. Далее необходимо выполнить инициализацию проекта, для этого выполняем команду:

  1. php yiiapplication/init

Выбираем Development (0), вводим yes

Yii2 инициализация проекта advanced

и жмем Enter

Yii2 успешная инициализация проекта advanced

Далее создаем БД в phpMyAdmin. И настраиваем соединение с ней. Для этого необходимо открыть файл yii-application/common/config/main-local.php. И ввести необходимые параметры.

Теперь необходимо применить миграцию(для переноса стандартных таблиц migration и user в нашу БД), в консоле переходим в папку yii-application и выполняем команду:

  1. yii migrate

Yii2, применение миграции

Все, проект готов к работает

Доступ к сайту открыт по пути http://yii2.test3.local/yii-application/frontend/web/, а админка по пути http://yii2.test3.local/yii-application/backend/web/. Но это не самый лучший способ работы.

Мы можем добавить алиасы для сайта и админки. В OpenServer это делаеться так: открываем «Настройки», вкладка «Домены», «Управление доменами» — выбрать «Ручное + Автопоиск» и добавляем 2 алиаса.

Имя домена Папка домена
yii2.test3.local \yii2.test3.local\yii-application\frontend\web
admin.yii2.test3.local \yii2.test3.local\yii-application\backend\web

OpenServer, управление доменами

Добавили и жмем кнопку «Сохранить», после чего сервер будет перезагружен.

Все готово, открываем браузер и вводим в адресную строку http://yii2.test3.local/.

Yii2, стартовая страница проекта advanced

Вот и наш сайт.

Теперь откроем админку, вводим http://admin.yii2.test3.local/

Yii2, стартовая страница админки проекта advanced

И видим админку

Автор: viduus

Являюсь администратором этого сайта.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *