Yii2 framework backup
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

6.5 KiB

Окружение виртуального хостинга

Зачастую окружение виртуальных хостингов весьма ограничено как в настройках конфигурации, так и в настройках структуры директорий. В большинстве случаев, однако, возможно запустить Yii2 на виртуальном хостинге, внеся некоторые корректировки.

Установка приложения Basic.

Поскольку на виртуальном хостинге обычно только один webroot, то лучше использовать шаблонное приложение Basic. Прочитайте раздел Установка Yii и локально установите приложение. После того как оно начнет работать, можно внести необходимые корректировки, которые помогут разместить Basic на виртуальном хостинге.

Переименование webroot

Подключитесь к вашему виртуальному хостингу, используя FTP или другой способ. Скорее всего вы увидите следующее:

config
logs
www

В приведенном выше описании www - это webroot директория веб-сервера. Она может называться по-другому. Возможные названия: www, htdocs или public_html.

В Basic webroot называется web. Перед загрузкой своего приложения на виртуальный хостинг, переименуйте локальный webroot на название webroot виртуального хостинга. Например, web в www или public_html, в зависимости от наименования webroot вашего хостинга.

Корневая директория FTP доступна для записи

Если вы можете записать в корневую директорию, где располагаются config, logs и www, то загрузите сюда же assets, commands и остальные директории, так же, как и у вас, локально.

Добавим настройки для веб-сервера

В случае, если ваш сервер Apache, добавьте в директорию web или аналогичную, где располагается index.php, файл .htaccess со следующим содержимым:

Options +FollowSymLinks
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 . index.php

В случае использования nginx не требуется каких-либо дополнительных настроек.

Проверка требований

Для того чтобы запустить Yii, ваш веб-сервер должен соответствовать его требованиям. Минимальное требование к PHP - это его версия 5.4. Для того чтобы проверить требования, скопируйте requirements.php из корневого каталога в каталог webroot и запустите его с помощью браузера, используя url http://example.com/requirements.php. Не забудьте после проверки требований удалить файл requirements.php.

Установка шаблона приложения Advanced

Установка шаблона Advanced немного сложнее, чем установка Basic, из-за того, что в Advanced имеются две директории webroot, работа с которыми на виртуальном хостинге не поддерживается. По этой причине нам потребуется внести изменения в структуру директорий.

Перемещение входных скриптов в одну директорию webroot

Для начала нам необходима директория webroot. Создайте новую директорию и назовите её так же, как на виртуальном хостинге, например, www или public_html, как описывалось выше в разделе Переименование webroot. Затем создайте следующую структуру в www:

www
    admin
backend
common
console
environments
frontend
...

Нашей фронтенд директорией будет www. Переместите в неё всё из frontend/web. Так же поступите и для backend/web, скопировав всё в www/admin. В каждом случае нужно настроить пути внутри файлов index.php и index-test.php.

Отдельные сессии и куки

Изначально подразумевалось, что приложения бекенд и фронтенд располагаются на разных доменах. Теперь, когда мы перенесли всё на один домен, куки и сессии из бекенда и фронтенда стали пересекаться. Для решения этой проблемы требуется внести следующие настройки в конфигурацию бекенд-приложения backend/config/main.php:

'components' => [
    'request' => [
        'csrfParam' => '_backendCSRF',
        'csrfCookie' => [
            'httpOnly' => true,
            'path' => '/admin',
        ],
    ],
    'user' => [
        'identityCookie' => [
            'name' => '_backendIdentity',
            'path' => '/admin',
            'httpOnly' => true,
        ],
    ],
    'session' => [
        'name' => 'BACKENDSESSID',
        'cookieParams' => [
            'path' => '/admin',
        ],
    ],
],