Buscar..


Despliegue en entorno de alojamiento compartido.

Implementar una plantilla de proyecto avanzada para alojamiento compartido es un poco más complicado que uno básico porque tiene dos webroots, que los servidores web de alojamiento compartido no son compatibles. Necesitaremos ajustar la estructura del directorio para que la URL de frontend sea http: //site.local y la URL de backend sea http: //site.local/admin .

Mueva los scripts de entrada a un solo webroot

En primer lugar necesitamos un directorio webroot. Cree un nuevo directorio y asígnele un nombre que coincida con su nombre de webroot de alojamiento, por ejemplo, www o public_html o similar. Luego cree la siguiente estructura donde www es el directorio webroot de alojamiento que acaba de crear:

www
    admin
backend
common
console
environments
frontend
...

www será nuestro directorio frontend, así que mueva los contenidos de frontend / web a él. Mueva los contenidos de backend / web a www / admin . En cada caso, deberá ajustar las rutas en index.php y index-test.php .

Ajustar sesiones y cookies.

Originalmente, el backend y el frontend están diseñados para ejecutarse en diferentes dominios. Cuando lo movamos todo al mismo dominio, el frontend y el backend compartirán las mismas cookies, creando un choque. Para solucionarlo, ajuste la configuración de la aplicación backend backend / config / main.php de la siguiente manera:

'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',
        ],
    ],
],

Espero que esto ayude a los usuarios de alojamiento compartido a implementar aplicaciones avanzadas.

Créditos: https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/topic-shared-hosting.md

Compartir archivos cargados entre el frontend y el backend usando enlaces simbólicos

Así que ha subido sus archivos a una carpeta say /backend/web/uploads/ y desea que estas cargas también sean visibles en la interfaz. La opción más fácil es crear un enlace simbólico en el frontend que enlaza con el backend:

ln -s /path/to/backend/web/uploads/ /path/to/frontend/web/uploads

En tus vistas puedes usar enlaces relativos a los archivos ahora:

<img src='/uploads/<?= $model->image?>' alt='My Image goes here'>
<a href='/uploads/<?= $model->filename?>' target='_blank'>Download File</a>

Asegúrese de que su servidor web permita que se sigan los enlaces simbólicos.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow