Suche…


Bereitstellung in einer Shared-Hosting-Umgebung

Die Bereitstellung einer erweiterten Projektvorlage für Shared Hosting ist etwas komplizierter als eine grundlegende, da sie über zwei Webroots verfügt, die von Shared Hosting-Webservern nicht unterstützt werden. Wir müssen die Verzeichnisstruktur anpassen, damit die Frontend-URL http: //site.local und die Backend-URL http: //site.local/admin lautet .

Verschieben Sie Eintrittsskripte in eine einzelne Webroot

Zunächst benötigen wir ein Webroot-Verzeichnis. Erstellen Sie ein neues Verzeichnis und benennen Sie es entsprechend Ihrem Hosting-Webroot-Namen, z. B. www oder public_html oder Ähnlichem. Erstellen Sie dann die folgende Struktur, wobei www das soeben erstellte Hosting-Webroot-Verzeichnis ist:

www
    admin
backend
common
console
environments
frontend
...

www ist unser Frontend-Verzeichnis, also verschieben Sie den Inhalt von Frontend / Web in dieses Verzeichnis. Verschieben Sie den Inhalt des Backends / web in www / admin . In jedem Fall müssen Sie die Pfade in index.php und index-test.php anpassen .

Passen Sie Sitzungen und Cookies an

Ursprünglich sollten das Backend und das Frontend auf verschiedenen Domains laufen. Wenn wir alle auf dieselbe Domain umstellen, teilen das Frontend und das Backend dieselben Cookies auf, was zu einem Konflikt führt. Um dies zu beheben, passen Sie die Backend-Anwendung config backend / config / main.php wie folgt an:

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

Hoffen Sie, dass dies den Shared Hosting-Benutzern hilft, erweiterte Anwendungen bereitzustellen.

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

Sie haben also Ihre Dateien in einen Ordner hochgeladen, z. B. /backend/web/uploads/ und Sie möchten, dass diese Uploads auch im Frontend sichtbar sind. Die einfachste Möglichkeit ist, im Frontend einen Symlink zu erstellen, der mit dem Backend verknüpft ist:

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

In Ihren Ansichten können Sie jetzt relative Links zu den Dateien verwenden:

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

Stellen Sie sicher, dass auf Ihrem Webserver Symlinks verfolgt werden können.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow