ديف أوبس

تثبيت LAMP وLEMP باستخدام Docker

تثبيت LAMP أو LEMP بسهولة باستخدام Docker

تعتبر بيئات تطوير الخوادم من الأساسيات التي يحتاجها العديد من المطورين لتطوير التطبيقات المختلفة سواء كانت تطبيقات ويب أو مواقع ديناميكية. توفر بيئات مثل LAMP وLEMP أدوات مفتوحة المصدر تعمل معاً لبناء بيئة تطوير متكاملة على الخوادم. في هذا المقال، سنناقش كيفية تثبيت بيئة LAMP (Linux, Apache, MySQL, PHP) وLEMP (Linux, Nginx, MySQL/MariaDB, PHP) باستخدام Docker، وهي طريقة فعالة وبسيطة لإنشاء بيئة تطوير خوادم دون الحاجة إلى إعدادات معقدة على النظام الأساسي. سنتناول خطوات تنفيذ هذه البيئات باستخدام Docker، بالإضافة إلى شرح فوائدها وكيفية العمل بها.

ما هو Docker؟

Docker هو منصة مفتوحة المصدر تساعد المطورين على إنشاء وتشغيل التطبيقات داخل حاويات. هذه الحاويات (Containers) هي بيئات معزولة تحتوي على جميع مكونات التطبيق اللازمة لتشغيله مثل الملفات والمكتبات والإعدادات. يُسهل Docker من إدارة البيئات الموزعة وتشغيل التطبيقات في بيئات موحدة ومتسقة عبر مختلف الأنظمة التشغيلية. تعتبر الحاويات خيارًا ممتازًا لتشغيل بيئات مثل LAMP وLEMP بشكل فعال وسريع.

الفروق بين LAMP وLEMP

قبل التطرق إلى كيفية تثبيت LAMP وLEMP باستخدام Docker، من المهم أن نفهم الفرق بين البيئتين:

  1. LAMP:

    • L: Linux – نظام التشغيل الأساسي الذي يعمل عليه الخادم.

    • A: Apache – خادم الويب الشهير.

    • M: MySQL – قاعدة البيانات المُدارة.

    • P: PHP – لغة البرمجة الديناميكية التي تعمل جنبًا إلى جنب مع Apache.

  2. LEMP:

    • L: Linux – نظام التشغيل الأساسي.

    • E: Nginx – خادم الويب الذي يُعد بديلًا لـ Apache.

    • M: MySQL أو MariaDB – قاعدة البيانات المُدارة.

    • P: PHP – لغة البرمجة الديناميكية التي تعمل جنبًا إلى جنب مع Nginx.

بينما كلا البيئتين يحتويان على مكونات مماثلة، فإن Nginx في LEMP يُعتبر خيارًا أسرع وأكثر مرونة في التعامل مع الزيارات الكثيفة مقارنة بـ Apache في بيئة LAMP.

لماذا استخدام Docker؟

استخدام Docker في إعداد بيئات LAMP أو LEMP يوفر عدة مزايا، مثل:

  • سهولة النشر: يمكن نشر البيئة على أي خادم يدعم Docker بغض النظر عن النظام التشغيلي.

  • الاستقلالية: الحاويات تعمل بشكل معزول عن النظام الأساسي، مما يقلل من مشاكل التوافق.

  • الإدارة السهلة: يمكن إدارة الحاويات بسهولة باستخدام أوامر Docker، مثل بدء وإيقاف الحاويات، والتحديثات، والنسخ الاحتياطي.

  • قابلية التوسع: يمكن إضافة مكونات أخرى مثل Redis أو Memcached في المستقبل بسهولة.

كيفية تثبيت LAMP باستخدام Docker

في هذا الجزء من المقال، سوف نتعرف على كيفية تثبيت بيئة LAMP باستخدام Docker.

1. إنشاء ملف Dockerfile

أولاً، نحتاج إلى إنشاء Dockerfile يحتوي على التعليمات اللازمة لبناء الحاوية الخاصة بالبيئة.

Dockerfile
# اختيار صورة Linux الأساسية FROM ubuntu:latest # تثبيت Apache, PHP, MySQL RUN apt-get update && apt-get install -y \ apache2 \ mysql-server \ php \ php-mysql \ libapache2-mod-php \ && apt-get clean # السماح بفتح المنفذ 80 (للـ Apache) EXPOSE 80 # تشغيل Apache عند تشغيل الحاوية CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
2. بناء الصورة باستخدام Docker

بعد إنشاء Dockerfile، يمكن بناء الصورة باستخدام الأمر التالي:

bash
docker build -t mylamp .
3. تشغيل الحاوية

بعد بناء الصورة، يمكن تشغيل الحاوية باستخدام الأمر:

bash
docker run -d -p 8080:80 --name lamp-container mylamp

ستتمكن الآن من الوصول إلى Apache عبر متصفحك من خلال http://localhost:8080.

كيفية تثبيت LEMP باستخدام Docker

تثبيت بيئة LEMP باستخدام Docker يشبه إلى حد كبير تثبيت LAMP، لكننا سنستبدل Apache بـ Nginx، وسنستخدم MySQL أو MariaDB.

1. إنشاء ملف Dockerfile لبيئة LEMP
Dockerfile
# اختيار صورة Linux الأساسية FROM ubuntu:latest # تثبيت Nginx, PHP, MySQL/MariaDB RUN apt-get update && apt-get install -y \ nginx \ mysql-server \ php-fpm \ php-mysql \ && apt-get clean # السماح بفتح المنفذ 80 (لـ Nginx) EXPOSE 80 # تشغيل Nginx عند تشغيل الحاوية CMD ["/usr/sbin/nginx", "-g", "daemon off;"]
2. بناء الصورة

بعد إنشاء Dockerfile لبيئة LEMP، قم ببناء الصورة كما فعلنا مع LAMP:

bash
docker build -t mylemp .
3. تشغيل الحاوية

لتشغيل الحاوية الخاصة بـ LEMP، استخدم الأمر التالي:

bash
docker run -d -p 8080:80 --name lemp-container mylemp

ستتمكن الآن من الوصول إلى Nginx عبر متصفحك من خلال http://localhost:8080.

إدارة MySQL/MariaDB داخل Docker

بغض النظر عن كونك تستخدم بيئة LAMP أو LEMP، سيكون لديك حاجة للتفاعل مع قاعدة البيانات MySQL أو MariaDB. يمكن إدارة قاعدة البيانات باستخدام واجهة سطر الأوامر أو أدوات مثل PhpMyAdmin.

1. إنشاء حاوية MySQL
bash
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
2. ربط الحاويات

يمكن ربط الحاوية الخاصة بـ MySQL بحاوية Apache أو Nginx باستخدام Docker Compose، وهو أداة تتيح لك إدارة تطبيقات متعددة الحاويات بسهولة.

استخدام Docker Compose لإدارة LAMP أو LEMP

Docker Compose هو أداة تسمح لك بتحديد وتشغيل تطبيقات متعددة الحاويات. يمكننا استخدام Docker Compose لتشغيل LAMP أو LEMP معًا في بيئة متكاملة.

1. إعداد docker-compose.yml

إليك مثال لملف docker-compose.yml لبيئة LAMP:

yaml
version: '3' services: apache: image: mylamp ports: - "8080:80" mysql: image: mysql:latest environment: MYSQL_ROOT_PASSWORD: root volumes: - mysql-data:/var/lib/mysql volumes: mysql-data:
2. تشغيل الحاويات باستخدام Docker Compose

لتشغيل البيئات الخاصة بك باستخدام Docker Compose، استخدم الأمر التالي:

bash
docker-compose up -d

الفوائد الرئيسية لاستخدام Docker مع LAMP وLEMP

  1. المرونة: يوفر Docker مرونة كبيرة في إعداد وتشغيل التطبيقات عبر بيئات مختلفة.

  2. القابلية للتوسع: يمكن إضافة خدمات أخرى مثل Redis أو Memcached بسهولة.

  3. الاستدامة: يمكن تحديث الخدمات بسهولة دون التأثير على بيئة التشغيل العامة.

  4. الاستقلالية: تعمل الحاويات بشكل مستقل عن النظام الأساسي مما يقلل من مشاكل التوافق.

الخلاصة

إن تثبيت بيئات LAMP وLEMP باستخدام Docker هو خيار ممتاز للمطورين الذين يسعون إلى تبسيط عمليات تطوير الويب. يوفر Docker بيئة معزولة وقابلة للتخصيص، مما يجعل إدارة الخوادم والتطبيقات أسهل وأكثر مرونة. باستخدام Docker، يمكن للمطورين إنشاء بيئات تشغيل متوافقة مع التطبيقات وتحديثها أو استبدالها بسهولة دون الحاجة إلى إعادة بناء النظام بأكمله.