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

Так как yii2 использует php 5.4 то в данной заметке я покажу как установить и настроить приложение на oepnServer.

Установка

Скачайте и установите сам OpenServer.
После запуска перейдите в настройки и выберите php 5.4
open server php 5.4

Через меню «папка с сайтами» переходим в каталог с сайтами.
Создаем каталог test, а в нем index.html с тестовой надписью.
Перезапускаем OpenServer (в меню «мои сайты» появится новый пункт).
Проверяем что http://test открывается тестовая надпись.

Создаем в папке сайтом батник create.cmd следующего содержания.

set php=C:\OpenServer\modules\php\PHP-5.4
set PATH=%PATH%;%php%
php %php%\composer.phar create-project yiisoft/yii2-app-advanced advanced 2.0.6
cd ./advanced
init.bat
pause

Разберем по строкам:

  1. указали где находится php
  2. добавили путь до php в переменную PATH
  3. Запуск создания приложения yii
  4. Перешли в папку с созданнм приложением
  5. Иницилизиурем приложения, указав что оно для разработки

Теперь посмотрим что надо приложению для работы
http://test/advanced/requirements.php

Если каких то модулей не хватает переходим в меню OpenServer:
«Дополнительно» -> «Конфигурация» -> «php 5.4»
open server set php.ini

Настройка путей

Можно перенести файлы из каталога «advanced» на уровень ниже.
И тогда бэкэнд будет доступен по ссылке http://test/backend/web/, а фронт http://test/frontend/web/
Для того что бы избавится в пути от «frontend/web» следуем совету из форума

Создаем .htaccess файла в корне

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

# if request begins with /admin remove admin and ad /backend/web/
RewriteCond %{REQUEST_URI} ^/admin
RewriteRule ^admin/?(.*) /backend/web/$1

# other requests add /frontend/web/$1
RewriteCond %{REQUEST_URI} !^/(frontend/web|backend/web|admin)
RewriteRule (.*) /frontend/web/$1

# if frontend request 
RewriteCond %{REQUEST_URI} ^/frontend/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /frontend/web/index.php 

# if backend request
RewriteCond %{REQUEST_URI} ^/backend/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /backend/web/index.php 

Теперь открыть «frontend/config/main.php»
и добавить компонент

...
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                '' => 'site/index',
                ''=>'site/',
            ]
        ],
        'assetManager' => [
            'basePath' => '@webroot/assets',
            'baseUrl' => '@web/assets'
        ],
        'request' => [
            'baseUrl' => ''
        ]
...

открыть «backend/config/main.php» и добавить компонент

...
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                '' => 'site/index',
                ''=>'site/',
            ],
        ],
        'assetManager' => [
            'basePath' => '@webroot/assets',
            'baseUrl' => '@web/assets'
        ],

        'request' => [
            'baseUrl' => '/admin'
        ]
...

Прочие настройки

Установим русский язык как основной. Откроем файл «common/configmain.php»

return [
    'language' => 'ru',
...

Отладка

Файл d:\OpenServer\modules\php\PHP-*.*\php.ini

[Xdebug]
zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_xdebug.dll"
xdebug.idekey = "PHPSTORM"
xdebug.profiler_output_dir="%sprogdir%/userdata/temp/xdebug/"
xdebug.profiler_output_name = "cachegrind.out.%H%R"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
xdebug.remote_port = 9000
xdebug.trace_output_dir = "%sprogdir%/userdata/temp/xdebug/"
...

Linux
При установке под Linux может потребовать токен от GitHub
Генерим по ссылке.
https://github.com/settings/tokens/new?scopes=repo&description=Composer

Установка Yii2 на OpenServer: 2 комментария

  1. Андрей

    При выполнении
    php %php%\composer.phar create-project yiisoft/yii2-app-advanced advanced 2.0.6
    требуется токен от GITHUB

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

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