Yii 同一域名上部署高级模板

简爱代码>Yii2017-4-2 22:0292170

在共享主机上使用高级项目模板

将高级项目模板部署到共享托管是较常见的棘手问题,因为它有两个 WEB 目录,共享托管 Web 服务器不支持。我们需要调整目录结构,因此前端 URL 将为 http://site.local,后端 URL 将为 http://site.local/admin

移动到代码到单个 WEB 目录中

首先我们需要一个 WEB 目录。 创建一个新目录并将其命名为与您的托管 webroot名称匹配,例如wwwpublic_html 等。 然后创建以下结构,其中 www 是您刚刚创建的托管 WEB 目录

www
    admin
backend
common
console
environments
frontend
...

www将是我们的前端目录,所以将frontend/web 的内容移动到其中。 将 backend/web的内容移动到www/admin。 然后调整 前后端的 index.phpindex-test.php中的路径。

调整 sessions 与 cookies

最初的后端和前端都是在不同的域运行。 当我们将它全部移动到同一个域时,前端和后端将共享相同的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' => [
        // 这是用于在后台登录的会话 cookie 的名称
        'name' => 'advanced-backend',
        'cookieParams' => [
            'path' => '/admin',
        ],
    ],
],

替代设置

如果设置上面提供的模板的方式对您无效,请尝试 Oleg Belostotskiy 的 配置和文档地址: https://github.com/mickgeek/yii2-advanced-one-domain-config

原文出处:
http://www.yiiframework.com/doc-2.0/guide-tutorial-shared-hosting.html
https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/topic-shared-hosting.md

本文出自简爱博客,转载时请注明出处及相应链接。