Меню Рубрики

Установка yii2 token hidden

Yii Framework 2. Как я устанавливал Yii2

Я достаточно давно работаю с Yii Framework и мне он очень нравиться. С момента выхода Yii2 я несколько раз (если быть точным, то 3-4 раза) хотел его попробовать, но постоянно сталкивался с проблемой установки (да, у меня не получалось его нормально установить), на этом все заканчивалось, отпадало всякое желание работать с ним дальше. Но сегодня я решил дойти до конца, чего бы мне это не стоило, а там видно будет.

Эта статья о том как я устанавливал Yii2, с какими ошибками сталкивался и как я их решал. Статья не является инструкцией по установки Yii2 (т.к. в ней описаны не только пошаговая установка, но и ошибки возникшие при выполнении этих шагов). Она может быть полезна тем кто столкнулся с ошибками похожими на мои или просто для общего развития. Забегу немного на перед, я все таки установил Yii2 без ошибок, но как я к этому пришел читайте ниже.

Внимание! Для работы Yii2 у Вас должна быть версия PHP 5.4 или выше (если у Вас версия PHP ниже чем 5.4, то установите необходимую версию, при этом учитывайте различия в синтаксисе языка в зависимости от версии).

Для установки Yii2 необходимо установить Composer (Как установить Composer можно посмотреть здесь: кодер.укр/записи/установка_composer_на_windows).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Проверяем, открываем проект по адресу http://yii2.ostest.local/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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Установка qt creator в raspberry

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

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

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

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

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

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

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

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

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

Доступ к сайту открыт по пути 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

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

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

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

Вот такое приключение 🙂 Продолжение следует.

Если у вас есть вопросы или предложения по улучшению кода описанного в статье пишите в комментариях.
Я всегда открыт к конструктивному диалогу

источник

Установка и настройка Yii2 на виртуальном хостинге

1. Установка Composer

Так как опыта настройки сервера и работы в консоле Linux/Unix у меня немного, то первая проблема появилась уже при установке Composer. На сервере установлены несколько версий PHP, и по-умолчанию команды консоли выполняет PHP версии 5.2.17. А Composer требует версию PHP 5.3.2 и выше. Решение было таким:

Настройки сервера не дают возможности сделать Composer выполняемым и запускать напрямую, поэтому запускаем его через интерпретатор PHP, при этом не забывая указывать версию PHP:

Первый шаг выполнен — Composer установлен.

2. Установка Yii2

Сначала всё по инструкции: устанавливаем плагин composer asset, который управляет зависимостями пакетов bower и npm.

Это необходимо сделать только 1 раз, в дальнейшем можно устанавливать Yii2 несколько раз с помощью команд описанных ниже.
Теперь выбираем какую версию шаблона Yii2 ставить: Basic или Advanced. Basic — простое приложение, а в Advanced реализовано разделение на публичную и административную часть (frontend и backend) и создана готовая модель (и таблица БД) user.

2.1. Установка Yii2 Basic

Сначала рассмотрим установку Basic, т.к. она проще, выполняется установка с помощью команды:

Читайте также:  Установка забора из профлиста отзывы

Где mysite — каталог в который необходимо установить Yii2, он должен быть пустым (если при создании каталога для сайта на сервере был автоматически создан подкаталог public_html , его необходимо удалить). Composer может запросить логин-пароль от Github (из-за ограничения на количество запросов у Гитхаба).

Небольшое лирическое отступление про структуру каталогов на сервере и во фреймворке. Рассматриваемый виртуальный хостинг настроен так, что файлы сайтов располагаются в каталоге mysite/public_html . Файлы в каталоге public_html доступны из веба.

Структура шаблона Yii2 Basic включает несколько файлов и каталогов, которые рекомендуется сделать недоступными из веба, чтобы «защитить от нежелательного доступа код и данные», а также каталог basic/web который как раз и предназначен быть корневой директорией веб сервера. Для необходимой структуры создадим «символьную» ссылку:

Теперь содержимое каталога basic/web — это наш сайт, а другие файлы фреймворка недоступны из сети.
Yii2 Basic установлен, можно открыть сайт в браузере.

2.1.1. Настройка Yii2 Basic

Откройте файл config/db.php и измените параметры на верные для вашей базы данных. После ‘charset’ => ‘utf8’, можно указать префикс таблиц так: ‘tablePrefix’ => ‘myprefix_’ (если несколько сайтов используют одну базу данных).

Далее настраиваем ссылки, по-умолчанию маршрутизация имеет вид /index.php?r=site%2Fabout , переведём ее в такой вид /site/about . Для этого создадим файл web/.htaccess с содержимым как рекомендуют в оф. гайде:

Теперь веб-сервер знает, что запросы необходимо направлять на index.php, и указывать index.php в URL нет необходимости. Далее в файле config/web.php добавим (или раскомментируем) в $config = [‘components’] после ‘db’ => require(__DIR__ . ‘/db.php’), следующие строки

enablePrettyUrl — генерировать красивые ссылки, showScriptName — не писать имя скрипта index.php в ссылке. Теперь можно зайти на наш сайт и посмотреть, что он уже использует красивые ссылки типа /site/about .
Отлично, с Yii2 Basic разобрались, теперь переходим к Advanced.

2.2. Установка Yii2 Advanced

Начало установки аналогично Basic:

Yii2 установлен, в его каталоге mysite появились файлы и каталоги Yii2 в том числе frontend для публичной части сайта и backend для админки. Однако в frontend/web нет файла index.php, поэтому далее выполняем команду init для инициализации шаблона и создаем символьную ссылку для frontend:

Теперь фронтенд доступен по основному адресу сайта. Далее настраиваем бекенд:

Теперь бекенд доступен по адресу /admin .
Настраиваем красивые адреса во фронтенде:

  1. Создаем в /frontend/web такой же .htaccess как и в шаблоне Basic
  2. В конфиге /frontend/config/main.php прописываем то же самое

Аналогичные операции проводим для бекенда. Попутно замечаем что файла db.php в каталоге config нет.
Параметры для доступа к базе данных в Advanced указываются в common/config/main-local.php , там прописываем тоже что и в db.php в Basic. После чего применяем миграцию:

В БД создаются таблицы migration и user.

Ура! Yii2 установлен, настроен и готов к работе.

источник

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

Adblock
detector