yii2
Modello di progetto avanzato
Ricerca…
Distribuzione in ambiente di hosting condiviso
La distribuzione di un modello di progetto avanzato sull'hosting condiviso è un po 'più complicata rispetto a quella di base perché ha due web-root, che i server Web di hosting condiviso non supportano. Dovremo modificare la struttura delle directory in modo che l'URL di frontend sia http: //site.local e l'URL di backend sia http: //site.local/admin .
Sposta gli script di accesso in un singolo webroot
Prima di tutto abbiamo bisogno di una directory webroot. Creare una nuova directory e denominarla in modo che corrisponda al nome del webroot di hosting, ad esempio www o public_html o simile. Quindi crea la seguente struttura dove www è la directory webroot di hosting che hai appena creato:
www
admin
backend
common
console
environments
frontend
...
www sarà la nostra directory di frontend in modo da spostare il contenuto di frontend / web in esso. Sposta il contenuto del back-end / web in www / admin . In ogni caso sarà necessario regolare i percorsi in index.php e index-test.php .
Regola le sessioni e i cookie
Originariamente il backend e il frontend sono destinati a funzionare in diversi domini. Quando lo spostiamo tutti nello stesso dominio, il frontend e il backend condivideranno gli stessi cookie, creando uno scontro. Per sistemarlo, regola il backend dell'applicazione config backend / config / main.php come segue:
'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',
],
],
],
Spero che questo aiuti gli utenti di hosting condiviso a implementare un'applicazione avanzata.
crediti: https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/topic-shared-hosting.md
Condivisione di file caricati tra frontend e back-end tramite symlink
Quindi hai caricato i tuoi file in una cartella dire /backend/web/uploads/
e vuoi che questi caricamenti siano visibili anche sul frontend. L'opzione più semplice è creare un collegamento simbolico nel frontend che collega al back-end:
ln -s /path/to/backend/web/uploads/ /path/to/frontend/web/uploads
Nelle tue visualizzazioni puoi ora utilizzare i collegamenti relativi ai file:
<img src='/uploads/<?= $model->image?>' alt='My Image goes here'>
<a href='/uploads/<?= $model->filename?>' target='_blank'>Download File</a>
Assicurati che il tuo webserver permetta ai follower di essere seguiti.