2010-07-10 11 views
5

लिनक्स-आधारित साझा होस्टिंग पर जो सीपीएनल के साथ प्रशासित है, क्या मेरे साइट के लिए विश्वसनीय रूप से, एडन डोमेन बनाने के लिए एक प्रोग्रामेटिक तरीका है यदि मुझे मेरी सीपीएनल लॉगिन जानकारी पता है और/या एफ़टीपी जानकारी?साझा होस्टिंग योजनाओं पर प्रोग्रामेटिक रूप से एडोन डोमेन कैसे बनाएं

नोट: इस मामले में पीएचपी में रुचि और cpanel।

उत्तर

9

@Alex सी जो मुझे सही रास्ते पर मिल गया के लिए धन्यवाद। निम्नलिखित कई साझा होस्टिंग योजनाओं के साथ काम करेंगे, लेकिन आप पहले इस पर अपनी नीतियों की जांच करना चाहेंगे।

नीचे दिए गए उदाहरण में, मैंने पहले से ही मेरी साझा होस्टिंग योजना के मुख्य रूट डोमेन के रूप में root.com खरीदा होगा। फिर, मैं addon.com नामक डोमेन पर जोड़ना चाहता था। मैंने उपयोगकर्ता नाम को addon_user और addon_pass में पास किया है। साथ ही, मैंने फ़ाइलों को public_html/addon.com में नए डोमेन के लिए रखा है। ऐसा करने के लिए Cpanel से कनेक्ट करने के, मैं एक cpanel के मुखपृष्ठ URL (जो होस्टिंग योजना के साथ बदलती रहती है) इतना है कि यह पार्स और पुन: उपयोग किया जा सकता है में प्रवेश किया। इसके अलावा, मैंने रूट_यूसर और root_pass के रूप में my root.com की cpanel उपयोगकर्ता/पास जानकारी प्रदान की।

पिछले गूंज बयान सिर्फ उत्पादन प्रतिक्रिया है कि क्या यह काम किया है या नहीं है। हालांकि, अगर आप विफलता के लिए यह पार्स करने के लिए चाहते हैं, तो आप शायद वाक्यांश "नहीं जोड़ा" के लिए पार्स कर सकते हैं।

नोट करें कि कुछ होस्टिंग योजनाएं URL_g_contents को URL से कनेक्ट करने से रोकती हैं, इसलिए आपको fopen ($ sURL, 'r') या कर्ल API के साथ स्विच करना पड़ सकता है।

<?php 

// @ input vars - change these as you see fit 
$sPastedCpanelHomepageURL = 'https://root.com:2083/frontend/x3/index.html'; 
$sNewDomain = 'addon.com'; 
$sNewDomainUser = 'addon_user'; 
$sNewDomainPass = 'addon_pass'; 
$sNewDomainFolder = 'public_html/addon.com'; 
$sCPanelUser = 'root_user'; 
$sCPanelPass = 'root_pass'; 

// @ processing 
$sCP = dirname($sPastedCpanelHomepageURL); 
$sCP = str_replace('://','://' . $sCPanelUser . ':' . $sCPanelPass . '@',$sCP); 

$sTask = '/addon/doadddomain.html?'; 

$sNewDomain = urlencode($sNewDomain); 
$sNewDomainUser = urlencode($sNewDomainUser); 
$sNewDomainPass = urlencode($sNewDomainPass); 
$sNewDomainFolder = urlencode($sNewDomainFolder); 
$sCPanelUser = urlencode($sCPanelUser); 
$sCPanelPass = urlencode($sCPanelPass); 

$asData = array(
    'domain' => $sNewDomain, 
    'user' => $sNewDomainUser, 
    'dir' => $sNewDomainFolder, 
    'pass' => $sNewDomainPass, 
    'pass2' => $sNewDomainPass 
); 
$sData = http_build_query($asData); 

$s = file_get_contents($sCP . $sTask . $sData); 

echo "$s\n"; 
+0

तो बंदरगाह 2083 है और 1084 नहीं है क्योंकि एलेक्स सी ने सुझाव दिया है, सिर्फ इसलिए जानना कि मुझे इसमें भी रूचि है। –

+0

वास्तव में, पोर्ट को कभी-कभी वेब होस्टिंग प्रदाताओं द्वारा बदला जाता है, जैसा कि सीपीएनल के लिए होमपेज यूआरएल है। – Volomike

3

यह इस बात पर निर्भर करता है कि आपका DNS सर्वर कहीं भी होस्ट किया जा रहा है या नहीं, और क्या DNS प्रविष्टियों को संशोधित करने के लिए कोई एपीआई है (या केवल DNS सर्वर की कॉन्फ़िगरेशन तक पहुंच)। मैं एक सीपीनल उपयोगकर्ता नहीं हूं, लेकिन मैं "नहीं" की तरफ झुकने जा रहा हूं।

ऐसे वातावरण में जहां आप DNS सेवा प्रणाली को नियंत्रित करते हैं, आपके DNS रिकॉर्ड्स में अधिक प्रविष्टियां जोड़ने के लिए कोड लिखना काफी मुश्किल है (हालांकि स्पष्ट रूप से प्रचार अभी भी समय लगता है) और sites-enabled में नई साइटें फेंक दें। सुरक्षित और सुरक्षित रूप से करना बहुत मुश्किल हो सकता है, लेकिन वहां आप जाते हैं। लेकिन मुझे संदेह है कि आपके पास सीपीनल के माध्यम से वह क्षमता है।

कुछ ऐसा जो सिर्फ दिमाग में आया था (है कि सभी अनिर्दिष्ट उप डोमेन को इंगित कर सकता अपने अपाचे विन्यास फाइल में एक डिफ़ॉल्ट साइट प्रविष्टि वाले) का निर्धारण क्या साइट वहां से चलाना चाहिए मोहक डोमेन का उपयोग करने की क्षमता और प्रोग्राम के रूप में है, लेकिन वहाँ बहुत हैं इस दृष्टिकोण के कई नकारात्मक हैं कि मैं इसे देखने की भी सिफारिश नहीं करता।

+0

+1 इस सुंदर वास्तव में क्या मैं भी कह सकते हैं कि है। जब तक सीपीनल एक एपीआई प्रदान नहीं करता है, तब तक आप ऐसा नहीं कर सकते हैं। –

+0

@ एडी रूप्ल: मुझे समझ में नहीं आता कि इस जवाब को टैग के साथ क्या करना है, टैग्स में प्रवेश करने के लिए, वह पूछ रहा है कि साझा-होस्टिंग पर सीपीनल के माध्यम से डोमेन कैसे जोड़ना है और डोमेन और सीधे अपाचे पर डोमेन कैसे जोड़ना है सर्वर रूट पहुंच। –

+0

मुझे लगता है कि आपको पहली टिप्पणी पढ़नी चाहिए; यह इसे स्पष्ट रूप से उत्तर देता है। जब तक सीपीनल एक एपीआई प्रदान नहीं करता है, तब तक बहुत कम किया जा सकता है। इसलिए, "लेकिन मुझे संदेह है कि आपके पास सीपीनल के माध्यम से वह क्षमता है।" –

2

मैं fopen के साथ ऐसा करने के लिए इस्तेमाल - मैं सटीक URL याद नहीं कर सकते और मैं अब और cPanel करने के लिए पहुँच नहीं है, लेकिन यदि आप उपयोग में यूआरएल की जाँच करें, आप

की तरह कुछ करने के लिए सक्षम होना चाहिए
fopen("https://username:[email protected]:1084/cpanel/doaddparked.html?domain=domain.com", "r"); 

(आपको पथ और बंदरगाहों की जांच करनी होगी, मुझे इन्हें याद नहीं किया जा सकता है) - और मैंने पिछले दो साल पहले एक परियोजना पर ऐसा किया था जहां हमारे साइनअप ने सीपीएनल के माध्यम से ईमेल बनाए थे - तब से वे इसे बदल सकते हैं, लेकिन मैंने पाया कि सबसे आसान तरीका है। समय, वे निश्चित रूप से प्राप्त आंकड़ों पर नहीं बल्कि पोस्ट की तुलना में, काम करता है, तो पोस्ट करने के लिए आप कर्ल की जांच के लिए आवश्यकता हो सकती है बदल गया है।

+0

यह काम कर सकता है, लेकिन यदि आप इस मार्ग पर जाना चुनते हैं तो आपको * बेहद सावधान रहना होगा कि यह आपके साझा होस्ट प्रदाता द्वारा ठीक है। ईमानदारी से यदि आप इसकी आवश्यकता के लिए पर्याप्त जटिल कुछ कर रहे हैं, तो आपको साझा होस्टिंग पर नहीं होना चाहिए। –

7

आप सीपीनल एपीआई का उपयोग कर सकते हैं, दस्तावेज़ here है। पढ़ना आसान नहीं है, अगर आप उनके साथ PHP के साथ खेलना चाहते हैं तो आप मुफ्त PHP कक्षाओं (जो दृश्यों के पीछे इन एपीआई का उपयोग करते हैं) का उपयोग कर सकते हैं, कुछ here on cPanel forum हैं, कुछ अन्य here हैं।

संबंधित मुद्दे