"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > PHP में कई वातावरण (विकास, मंचन, उत्पादन) का प्रबंधन कैसे करें

PHP में कई वातावरण (विकास, मंचन, उत्पादन) का प्रबंधन कैसे करें

2025-02-06 पर पोस्ट किया गया
ब्राउज़ करें:129

How to Manage Multiple Environments (Development, Staging, Production) in PHP

] ] ये वातावरण - विकास

,

स्टेजिंग , और उत्पादन - प्रत्येक एक विशिष्ट उद्देश्य की सेवा करता है, और प्रत्येक को उस चरण की अद्वितीय आवश्यकताओं को पूरा करने के लिए अलग -अलग कॉन्फ़िगर किया जाना चाहिए। &&&] उदाहरण के लिए:

]

]

]
  • PHP में कई वातावरणों को प्रभावी ढंग से प्रबंधित करने की कुंजी कॉन्फ़िगरेशन प्रबंधन है। इस लेख में, हम पर्यावरण-विशिष्ट कॉन्फ़िगरेशन को संभालने, चिकनी तैनाती सुनिश्चित करने और सामान्य नुकसान से बचने के लिए सर्वोत्तम प्रथाओं के माध्यम से चलेंगे।
  • 1। पर्यावरण-विशिष्ट कॉन्फ़िगरेशन ] डेटाबेस कनेक्शन, एपीआई कुंजी, त्रुटि रिपोर्टिंग और कैशिंग व्यवहार जैसी सेटिंग्स विकास, मंचन और उत्पादन के बीच काफी भिन्न हो सकती हैं।
  • एक। पर्यावरण चर का उपयोग करें
पर्यावरण चर पर्यावरण-विशिष्ट कॉन्फ़िगरेशन का प्रबंधन करने के लिए एक सामान्य और सुरक्षित तरीका है। आप प्रत्येक वातावरण (विकास, मंचन, उत्पादन) के लिए अलग -अलग चर सेट कर सकते हैं, और उन्हें अपने PHP एप्लिकेशन के भीतर getenv () या $ _ENV का उपयोग करके एक्सेस कर सकते हैं।

उदाहरण के लिए:

] आप अपने PHP एप्लिकेशन में इन चर को लोड करने के लिए जैसे पुस्तकालयों का उपयोग कर सकते हैं।

। env

app_env = विकास DB_HOST = LOCALHOST Db_user = root Db_password = rootPassword

]

php // .env फ़ाइल से पर्यावरण चर लोड $ dotenv = dotenv \ dotenv :: createimmutable (__ dir__); $ dotenv-> लोड (); // पर्यावरण चर तक पहुंचना $ env = getenv ('app_env'); $ dbhost = getenv ('db_host'); $ dbuser = getenv ('db_user'); $ dbPassword = getenv ('db_password'); इको "वर्तमान वातावरण: $ एनवी"; ?>

  • बी। प्रत्येक वातावरण के लिए कॉन्फ़िगरेशन फ़ाइलें बड़े अनुप्रयोगों में, प्रत्येक वातावरण के लिए अलग -अलग फ़ाइलों में कॉन्फ़िगरेशन सेटिंग्स को संग्रहीत करना आम है। उदाहरण के लिए, आपके पास कॉन्फ़िगरेशन फ़ाइलों के साथ एक कॉन्फ़िगर निर्देशिका हो सकती है जैसे:
config/dev.php

] config/prod.php

प्रत्येक फ़ाइल में संबंधित वातावरण के लिए विशिष्ट सेटिंग होगी। आप APP_ENV पर्यावरण चर के मान के आधार पर इन कॉन्फ़िगरेशन को गतिशील रूप से लोड कर सकते हैं।
APP_ENV=development
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=rootpassword

उदाहरण
:

APP_ENV=development
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=rootpassword
php // config.php $ env = getenv ('app_env')?: 'उत्पादन'; // उत्पादन के लिए डिफ़ॉल्ट यदि सेट नहीं है स्विच ($ env) { मामला 'विकास': $ config = आवश्यकता 'config/dev.php'; तोड़ना; मामला 'मंचन': $ config = आवश्यकता 'config/staging.php'; तोड़ना; मामला 'उत्पादन': $ config = आवश्यकता 'config/prod.php'; तोड़ना; गलती करना: नया अपवाद फेंकें ('अज्ञात वातावरण:'। $ Env); } // $ कॉन्फ़िगरेशन सरणी का उपयोग करें ?>

सी। संभाल डेटाबेस कॉन्फ़िगरेशन

डेटाबेस कॉन्फ़िगरेशन आमतौर पर वातावरण के बीच भिन्न होंगे। आपके पास विकास में एक स्थानीय डेटाबेस, एक अलग स्टेजिंग डेटाबेस और एक उत्पादन डेटाबेस हो सकता है। पर्यावरण चर में इन विवरणों को संग्रहीत करने से उन्हें कोडबेस से अलग करने में मदद मिलती है।
  • php // db.php $ dbhost = getenv ('db_host'); $ dbuser = getenv ('db_user'); $ dbPassword = getenv ('db_password'); $ dbname = getenv ('db_name'); कोशिश { $ pdo = new pdo ("mysql: host = $ dbhost; dbname = $ dbname", $ dbuser, $ dbPassword); // अपवाद के लिए PDO त्रुटि मोड सेट करें $ pdo-> setAttribute (pdo :: attr_errmode, pdo :: ermode_exception); } पकड़ (pdoException $ e) { इको 'कनेक्शन विफल:'। $ e-> getMessage (); } ?>
  • २। त्रुटि रिपोर्टिंग और डिबगिंग

विभिन्न वातावरणों में त्रुटि रिपोर्टिंग के विभिन्न स्तरों की आवश्यकता हो सकती है:

]
]

] इसके बजाय, किसी फ़ाइल या बाहरी सेवा जैसे

या

को लॉग इन करें


एक। वातावरण के आधार पर display_errors सेट करें
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
?>
]

php $ env = getenv ('app_env')?: 'उत्पादन'; if ($ env === 'विकास') { ini_set ('display_errors', 1); error_reporting (e_all); } और ($ env === 'स्टेजिंग') { ini_set ('display_errors', 0); error_reporting (e_all); } और {// उत्पादन ini_set ('display_errors', 0); error_reporting (0); // उपयोगकर्ता को कोई त्रुटि न दिखाएं // किसी फ़ाइल या बाहरी सेवा के लिए लॉग त्रुटियां ini_set ('log_errors', 1); ini_set ('error_log', '/path/to/logs/php_errors.log'); } ?>

३। तैनाती और संस्करण नियंत्रण

  • का प्रबंधन करना कई वातावरणों के प्रबंधन का एक और महत्वपूर्ण पहलू है। git ,
  • ci/cd पाइपलाइन
  • , और तैनाती स्वचालन जैसे उपकरण प्रक्रिया को सुव्यवस्थित करने में मदद करते हैं।
  • एक। गिट ब्रांचिंग रणनीति
  • ] ] ] ]
बी। निरंतर एकीकरण और परिनियोजन (CI/CD)

इसे संबंधित वातावरण में तैनात करना। यह मानवीय त्रुटि को कम करता है और वातावरण के बीच स्थिरता सुनिश्चित करता है।

]


]


पास करते हैं,
]

४। पर्यावरण-विशिष्ट सेवाएं

] उत्पादन में, आप फ़ाइल भंडारण के लिए अमेज़ॅन S3 जैसी सेवाओं का उपयोग कर सकते हैं, जबकि विकास में, आप स्थानीय फ़ाइल सिस्टम का उपयोग कर सकते हैं। आपकी कॉन्फ़िगरेशन फ़ाइलों या पर्यावरण चर में, पर्यावरण के आधार पर विभिन्न सेवा कॉन्फ़िगरेशन को परिभाषित करें। उदाहरण के लिए:

// फ़ाइल स्टोरेज सेटअप if (getenv ('app_env') === 'उत्पादन') { परिभाषित करें ('file_storage_path', 's3: // my-bucket/files/'); } अन्य { परिभाषित करें ('file_storage_path', '/var/www/app/files/'); }

५। कैशिंग और प्रदर्शन अनुकूलन कैशिंग रणनीतियों और प्रदर्शन अनुकूलन भी पूरे वातावरण में भिन्न होते हैं। विकास में, आप तेजी से प्रतिक्रिया के लिए कैशिंग को अक्षम करना चाह सकते हैं, जबकि उत्पादन में, आप बेहतर प्रदर्शन के लिए आक्रामक कैशिंग चाहते हैं।

] ]
  • 6। सुरक्षा
  • विभिन्न वातावरणों में, सुरक्षा उपाय भी अलग -अलग होने चाहिए:
  • ]
  • ] ]
निष्कर्ष

] पर्यावरण-विशिष्ट कॉन्फ़िगरेशन को अलग करके, त्रुटि रिपोर्टिंग को नियंत्रित करके, संस्करण नियंत्रण और सीआई/सीडी का उपयोग करके, और प्रत्येक वातावरण के लिए कैशिंग और सेवाओं को अपनाना, आप विकास प्रक्रिया को सुव्यवस्थित कर सकते हैं और चरणों के बीच चिकनी संक्रमण सुनिश्चित कर सकते हैं। ]

विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/abhay_yt_52a8e72b213be229/how-to- multiple-environments-development-staging-moduction-poduction-1o4?1 यदि कोई उल्लंघन है, तो कृपया s tudy_golang@ से संपर्क करें। 163.com डिलीट
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3