phpMyAdmin और Adminer: डेटाबेस पैनल
VDS पर डेटाबेस के लिए वेब पैनल कैसे इंस्टॉल करें और इसे ऐसे लॉक करें कि यह एंट्री डोर न बने: पासवर्ड एक्सेस, एड्रेस प्रतिबंध, विकल्प।
23 अगस्त 2026 को अपडेट किया गया
वेब पैनल एक-बार के बदलावों और टेबल देखने के लिए सुविधाजनक है। यह सर्वर कम्प्रोमाइज़ होने का सबसे आम कारण भी है: /phpmyadmin URLs पर अपने-आप ब्रूट-फ़ोर्स हमले होते हैं, और लॉगिन फ़ॉर्म सीधे डेटा तक पहुँच दे देता है।
Adminer: एक ही फ़ाइल
Adminer एक अकेली PHP फ़ाइल है और MySQL, PostgreSQL तथा SQLite को सपोर्ट करती है। इंस्टॉल करने के लिए कुछ नहीं है:
mkdir -p /var/www/tools
curl -L -o /var/www/tools/adminer.php \
https://github.com/vrana/adminer/releases/latest/download/adminer.php
chown www-data:www-data /var/www/tools/adminer.php
आपके पास काम करता हुआ PHP-FPM होना चाहिए। फ़ाइल का नाम बदलकर कुछ ऐसा रखें जो अनुमान लगाना मुश्किल हो — यह सुरक्षा नहीं है, लेकिन इससे बड़े पैमाने पर होने वाली स्कैनिंग रुक जाती है।
phpMyAdmin
apt install -y phpmyadmin
पैकेज अपने-आप Apache से जुड़ जाता है; Nginx के लिए पाथ खुद बताएँ:
location /db-panel {
alias /usr/share/phpmyadmin;
index index.php;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
}
ज़रूरी सुरक्षा
इन तीन चीज़ों के बिना पैनल कभी इंस्टॉल न करें।
सिर्फ़ अपने एड्रेस से एक्सेस:
location /db-panel {
allow 203.0.113.10;
deny all;
}
वेब सर्वर के लेवल पर एक अतिरिक्त पासवर्ड:
apt install -y apache2-utils
htpasswd -c /etc/nginx/.htpasswd admin
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
और तीसरी चीज़ — सिर्फ़ HTTPS: Let's Encrypt सर्टिफ़िकेट। इसके बिना डेटाबेस का पासवर्ड सादे टेक्स्ट में भेजा जाता है।
सबसे बढ़िया विकल्प: पैनल बाहर से खुला ही न हो
अगर आपका एड्रेस डायनैमिक है, तो पैनल को बाहर से खोलें ही नहीं। SSH टनल सेट करें और डेस्कटॉप क्लाइंट — DBeaver, TablePlus, HeidiSQL — से काम करें:
ssh -L 3307:127.0.0.1:3306 root@YOUR_ADDRESS -N
जानकारी — रिमोट एक्सेस। इस तरह बाहर से SSH के अलावा कुछ भी खुला नहीं रहता, और पैनल की आपको ज़रूरत ही नहीं पड़ती।
आम गलतियाँ
| लक्षण | कारण |
|---|---|
ब्राउज़र adminer.php डाउनलोड कर रहा है | इस पाथ से PHP जुड़ा नहीं है |
#1045 Access denied | डेटाबेस यूज़र किसी दूसरे होस्ट से बाइंड है |
| बड़ा डंप इम्पोर्ट करते समय बीच में रुक जाता है | upload_max_filesize और max_execution_time बहुत कम हैं; कंसोल से इम्पोर्ट करना बेहतर है |
लॉग में /phpmyadmin पर हज़ारों रिक्वेस्ट | रूटीन स्कैनिंग — पैनल बंद होना चाहिए |
| पैनल चल रहा है, लेकिन साइट नहीं | पैनल की भारी रिक्वेस्ट से साझा PHP-FPM पूल खत्म हो गया है |
बड़े डेटाबेस पर वेब पैनल से डंप टाइम-आउट हो जाते हैं। असली बैकअप कंसोल से शेड्यूल पर बनाया जाता है — डेटाबेस बैकअप।