2011-02-15 18 views
6

मैं एक एलएएमपी स्टैक में एक एप्लीकेशन बना रहा हूं और मैं उपयोगकर्ता को अपनी साइट के सबडोमेन के बजाय अपने डोमेन का उपयोग करने की क्षमता प्रदान करना चाहता हूं। जैसे। http://some_user.mysite.comकस्टम यूआरएल/डोमेन (सीएनएन उपनाम?)

वे का उपयोग करेगा::

बजाय

http://store.some_user.com/

मुझे पता है कि कुछ कंपनियों को इस CNAME रिकॉर्ड का उपयोग कर उपलब्ध है। (http://help.bigcartel.com/articles/14-using-a-custom-domain) हालांकि मुझे यकीन नहीं है कि वे इस अंत तक कैसे प्राप्त करते हैं।

मेरे प्रश्न हैं:

  1. इस प्रक्रिया क्या कहा जाता है? (यदि आवश्यकता हो तो मैं इसे और अधिक शोध कर सकता हूं)

  2. मुझे यह प्रदान करने के लिए क्या करने की आवश्यकता है? अर्थात। यह काम करने के लिए मुझे DNS, apache और php पक्ष पर क्या करने की ज़रूरत है?

कोई सलाह, लिंक या कोड स्निपेट की सराहना की जाएगी।

धन्यवाद


अद्यतन

अब तक मैं हालांकि मैं अभी भी दूसरे डोमेन को हल करने CNAME रिकॉर्ड के साथ समस्या आ रही है वाइल्डकार्ड DNS प्रविष्टि स्थापित करने के लिए सक्षम है। उदाहरण के लिए।

http://store.weareunified.com/ -> http://weareunified.joshstuart.com.au/

weareunified.com डीएनएस

weareunified.com. A 111.67.3.227 
store CNAME weareunified.joshstuart.com.au. 

joshstuart.com.au डीएनएस (यह प्राथमिक आवेदन मेजबान है) (यह एक परीक्षण उपयोगकर्ता मेजबान है)

joshstuart.com.au. A 111.67.3.227 
* CNAME joshstuart.com.au. 

उत्तर

7

मैंने एलएएमपी का उपयोग करके यह सेट अप किया है और यह बहुत अच्छी तरह से काम करता है। यहां बताया गया है कि मैंने यह कैसे किया:

  1. मेरे आवेदन के साथ लक्ष्य सर्वर सामान्य रिकॉर्ड (उप) डोमेन पर है। तो आपके मामले में मुझे लगता है कि आपके पास joshstuart.com.au पर चल रहा एप्लिकेशन है।
  2. ग्राहक को store.weareunified.com से joshstuart.com.au पर अपनी DNS प्रविष्टि को बदलने की आवश्यकता है।
  3. The Apache सर्वर एक डोमेन विनिर्देश (मेरे मामले में) के बिना एक वर्चुअलहोस्ट, बस एक <VirtualHost *:80>

यह है कि है। वर्तमान में 70+ डोमेन हैं जो मुख्य एप्लिकेशन डोमेन पर CNAME हैं, और वे प्रत्येक अपनी व्यक्तिगत साइट को आवश्यकतानुसार (रीडायरेक्ट के बिना) सेवा देते हैं।

+0

वास्तव में मुझे लगता है कि समस्या मुझे लगता है। <वर्चुअलहोस्ट *> सर्वरनाम cPanel102-469.hosting24.com.au दस्तावेज़ रूट/usr/local/apache/htdocs तो मुझे इसे अपने joshstuart.com.au डोमेन के डॉक्रूट पर इंगित करना चाहिए? – User123342234

+0

हां, DocumentRoot को आपके आवेदन को इंगित करना चाहिए। साथ ही, एक सर्वर नाम विनिर्देश शामिल न करें, क्योंकि यह किसी भी डोमेन को सुन देगा जो इसे CNanel102-469.hosting24.com.au पर नहीं करता है। – Berklee

+0

आपकी मदद के लिए धन्यवाद! डिफ़ॉल्ट वर्चुअलहोस्ट मुझे वापस पकड़ रहा था। – User123342234

5

Actu सहयोगी, आपको कुछ भी करने की ज़रूरत नहीं है।

आपके उपयोगकर्ताओं को अपने DNS प्रदाता को एक CNAME रिकॉर्ड जोड़ने की आवश्यकता है जो मूल रूप से http://app.some_user.com/ से http://some_user.app.com पर नक्शा रखता है।

http://app.some_user.com/ के लिए देखे गए किसी भी DNS क्लाइंट को इसके बजाय http://some_user.app.com देखने के लिए कहा गया है, और इसलिए यह एक DNS/क्लाइंट समस्या है, सर्वर समस्या नहीं है।

अमेज़ॅन ईसी 2 सर्वर के उपयोगकर्ताओं के लिए इस तकनीक की सलाह देते हैं।

कृपया ध्यान दें कि CNAME रिकॉर्ड्स की सीमा है, उन्हें किसी डोमेन की जड़ को असाइन नहीं किया जा सकता है - आपके उपयोगकर्ता http://some_user.com/, केवल http://app.some_user.com/ को CNAME के ​​रूप में असाइन नहीं कर सकते हैं।

+0

ध्यान देने योग्य एक बात यह है कि चीजों के अपने पक्ष से, @ जॉश, आप '* .app.com के लिए [वाइल्डकार्ड DNS प्रविष्टि] (http://en.wikipedia.org/wiki/Wildcard_DNS_record) का उपयोग करेंगे हर बार जब आप ग्राहक जोड़ते हैं तो अपने स्वयं के DNS रिकॉर्ड्स के साथ खेलने से बचने के लिए। लेकिन उपयोगकर्ता के अपने कस्टम पते के लिए, मैं रामी के साथ हूं, यह उनका डोमेन है और वे इसका प्रबंधन करेंगे, या तो एक सीएनएन के साथ या आपके वास्तविक सर्वर के आईपी पर एक रिकॉर्ड पॉइंटिंग के साथ। –

+0

आपकी मदद के लिए धन्यवाद। मेरी अज्ञानता क्षमा करें लेकिन एक नाम "फॉरवर्डर" या यूआरएल उपनाम की तरह कार्य करेगा। जैसे। क्या app.some_user.com/products पता बार में दिखाई देता है या क्या यह some_user.app.com/products में परिवर्तित हो जाएगा? – User123342234

+0

यह app.some_user.com/products के रूप में दिखाई देगा, जो मुझे लगता है कि आप क्या चाहते हैं :-) –

1

मेरे पास कुछ ऐसा ही है जो मैंने cpanel api2 के साथ किया था।

मूल रूप से, उपयोगकर्ता अपने डोमेन को मेरे डीएनएस पर इंगित करता है, और मैं अपने डोमेन को अपने डोमेन पर पार्क करने के लिए एपीआई का उपयोग करता हूं।

मैं प्रत्येक उपयोगकर्ता के डोमेन को डेटाबेस में संग्रहीत करता हूं।

पेज लोड पर, मैं http_host निकालता हूं और यह देखने के लिए कि डोमेन मौजूद है या नहीं, इसे अपने डेटाबेस से तुलना करें। मैं फिर उपयोगकर्ता सेटिंग्स (मैं एक ही स्क्रिप्ट से सभी पृष्ठों की सेवा कर रहा हूं) और डेटाबेस प्रविष्टियों के आधार पर पृष्ठ लोड करता हूं।

डेटाबेस लोड को कम करने के लिए, मैं होस्ट को पहचानने वाले सत्र में जानकारी सहेजता हूं। मैं प्रत्येक बार डेटाबेस की जांच करने के बजाय प्रत्येक बाद के लोड पर यह जांच सकता हूं।

+0

यह मेरे डोमेन को पार्किंग करने के बजाए मैंने जो किया है, वह काफी है, मैं प्राथमिक एप्लिकेशन होस्ट (joshstuart.com.au) पर वाइल्डकार्ड एंट्री और उपयोगकर्ता होस्ट पर एक सीएनएन एंट्री (weareunified.com परीक्षण के लिए) का उपयोग कर रहा हूं। हालांकि यह सही ढंग से हल नहीं कर रहा है। Http_host के माध्यम से सभी डीबी पक्ष और साइट मान्यता ठीक है। क्या आपके पास इस एपीआई समाधान के लिए कोई लिंक/कोड है? – User123342234

+0

एपीआई के बारे में, सीपीएनल वेबसाइट पर एक कक्षा है जो इसे लागू करती है। हालांकि इसके साथ एक त्रुटि है। http://docs.cpanel.net/twiki/bin/view/AllDocumentation/AutomationIntegration/ApiTwo आपके ऐप के बारे में, क्या प्रत्येक उपयोगकर्ता की निर्देशिका होती है या एक ही स्क्रिप्ट उसे सेवा देती है? क्या आप अपने डोमेन को अपने सबडोमेन से लिंक करने का प्रयास कर रहे हैं? यदि ऐसा है, तो यह वाइल्डकार्ड का उपयोग करने के बाद काम नहीं करेगा, सबडोमेन विशिष्ट नहीं है और इस प्रकार आप किसी डोमेन को उप डोमेन में इंगित नहीं कर सकते हैं जो आपके डीएन में स्पष्ट रूप से परिभाषित नहीं है। – frostymarvelous

+0

आपकी सबसे अच्छी शर्त डोमेन पार्किंग का उपयोग करना है क्योंकि डोमेन आपकी साइट पर उतरेगा और आप आवश्यक चेक कर सकते हैं। मुझे लगता है कि आप उस सबडोमेन को प्राप्त करने का प्रयास कर रहे हैं जिस पर डोमेन उतरा है। – frostymarvelous

0

अन्य संभावना वास्तव में उपयोगकर्ता का DNS होस्ट होना और सभी रिकॉर्ड को संभालना है। आप इसके लिए ओपन सोर्स समाधान प्राप्त कर सकते हैं। (लेकिन आपको अलग-अलग सबनेट पर अपने दो DNS सर्वरों की आवश्यकता हो सकती है)।

0

यहां कुछ अलग-अलग हिस्सों हैं - DNS प्रविष्टियों को सेट अप करना, और फिर अपाचे को अनुरोध का जवाब देने के लिए प्राप्त करना।

क्या आपके पास ग्राहक के लिए CNAME सेट अप ठीक है? नोट, आप weareunited.com पर एक CNAME सेट अप नहीं कर सकते हैं, इसे store.weareunited.com पर होना चाहिए, या कोई अन्य होस्टनाम जो रूट डोमेन नहीं है।

ऐसा लगता है जैसे आप समझ नहीं सकते कि सीएनएन का काम कैसा है। एक अत्यधिक सरलीकृत संस्करण है, जब कोई उपयोगकर्ता store.weareunited.com, उनके स्थानीय नेमसर्वर (उदाहरण के लिए अंतिम उपयोगकर्ता के आईएसपी में नेमसर्वर का अनुरोध करता है। मेरे लिए कॉमकास्ट पर, यह आमतौर पर बीवरटन में कॉमकास्ट एनएस है, या यह माना जाता है कि यह स्थानीय नेमसर्वर ने मेजबाननाम को पहले ही हल नहीं किया है और इसमें कैश नहीं है) यह निर्धारित करने के लिए रूट नेमसर्वर से पूछताछ करेगा कि डोमेन के लिए कौन जिम्मेदार है। तब स्थानीय नम्सरवर रिकॉर्ड प्राप्त करने के लिए डोमेन नेमसर्वर से पूछताछ करेगा। रिकॉर्ड एक रिकॉर्ड हो सकता है, जो एक आईपी पता है, या एक सीएनएन, जो किसी अन्य होस्टनाम को इंगित करता है।

जब स्थानीय नामसेवर को सीएनएन मिल जाता है, तो यह एक रिकॉर्ड प्राप्त करने के लिए फिर से इस प्रक्रिया के माध्यम से चलाएगा। एक बार अंततः आईपी पते के साथ एक रिकॉर्ड हो जाने के बाद, यह आईपी पते को अंतिम उपयोगकर्ता के ब्राउज़र पर वापस रखेगा, और वेब ब्राउज़र आईपी पते पर अनुरोध करेगा।

अंत परिणाम यह है कि वेब ब्राउज़र को आईपी पता मिलता है, और फिर यह होस्ट होस्ट हेडर - store.weareunited.com के रूप में मूल होस्टनाम का उपयोग करके इस आईपी पते का अनुरोध करता है। तो होस्ट नाम store.weareunited.com के लिए अनुरोध प्राप्त करने के लिए अपाचे सेट अप किया जाना चाहिए।

पीएचपी परवाह नहीं क्या होस्ट नाम है, जब तक आप $ _SERVER की तरह वातावरण चर की जाँच कर रहे हैं ...

आप अपने ग्राहकों joshstuart.com.au में CNAME स्थापित करने के लिए मिल सकता है। आप निश्चित रूप से weareunited.joshstuart.com.au जैसे अतिरिक्त होस्टनाम बना सकते हैं, या वाइल्डकार्ड कर सकते हैं, और उसके बाद आपके ग्राहक उस अद्वितीय होस्टनाम पर CNAME लक्ष्य सेट कर सकते हैं, लेकिन परेशान क्यों? मैं सिर्फ होगा:

store.weareunited.com. 3600 IN CNAME joshstuart.com.au. 

जब तक joshstuart.com.au तो अपने वेब सर्वर पर एक आईपी पता बाहर हाथ के रूप में, CNAME काम करेंगे। जैसा कि मैंने ऊपर बताया है, अपाचे को store.weareunited.com के लिए एक अनुरोध दिखाई देगा, इसलिए आपको उस होस्टनाम के लिए वर्चुअल होस्ट सेट अप करने की आवश्यकता है, या बर्कली के उल्लेख के रूप में एक सामान्य vhost बनाएं (हालांकि मुझे यकीन नहीं है कि अपाचे क्या है निर्देशों का उपयोग आप यह सुनिश्चित करने के लिए करेंगे कि अनुरोध डोमेन के लिए उचित फ़ाइलों में मैप किया गया हो ...)।

+0

धन्यवाद। दुर्भाग्य से यह पता चला कि मुझे चीजों के वर्चुअलहोस्ट पक्ष में परेशानी हो रही थी। – User123342234