कई सर्वरों तक पहुँचने के लिए phpMyAdmin को कैसे कॉन्फ़िगर करें?


14

PhpMyAdmin को कॉन्फ़िगर करने का उबंटू तरीका क्या है ताकि मैं इसे कई MySQL सर्वरों को प्रबंधित करने के लिए उपयोग कर सकूं? डेटाबेस पैरामीटर सेट किए गए हैं /etc/dbconfig-common/phpmyadmin.conf, लेकिन किसी एकल सर्वर के लिए कनेक्शन पैरामीटर के लिए वहां केवल स्थान है। मैं इसे /etc/phpmyadmin/config-db.phpऔर में हैक कर सकता था /etc/phpmyadmin/config.inc.php, लेकिन मुझे लगता है कि वहाँ एक और अधिक सुंदर तरीका होना चाहिए।


क्या आपने कभी ऐसा करने के लिए एक विनम्रता पाई है? क्या आपने अपने द्वारा बताई गई फाइलों में से किसी एक को हैक किया है या नहीं?
नन

यह ट्यूटोरियल बताता है कि आप एक phpMyAdmin इंस्टॉलेशन से कई MySQL सर्वर कैसे प्रबंधित कर सकते हैं। सुरक्षा कारणों से, phpMyAdmin और किसी भी दूरस्थ MySQL सर्वर के बीच संचार SSL एन्क्रिप्शन का उपयोग कर रहा है

जवाबों:


8

काफी पुराना सवाल है, लेकिन खोजों पर अभी भी प्रासंगिक है।

phpMyAdmin कॉन्फ़िगर फ़ाइलों के लिए सादे PHP और $cfg['Servers']कॉन्फ़िगर किए गए सर्वर को प्राप्त करने के लिए सरणी का उपयोग करता है।

इसलिए उचित तरीका यह है कि आप जिस भी /etc/phpmyadmin/conf.dसर्वर को जोड़ना चाहते हैं, उसके लिए एक नई कॉन्फ़िग फ़ाइल जोड़ें। इसे शामिल करने के लिए केवल फ़ाइलों के नाम को समाप्त करना आवश्यक है .php, लेकिन यह your_new_server.inc.phpस्थिरता के लिए उपयोग करने के लिए एक अच्छा विचार है ।

किसी दिए गए कॉन्फ़िग फ़ाइल की न्यूनतम सामग्री होगी:

<?php // let the interpreter know this is code
$cfg['Servers'][2]['host']     = 'THE_HOST';
$cfg['Servers'][2]['user']     = 'THE_USER';
$cfg['Servers'][2]['password'] = 'THE_PASSWORD';

जैसा कि एक अन्य उत्तर में कहा गया है, आप अधिक मापदंडों के लिए /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php फ़ाइल देख सकते हैं ।

महत्वपूर्ण: आपको हर नई फ़ाइल के लिए ऐरे के इंडेक्स (2) को बढ़ाना होगा, और यदि आप लोकलहोस्ट से कनेक्ट रखना चाहते हैं तो 1 का उपयोग करने से बचें।

अगर उस पैकेज के बारे में पुरुष (ओं) ने phpMyAdmin के बारे में सोचा था, तो वे $iफोर्किट में इंक्रीमेंटिंग वैरिएबल जोड़ सकते थे, जिसमें conf.dडायरेक्टरी की फाइलें भी शामिल हैं , इसलिए आप इसे इंडेक्स के रूप में इस्तेमाल कर सकते हैं और बिना चिंता किए इसे मैन्युअल रूप से बढ़ाएं, लेकिन दुख की बात है कि ऐसा नहीं है। यद्यपि आप इसे स्वयं कर सकते हैं।


[२०१ ९]: नए PHP संस्करण इस अधिक उपयुक्त विकल्प सिंटैक्स की अनुमति देते हैं:

<?php $cfg['Servers'][] = ['host'=>'my_host', 'user'=>'my_user', 'password'=>'my_pass'];

मैंने /etc/phpmyadmin/conf.d/slaveA.conf.php में सूचीबद्ध न्यूनतम सामग्री डालने की कोशिश की और केवल PHPMyAdmin पृष्ठ के शीर्ष पर सामग्री देखी। जब मैंने config.inc.php के निचले भाग में उसी सामग्री को catted किया तो यह काम कर गई। इसके बारे में कुछ इसमें शामिल हो गया है। अन्यथा, यह कस्टम कॉन्फ़िगरेशन बनाने का अपेक्षित तरीका है जो अपडेट में नहीं मारा जाएगा।
झिलमिलाता

1
@flickerfly, देर से जवाब लेकिन <?phpकिसी भी अन्य PHP स्क्रिप्ट के रूप में, विन्यास फाइल में कोड के साथ शुरू करना होगा ।
मार्क

4

मुझे लगता है कि यह करने का सबसे सटीक तरीका है:

पहले पासवर्ड सेटअप करें:

sudo htpasswd -c /etc/phpmyadmin/htpasswd.setup admin

फिर सुरक्षा अक्षम करें:

sudo pma-configure

फिर http: // yourserver / phpmyadmin / setup पर जाएं (यहां ब्राउजर्स ऑर्ट के लिए पूछते हैं, यूजर एडमिन है और पासवर्ड जो आप पहले कमांड में लिखते हैं), उस विजार्ड के साथ आप अपने सर्वर को कॉन्फ़िगर करते हैं, एक बार किया जाता है, डाल दिया सुरक्षा फिर से:

sudo pma-secure

इस विधि द्वारा बनाई गई कॉन्फ़िगर फ़ाइल /var/lib/phpmyadmin/config.inc.php में संग्रहीत है।
माइकल लॉटन

इस विधि द्वारा बनाई गई यह कॉन्फिगर फाइल तब /etc/phpmyadmin/config.inc.pp पर मुख्य कॉन्फिग फाइल में शामिल है। PhpMyAdmin सेटअप स्क्रिप्ट उबंटू पर छोटी है और मौजूदा कॉन्फ़िगरेशन को लोड नहीं करता है (जब भी आप इसे कॉन्फ़िगर करते हैं तो आपको हर बार इसे खरोंच से शुरू करने के लिए मजबूर करता है)। इसके अलावा यह जो कॉन्फ़िगरेशन उत्पन्न करता है, उसमें ब्लोफ़िश गुप्त की तरह सामान शामिल होता है जिसे बाद में मुख्य कॉन्फ़िगरेशन फ़ाइल द्वारा अधिलेखित किया जाता है। आप पाएंगे कि पहला सर्वर (1) मुख्य कॉन्फिग फाइल द्वारा अधिलेखित है, जो कि कॉन्फिगरेशन का उपयोग config-db.php से करता है।
माइकल लॉटन

2

मैंने निम्नलिखित मान लिया है:

  • /etc/phpmyadmin/ विन्यास जोड़ने के लिए सबसे तार्किक स्थान होगा
  • /etc/phpmyadmin/config-db.phpडिफ़ॉल्ट (स्थानीय?) कॉन्फ़िगरेशन के लिए स्थान है। यह है, क्योंकि यह एक डिफ़ॉल्ट है, केवल एक डीबी
  • /etc/phpmyadmin/config.inc.phpडिफ़ॉल्ट डेटाबेस को पढ़ता है इसलिए इसमें एक है। कम से कम यह एक प्रयोग किया जाता है, इसलिए आपके पास एक डेटाबेस है। यदि आपके कॉन्फ़िगरेशन में कुछ परिवर्तन होता config-db.phpहै, तो उसे बदल दिया जाता है, इसलिए आपकी फ़ाइल में 'स्थानीय' परिवर्तन संशोधित नहीं होते हैं

इसलिए मेरा निष्कर्ष था कि इस भाग के नीचे एक अतिरिक्त सर्वर जोड़ना:

/* Configure according to dbconfig-common if enabled */
if (!empty($dbname)) {
    //reading from config-db.php
}

//$i++ was allready done in if above
//Adding extra servers
 $cfg['Servers'][$i]['host'] = 'serverhost.host.tld';
 $cfg['Servers'][$i]['extension'] = 'mysqli';
//...etc

यह सबसे अच्छी जगह लगती है।


1

PhpMyAdmin प्रलेखन के अनुसार आप फ़ाइल $cfg['Servers']में परिभाषित सरणी में कई सर्वरों को परिभाषित कर सकते हैं config.inc.php


2
एक सामान्य phpMyAdmin इंस्टॉल में, हाँ। लेकिन Ubuntu.in की कॉन्फ़िगरेशन फ़ाइल के उस हिस्से को उत्पन्न करने के लिए अपनी स्वयं की कॉन्फ़िगरेशन फ़ाइलें हैं, और मैं Ubuntu कॉन्फ़िगरेशन को ओवरराइड किए बिना, इसे कॉन्फ़िगर करने का उबंटू तरीका जानना चाहता हूं।
माइक स्कॉट

समझा। फाइल में टिप्पणी कहते हैं You can regenerate it using: dpkg-reconfigure -plow phpmyadmin। मुझे लगता है कि तुम कोशिश की? (अब इसे उत्पादन प्रणाली पर नहीं करेंगे) इसके अलावा ... मैन्युअल रूप से बदली गई फ़ाइलों को अधिलेखित होने से पहले अद्यतन पर संकेत दिया जाना चाहिए।
कार्स्टन थिल

2
हां, मैं फ़ाइल config-db.php को पुन: उत्पन्न कर सकता हूं, लेकिन वह कॉन्फ़िगरेशन फ़ाइल जिसमें से यह डेटाबेस कनेक्शन पैरामीटर (/etc/dbconfig-common/phpmyadmin.conf) का स्रोत है, केवल इस डेटाबेस सर्वर को कॉन्फ़िगर करने के लिए कमरा है। मैं जानना चाहता हूं कि एक से अधिक डेटाबेस सर्वर को कैसे कॉन्फ़िगर किया जाए।
माइक स्कॉट

+ माइक स्कॉट, मुझे एक conf.d / फ़ाइल में काम करने के लिए $ cfg ['सर्वर'] नहीं मिल सका, लेकिन जब मैंने इसे config.inc.php में डाला तो यह ठीक काम कर गया। मुझे लगता है कि कुछ बग है कि बयान बयान इसके साथ खिलवाड़ करता है।
झिलमिलाता

1

मुख्य कॉन्फ़िगरेशन फ़ाइल में संग्रहीत है /etc/phpmyadmin/config.inc.php। इस फ़ाइल में शामिल हैं

  • से ब्लोफिश रहस्य /var/lib/phpmyadmin/blowfish_secret.inc.php
  • PhpMyAdmin सेटअप स्क्रिप्ट (diegueus9 की विधि) से उत्पन्न विन्यास /var/lib/phpmyadmin/config.inc.php
  • से डीबी मूल्यों /etc/phpmyadmin/config-db.phpजहाँ से उत्पन्न कर रहे हैं /etc/dbconfig-common/phpmyadmin.confद्वारा /usr/sbin/dbconfig-generate-include/etc/dbconfig-common/phpmyadmin.confका उपयोग कर संशोधित किया जा सकता हैdpkg-reconfigure -plow phpmyadmin
  • से अतिरिक्त विन्यास फाइल /etc/phpmyadmin/conf.d/*.php

कुछ उदाहरण कॉन्फ़िगरेशन स्निपेट /usr/share/doc/phpmyadmin/examplesशामिल हैं config.manyhosts.inc.php। इस फ़ाइल को जोड़ा जा सकता है /etc/phpmyadmin/conf.d। यह iकिसी भी होस्ट को बनाने से पहले वैरिएबल को वापस 1 पर रीसेट करके काम करता है ताकि यह होस्ट सेट को ओवरराइड करे /etc/phpmyadmin/config.inc.php

यदि आप अधिक उन्नत कॉन्फ़िगरेशन करना चाहते हैं, तो आप /etc/phpmyadmin/config.inc.phpसंभवतः फ़ाइल को बदलना चाहेंगे और संभवतः अन्य कॉन्फ़िगरेशन एक्सटेंशन का उपयोग कर जोड़ सकते हैं /etc/phpmyadmin/conf.d

पुरानी कॉन्फ़िगरेशन फ़ाइलों में अतिरिक्त कॉन्फ़िगरेशन के लिए समर्थन जोड़ने के लिए, आप निर्देशिका बना सकते हैं /etc/phpmyadmin/conf.dऔर फिर नीचे दिए गए PHP कोड को नीचे जोड़ सकते हैं /etc/phpmyadmin/config.inc.php:

/* Support additional configurations */
foreach (glob('/etc/phpmyadmin/conf.d/*.php') as $filename) {
        include($filename);
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.