Zoeken…


Implementatie in gedeelde hostingomgeving

Het implementeren van een geavanceerd projectsjabloon op shared hosting is een beetje lastiger dan een standaard omdat het twee webroots heeft, die shared hosting webservers niet ondersteunen. We moeten de directorystructuur aanpassen zodat de frontend-URL http: //site.local is en de backend-URL http: //site.local/admin .

Verplaats ingangsscripts naar enkele webroot

Allereerst hebben we een webroot-map nodig. Maak een nieuwe map en geef deze een naam die overeenkomt met de naam van uw hostingwebroot, bijvoorbeeld www of public_html of iets dergelijks. Maak vervolgens de volgende structuur waarbij www de hostingwebroot-directory is die u zojuist hebt gemaakt:

www
    admin
backend
common
console
environments
frontend
...

www wordt onze frontend-directory, dus verplaats de inhoud van frontend / web erin. Verplaats de inhoud van backend / web naar www / admin . In beide gevallen moet u de paden in index.php en index-test.php aanpassen.

Pas sessies en cookies aan

Oorspronkelijk zijn de backend en frontend bedoeld om op verschillende domeinen te draaien. Wanneer we alles naar hetzelfde domein verplaatsen, delen de frontend en backend dezelfde cookies, waardoor een botsing ontstaat. Om dit te verhelpen, past u de backend applicatie config backend / config / main.php als volgt aan:

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

Ik hoop dat dit helpt voor de shared hosting-gebruikers om geavanceerde applicaties te implementeren.

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

Dus je hebt je bestanden geüpload naar een map met de naam /backend/web/uploads/ en je wilt dat deze uploads ook zichtbaar zijn op de frontend. De eenvoudigste optie is om een symlink in de frontend te maken die naar de backend linkt:

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

In uw weergaven kunt u nu relatieve links naar de bestanden gebruiken:

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

Zorg ervoor dat symlinks op uw webserver kunnen worden gevolgd.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow