phpMyAdmin وAdminer: لوحات قواعد البيانات
كيف تثبّت لوحة ويب لقاعدة بيانات على VDS وتؤمّنها حتى لا تصبح باباً للدخول: الوصول بكلمة مرور، وتقييد العنوان، والبدائل.
آخر تحديث 23 أغسطس 2026
لوحة الويب مريحة للتعديلات العارضة وعرض الجداول. وهي أيضًا السبب الأكثر شيوعًا لاختراق الخوادم: إذ تُستهدف عناوين /phpmyadmin بهجمات القوة الغاشمة تلقائيًا، ويمنح نموذج تسجيل الدخول وصولًا مباشرًا إلى البيانات.
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 المشترك استُنفد بطلبات اللوحة الثقيلة |
تنتهي مدة النسخ الاحتياطية عبر لوحة الويب مع قواعد البيانات الكبيرة. النسخة الاحتياطية الحقيقية تُنشأ من الطرفية وفق جدول زمني — نسخ قاعدة البيانات الاحتياطية.