diff --git a/docs/guide-ru/README.md b/docs/guide-ru/README.md index a19e080705..3057c51ac9 100644 --- a/docs/guide-ru/README.md +++ b/docs/guide-ru/README.md @@ -176,7 +176,7 @@ All Rights Reserved. * [Интернационализация](tutorial-i18n.md) * **TBD** [Отправка почты](tutorial-mailing.md) * [Оптимизация производительности](tutorial-performance-tuning.md) -* **TBD** [Работа на shared хостинге](tutorial-shared-hosting.md) +* [Окружение виртуального хостинга](tutorial-shared-hosting.md) * **TBD** [Шаблонизаторы](tutorial-template-engines.md) diff --git a/docs/guide-ru/tutorial-shared-hosting.md b/docs/guide-ru/tutorial-shared-hosting.md new file mode 100644 index 0000000000..872b1a1b0c --- /dev/null +++ b/docs/guide-ru/tutorial-shared-hosting.md @@ -0,0 +1,120 @@ +Окружение виртуального хостинга +========================== + +Окружение виртуальных хостингов зачастую весьма ограничено в настройках конфигурации и структуры директорий. +Тем не менее, в большинстве случаев, внеся некоторые корректировки возможно запустить Yii2 на виртуальном хостинге. + +Установка Basic приложения. +--------------------------- + +Поскольку на виртуальном хостинге обычно только один webroot, то лучше использовать Basic приложение. Прочитайте раздел +[Установка Yii](start-installation.md) и установите 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`(или `public_html`, или наподобие, там где располагается `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. Создайте новую директорию и назовите её, так же как на виртуальном хостинге, +например как описывалось выше в [Переименование webroot](#renaming-webroot) `www` или `public_html`, или наподобие. +Затем создайте следующую структуру в `www` директории, которую вы только что создали: + +``` +www + admin +backend +common +console +environments +frontend +... +``` + +`www` будет нашей фронтенд директорией, переместите в неё всё из `frontend/web`. Также поступите и для `backend/web`, +скопировав всё в `www/admin`. В каждом случае нужно настроить пути внутри файлов `index.php` и `index-test.php`. + +### Отдельные сессии и куки + +Изначально подразумевалось, что приложения бекенд и фронтенд располагаются на разных доменах. Когда мы перенесли всё в +один домен, то куки и сессии из бекенда и фронтенда будут пересекаться. Для исправления этого внесите следующие настройки +в конфигурацию backend приложения `backend/config/main.php`: + +```php +'components' => [ + 'request' => [ + 'csrfParam' => '_backendCSRF', + 'csrfCookie' => [ + 'httpOnly' => true, + 'path' => '/admin', + ], + ], + 'user' => [ + 'identityCookie' => [ + 'name' => '_backendIdentity', + 'path' => '/admin', + 'httpOnly' => true, + ], + ], + 'session' => [ + 'name' => 'BACKENDSESSID', + 'cookieParams' => [ + 'path' => '/admin', + ], + ], +], +```