-->

ADS

طيور للمعلوماتية , تقنية تعليمية و معلوماتية
Toyour Info


تشغيل عدّة مواقع ووردبريس في 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: wordpress
ports:
- "8081:80"
environment:
WORDPRESS_DB_HOST: db1
WORDPRESS_DB_USER: wp1
WORDPRESS_DB_PASSWORD: wp1pass
WORDPRESS_DB_NAME: wp1db
volumes:
- wp1_data:/var/www/html
db1:
image: mysql:5.7
environment:
MYSQL_DATABASE: wp1db
MYSQL_USER: wp1
MYSQL_PASSWORD: wp1pass
MYSQL_ROOT_PASSWORD: root1
volumes:
- db1_data:/var/lib/mysql
# ----- الموقع 2 -----
wp2:
image: wordpress
ports:
- "8082:80"
environment:
WORDPRESS_DB_HOST: db2
WORDPRESS_DB_USER: wp2
WORDPRESS_DB_PASSWORD: wp2pass
WORDPRESS_DB_NAME: wp2db
volumes:
- wp2_data:/var/www/html
db2:
image: mysql:5.7
environment:
MYSQL_DATABASE: wp2db
MYSQL_USER: wp2
MYSQL_PASSWORD: wp2pass
MYSQL_ROOT_PASSWORD: root2
volumes:
- db2_data:/var/lib/mysql
# ----- phpMyAdmin -----
phpmyadmin:
image: phpmyadmin
ports:
- "8090:80"
environment:
PMA_ARBITRARY: 1 # يسمح بالاتصال بأي سيرفر MySQL في الشبكة
depends_on:
- db1
- db2
volumes:
wp1_data:
db1_data:
wp2_data:
db2_data:

◀️ شغّل الكل:

docker-compose up -d

3️⃣ استخدام phpMyAdmin لإدارة كل القواعد

  1. افتح المتصفّح على:

    http://localhost:8090
    
  2. في شاشة تسجيل الدخول:

    • Server: اكتب اسم حاوية قاعدة البيانات التي تريدها، مثل db1 أو db2.
      (Docker يوفّر DNS داخلي يعرّف كل حاوية باسمها).

    • Username / Password:

      • للموقع الأوّل: wp1 / wp1pass

      • للموقع الثاني: wp2 / wp2pass

      • أو استخدم حساب الجذر: root1 مع كلمة السر root1 لـ db1، والآخر لـ db2.

  3. بعد الدخول، يمكنك استعراض الجداول، نسخ البيانات، أو تشغيل استعلامات لكل قاعدة على حدة.

لتبديل قاعدة البيانات ببساطة اخرج وسجّل الدخول مع اسم السيرفر الآخر (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.