हम अपाचे और PHP को अलग-अलग डॉकटर कंटेनरों में तैनात कर सकते हैं और फिर उन्हें लिंक कर सकते हैं।

लेकिन क्या डॉकटर कंटेनर में अपाचे को स्थानीय रूप से स्थापित करने का कोई तरीका है (apt-get install apache2 का उपयोग करके) और php-fpm और फिर उन्हें लिंक करें?

धन्यवाद

4
Rishi 22 जिंदा 2020, 17:52

2 जवाब

सबसे बढ़िया उत्तर

आप अपनी खुद की इमेज बना सकते हैं और डॉकरफाइल में आप apt install ...

लेकिन यहां apache + php-fpm के साथ एक आधिकारिक छवि भी है: https://hub.docker.com ///php

तो आपको नहीं करना है। यह जाने के लिए तैयार है।


लेकिन मेरा मानना ​​है कि यह आपके php-fpm पोर्ट को उजागर करके और यूनिक्स सॉकेट के बजाय इस पोर्ट पर आपके अपाचे FastCgiExternalServer को कॉन्फ़िगर करके काम कर सकता है।

3
RASG 22 जिंदा 2020, 20:38

हाँ। चूंकि आप अपाचे के साथ php-fpm का उपयोग कर रहे हैं जैसा आपको करना चाहिए (इसके बजाय) mod_php का), आपके डॉकर-आधारित अपाचे साइट कॉन्फ़िगरेशन में आपके पास कुछ ऐसा ही होगा:

  <FilesMatch \.php$>
    SetHandler "proxy:fcgi://php-fpm-container:9000"
  </FilesMatch>

उपरोक्त कार्य तब करता है जब php-fpm और apache दोनों अलग-अलग डॉकटर कंटेनरों में चल रहे हों; php-fpm-container php-fpm कंटेनर को संदर्भित करता है।

होस्ट पर अपाचे चलाने के लिए, और डॉकर में php-fpm:

जब तक आपका डॉकर php-fpm कंटेनर होस्ट के लिए पोर्ट 9000 को उजागर करता है, अपाचे को पता नहीं चलेगा या परवाह नहीं है कि यह होस्ट से या आंतरिक डॉकटर से परोसा जाता है।

स्थानीयहोस्ट पर इंगित करने के लिए आपकी अपाचे साइट कॉन्फ़िगरेशन को संशोधित करने की आवश्यकता होगी:

  <FilesMatch \.php$>
    SetHandler "proxy:fcgi://localhost:9000"
  </FilesMatch>

संयोग से यह एक होस्ट और एक अपाचे सर्वर पर कई अलग-अलग PHP संस्करण चलाने का एक बहुत साफ तरीका है। बस प्रत्येक php-fpm कंटेनर को एक अलग पोर्ट (शायद ९००१, ९००२ आदि) पर बेनकाब करें।

1
jeff-h 17 फरवरी 2021, 03:50