yii2
उन्नत परियोजना टेम्पलेट
खोज…
साझा होस्टिंग वातावरण में तैनाती
साझा होस्टिंग के लिए एक उन्नत परियोजना टेम्पलेट को तैनात करना एक बुनियादी की तुलना में थोड़ा मुश्किल है क्योंकि इसमें दो वेबरोट हैं, जो साझा किए गए होस्टिंग वेबसर्वर का समर्थन नहीं करते हैं। हमें निर्देशिका संरचना को समायोजित करने की आवश्यकता होगी इसलिए फ्रंटएंड URL http: //site.local होगा और बैकएंड URL http: //site.local/admin होगा ।
एकल वेबरोट में प्रविष्टि स्क्रिप्ट ले जाएँ
सबसे पहले हमें एक webroot निर्देशिका की आवश्यकता है। एक नई निर्देशिका बनाएं और इसे अपने होस्टिंग वेबरोट नाम, जैसे, www या public_html या पसंद से मिलान करने के लिए नाम दें। फिर निम्नलिखित संरचना बनाएं जहां www होस्टिंग वेबरूट निर्देशिका है जिसे आपने अभी बनाया है:
www
admin
backend
common
console
environments
frontend
...
www हमारी फ्रंटएंड डायरेक्टरी होगी इसलिए इसमें फ्रंटेंड / वेब की सामग्री को स्थानांतरित करें। Www / व्यवस्थापक में बैकएंड / वेब की सामग्री को स्थानांतरित करें। प्रत्येक मामले में आपको index.php और index-test.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' => [
// this is the name of the session cookie used for login on the backend
'name' => 'advanced-backend',
'cookieParams' => [
'path' => '/admin',
],
],
],
आशा है कि यह साझा होस्टिंग उपयोगकर्ताओं के लिए उन्नत एप्लिकेशन को तैनात करने में मदद करता है।
श्रेय: https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/topic-sared-hosting.md
सिम्बलिंक का उपयोग करके फ्रंटेंड और बैकएंड के बीच अपलोड की गई फ़ाइलों को साझा करना
इसलिए आपने अपनी फ़ाइलों को फ़ोल्डर /backend/web/uploads/
कर दिया है और आप चाहते हैं कि ये अपलोड फ्रंटएंड पर भी दिखाई दें। सबसे आसान विकल्प है बैकएंड से लिंक करने वाले दृश्यपटल में एक सिमिलिंक बनाना:
ln -s /path/to/backend/web/uploads/ /path/to/frontend/web/uploads
आपके विचारों में अब आप फ़ाइलों के सापेक्ष लिंक का उपयोग कर सकते हैं:
<img src='/uploads/<?= $model->image?>' alt='My Image goes here'>
<a href='/uploads/<?= $model->filename?>' target='_blank'>Download File</a>
सुनिश्चित करें कि आपका वेबसर्वर सहानुभूति का पालन करने की अनुमति देता है।