تثبيت 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، من المهم أن نفهم الفرق بين البيئتين:
-
LAMP:
-
L: Linux – نظام التشغيل الأساسي الذي يعمل عليه الخادم.
-
A: Apache – خادم الويب الشهير.
-
M: MySQL – قاعدة البيانات المُدارة.
-
P: PHP – لغة البرمجة الديناميكية التي تعمل جنبًا إلى جنب مع Apache.
-
-
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، يمكن بناء الصورة باستخدام الأمر التالي:
bashdocker build -t mylamp .
3. تشغيل الحاوية
بعد بناء الصورة، يمكن تشغيل الحاوية باستخدام الأمر:
bashdocker 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:
bashdocker build -t mylemp .
3. تشغيل الحاوية
لتشغيل الحاوية الخاصة بـ LEMP، استخدم الأمر التالي:
bashdocker run -d -p 8080:80 --name lemp-container mylemp
ستتمكن الآن من الوصول إلى Nginx عبر متصفحك من خلال http://localhost:8080.
إدارة MySQL/MariaDB داخل Docker
بغض النظر عن كونك تستخدم بيئة LAMP أو LEMP، سيكون لديك حاجة للتفاعل مع قاعدة البيانات MySQL أو MariaDB. يمكن إدارة قاعدة البيانات باستخدام واجهة سطر الأوامر أو أدوات مثل PhpMyAdmin.
1. إنشاء حاوية MySQL
bashdocker 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:
yamlversion: '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، استخدم الأمر التالي:
bashdocker-compose up -d
الفوائد الرئيسية لاستخدام Docker مع LAMP وLEMP
-
المرونة: يوفر Docker مرونة كبيرة في إعداد وتشغيل التطبيقات عبر بيئات مختلفة.
-
القابلية للتوسع: يمكن إضافة خدمات أخرى مثل Redis أو Memcached بسهولة.
-
الاستدامة: يمكن تحديث الخدمات بسهولة دون التأثير على بيئة التشغيل العامة.
-
الاستقلالية: تعمل الحاويات بشكل مستقل عن النظام الأساسي مما يقلل من مشاكل التوافق.
الخلاصة
إن تثبيت بيئات LAMP وLEMP باستخدام Docker هو خيار ممتاز للمطورين الذين يسعون إلى تبسيط عمليات تطوير الويب. يوفر Docker بيئة معزولة وقابلة للتخصيص، مما يجعل إدارة الخوادم والتطبيقات أسهل وأكثر مرونة. باستخدام Docker، يمكن للمطورين إنشاء بيئات تشغيل متوافقة مع التطبيقات وتحديثها أو استبدالها بسهولة دون الحاجة إلى إعادة بناء النظام بأكمله.

