yii2
Расширенный шаблон проекта
Поиск…
Развертывание в среде совместного размещения
Развертывание расширенного шаблона проекта на общий хостинг немного сложнее, чем базовый, поскольку он имеет два веб-ресурса, которые не поддерживают веб-серверы с общим хостингом. Нам нужно будет отрегулировать структуру каталогов, поэтому URL-адрес интерфейса будет http: //site.local, а URL-адрес бэкэнд будет http: //site.local/admin .
Перенос сценариев ввода в один веб-корень
Прежде всего нам нужен каталог webroot. Создайте новый каталог и назовите его в соответствии с вашим именем веб-сайта хостинга, например, www или public_html или тому подобное. Затем создайте следующую структуру, где www - это созданный вами веб-сайт хостинга webroot:
www
admin
backend
common
console
environments
frontend
...
www будет нашим интерфейсом, поэтому переместите содержимое интерфейса / веб-страницы в него. Переместите содержимое backend / web в www / admin . В каждом случае вам нужно будет настроить пути в index.php и index-test.php .
Настройка сеансов и файлов cookie
Первоначально бэкэнд и интерфейсы предназначены для работы в разных доменах. Когда мы переместим все это в один домен, интерфейс и бэкэнд будут использовать одни и те же файлы cookie, создавая столкновение. Чтобы исправить это, настройте backend / config / main.php бэкэнд-приложение следующим образом:
'components' => [
'request' => [
'csrfParam' => '_csrf-backend',
'csrfCookie' => [
'httpOnly' => true,
'path' => '/admin',
],
],
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => true,
'identityCookie' => [
'name' => '_identity-backend',
'path' => '/admin',
'httpOnly' => true,
],
],
'session' => [
// this is the name of the session cookie used for login on the backend
'name' => 'advanced-backend',
'cookieParams' => [
'path' => '/admin',
],
],
],
Надеемся, что это поможет пользователям с общим хостингом развернуть расширенное приложение.
кредиты: https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/topic-shared-hosting.md
Совместное использование загруженных файлов между интерфейсом и бэкэнд с помощью символических ссылок
Таким образом, вы загрузили свои файлы в папку say /backend/web/uploads/
и вы хотите, чтобы эти загрузки отображались также на интерфейсе. Самый простой вариант - создать символическую ссылку в интерфейсе, которая ссылается на бэкэнд:
ln -s /path/to/backend/web/uploads/ /path/to/frontend/web/uploads
В ваших представлениях теперь можно использовать относительные ссылки на файлы:
<img src='/uploads/<?= $model->image?>' alt='My Image goes here'>
<a href='/uploads/<?= $model->filename?>' target='_blank'>Download File</a>
Убедитесь, что ваш веб-сервер позволяет использовать символические ссылки.