تشغيل عدّة مواقع ووردبريس في Docker، مع phpMyAdmin واحدة
إليك كيفية تشغيل عدّة مواقع ووردبريس في Docker، مع phpMyAdmin واحدة تتحكّم في جميع قواعد البيانات لكل موقع، خطوة بخطوة وبوضوح:
1️⃣ مخطط الحلّ
| عنصر | وظيفة |
|---|---|
| wp1 + db1 | الموقع الأوّل وقاعدته MySQL |
| wp2 + db2 | الموقع الثاني وقاعدته MySQL |
| phpmyadmin | واجهة رسومية موحّدة لإدارة كل قواعد البيانات |
-
سنفعّل متغيّر
PMA_ARBITRARY=1 داخل phpMyAdmin حتى يسمح لك بالاتصال بأي حاوية MySQL في نفس شبكة Docker.
2️⃣ ملف docker-compose.yml نموذجي
version: '3.9'services:# ----- الموقع 1 -----wp1:image: wordpressports:- "8081:80"environment:WORDPRESS_DB_HOST: db1WORDPRESS_DB_USER: wp1WORDPRESS_DB_PASSWORD: wp1passWORDPRESS_DB_NAME: wp1dbvolumes:- wp1_data:/var/www/htmldb1:image: mysql:5.7environment:MYSQL_DATABASE: wp1dbMYSQL_USER: wp1MYSQL_PASSWORD: wp1passMYSQL_ROOT_PASSWORD: root1volumes:- db1_data:/var/lib/mysql# ----- الموقع 2 -----wp2:image: wordpressports:- "8082:80"environment:WORDPRESS_DB_HOST: db2WORDPRESS_DB_USER: wp2WORDPRESS_DB_PASSWORD: wp2passWORDPRESS_DB_NAME: wp2dbvolumes:- wp2_data:/var/www/htmldb2:image: mysql:5.7environment:MYSQL_DATABASE: wp2dbMYSQL_USER: wp2MYSQL_PASSWORD: wp2passMYSQL_ROOT_PASSWORD: root2volumes:- db2_data:/var/lib/mysql# ----- phpMyAdmin -----phpmyadmin:image: phpmyadminports:- "8090:80"environment:PMA_ARBITRARY: 1 # يسمح بالاتصال بأي سيرفر MySQL في الشبكةdepends_on:- db1- db2volumes:wp1_data:db1_data:wp2_data:db2_data:
◀️ شغّل الكل:
docker-compose up -d
3️⃣ استخدام phpMyAdmin لإدارة كل القواعد
-
افتح المتصفّح على:
http://localhost:8090 -
في شاشة تسجيل الدخول:
-
Server: اكتب اسم حاوية قاعدة البيانات التي تريدها، مثل
db1أوdb2.
(Docker يوفّر DNS داخلي يعرّف كل حاوية باسمها). -
Username / Password:
-
للموقع الأوّل:
wp1/wp1pass -
للموقع الثاني:
wp2/wp2pass -
أو استخدم حساب الجذر:
root1مع كلمة السرroot1لـdb1، والآخر لـdb2.
-
-
-
بعد الدخول، يمكنك استعراض الجداول، نسخ البيانات، أو تشغيل استعلامات لكل قاعدة على حدة.
لتبديل قاعدة البيانات ببساطة اخرج وسجّل الدخول مع اسم السيرفر الآخر (
db2) أو استخدم قائمة “Servers” في الشريط الجانبي إن ظهرت.
4️⃣ نقاط يجب الانتباه لها
| نصيحة | السبب |
|---|---|
| استخدم منـافذ وردبريس مختلفة (8081, 8082…) | كي تفتح كل موقع في المتصفح بدون تضارب |
| لا تفتح منـافذ MySQL للخارج | الأمان؛ يكفي الوصول الداخلي عبر phpMyAdmin |
| لكل موقع اسم مستخدم/كلمة مرور/قاعدة بيانات خاصة | عزل البيانات ومنع الالتباس |
| يمكنك إضافة مواقع إضافية بسهولة | انسخ قسم wp/db وعدّل الأسماء والمنافذ |
5️⃣ أسئلة شائعة
س: هل يمكن ربط phpMyAdmin مباشرةَ بقواعد البيانات دون إعادة تسجيل الدخول؟
ج: يمكنك ضبط متغيّرات مثل PMA_HOST, PMA_USER, PMA_PASSWORD لقيمة واحدة افتراضية، لكن بما أنّ لدينا قواعد متعددة أفضل ترك PMA_ARBITRARY=1 وتُغيّر Server عند الحاجة.
س: هل يمكن استخدام نسخة MySQL واحدة لجميع المواقع؟
ج: نعم، أنشئ قاعدة (wp1db, wp2db) في حاوية واحدة. لكنّ عزل كل موقع بحاوية MySQL مستقل أسهل للنسخ الاحتياطي والتحديث.
هكذا تدير بسهولة عدّة مواقع ووردبريس وكل قواعد بياناتها عبر phpMyAdmin واحد في Docker.
اترك تعليقك