المدونة

دروس وأدلة وأخبار المنتج.

المطورون

ما هما حزمتا LAMP وLEMP؟

3 نوفمبر 2026 5 د للقراءة
مشاركة هذه المقالة

LAMP وLEMP اسمان لأربع قطع برمجية تقدّم موقعًا عاديًا: Linux وخادم ويب وقاعدة بيانات وPHP. الحرف A في LAMP يرمز إلى Apache، والحرف E في LEMP يرمز إلى Nginx (ويُنطق "engine-x"، ومن هنا جاء الحرف E). وفي الحزمتين قاعدة البيانات هي MySQL أو MariaDB ولغة البرمجة هي PHP.

تعمل تطبيقات PHP مثل WordPress وWooCommerce وJoomla على هذه الحزمة. توصي WordPress.org بـ Apache أو Nginx كخادم ويب، فكلاهما أساس سليم. واختيارك لأحدهما لا يحسم هل يعمل تطبيقك، وإنما يغيّر طريقة كتابة الإعدادات.

كيف تعمل الحزمة؟

الطبقةLAMPLEMPالدور
نظام التشغيلLinuxLinuxالأساس الذي يعمل عليه كل شيء
خادم الويبApacheNginxيرد على طلبات المتصفحات
قاعدة البياناتMySQL أو MariaDBMySQL أو MariaDBيخزّن المنشورات والمستخدمين والطلبات
اللغةPHPPHP عبر PHP-FPMيبني الصفحة

يسير الطلب عبر الحزمة هكذا:

  1. يرسل المتصفح طلبًا إلى نطاقك. فيصل إلى المنفذ 80 أو 443 في خادمك.
  2. يستلم خادم الويب الطلب. فإذا كان الطلب لصورة أو ملف CSS قدّم الملف بنفسه.
  3. وإذا كان الطلب لملف PHP، سلّمه خادم الويب إلى PHP فيشغّل PHP الشيفرة.
  4. يستعلم PHP قاعدة البيانات عند الحاجة ويبني الصفحة. ثم يعيد خادم الويب الصفحة إلى المتصفح.

إذا لم تُفتح صفحة، فافحص الطبقات بالترتيب: systemctl status nginx وsystemctl status phpX.Y-fpm وsystemctl status mariadb. يرمز X.Y إلى إصدار PHP لديك (8.3 على Ubuntu 24.04)، وفي LAMP تستخدم apache2 بدل nginx. وحيثما وجدت خدمة لا تعمل، فهناك تبدأ المشكلة.

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

  • يقرأ Apache ملفات .htaccess ولا يقرؤها Nginx. وفي Nginx تُكتب القواعد في إعدادات الخادم.
  • لا يشغّل Nginx الـ PHP داخله. بل يمرر الطلبات إلى خدمة منفصلة تسمى PHP-FPM. ويمكن لـ Apache تشغيل PHP داخله أو عبر PHP-FPM.
  • مجلدات الإعداد مختلفة. على Ubuntu يستخدم Apache المجلد /etc/apache2 ويستخدم Nginx المجلد /etc/nginx.
  • استخدام الذاكرة يحدده عدد عمّال PHP-FPM وإعدادات قاعدة البيانات أكثر مما يحدده اختيار خادم الويب.
  • لا أحدهما أفضل بوضوح. كلاهما واسع الاستخدام، فيحسم الأمر الدليل الذي تتبعه وعاداتك.

MySQL أم MariaDB؟

MariaDB قاعدة بيانات مفتوحة المصدر انفصلت عن MySQL، وأوامرهما وعملاؤهما متوافقة إلى حد بعيد. وتقبل صفحة المتطلبات الرسمية في WordPress كليهما، فراجع الحد الأدنى الحالي للإصدارات هناك. وعلى Ubuntu تُثبَّت الحزمة mariadb-server بأمر واحد. وبحسب وثائق MariaDB، يستخدم حساب root مصادقة unix_socket افتراضيًا منذ الإصدار 10.4. على الخادم، يكفي تنفيذ sudo mariadb. ولا حاجة إلى كلمة مرور root.

إعداد LEMP على Ubuntu

هذه الخطوات لـ Ubuntu وDebian. اتصل أولًا بالخادم عبر SSH. تستخدم الأمثلة example.com كاسم نطاق، فاستبدله بنطاقك.

  1. حدّث قائمة الحزم: sudo apt update
  2. ثبّت الحزم: sudo apt install nginx mariadb-server php-fpm php-mysql. الإصدارات المثبّتة هي الموجودة في مستودع الحزم.
  3. عزّز أمان قاعدة البيانات: sudo mariadb-secure-installation. أجب بنعم عن إزالة المستخدمين المجهولين وإزالة قاعدة الاختبار ومنع دخول root عن بُعد.
  4. أنشئ مجلد الموقع: sudo mkdir -p /var/www/example
  5. افتح ملفًا بالأمر sudo nano /etc/nginx/sites-available/example والصق هذا السطر: server { listen 80; server_name example.com www.example.com; root /var/www/example; index index.php index.html; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/phpX.Y-fpm.sock; } }
  6. يعرض ls /run/php/ الاسم الحقيقي للمقبس (socket). اكتبه مكان phpX.Y-fpm.sock.
  7. فعّل الموقع: sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/
  8. اختبر الإعداد وطبّقه: sudo nginx -t ثم sudo systemctl reload nginx
  9. إذا كنت تستخدم ufw، فافتح المنفذين 80 و443: sudo ufw allow 80/tcp وsudo ufw allow 443/tcp. وتأكد من أن منفذ SSH (22) مفتوح.

لاختبار عمل PHP، اكتب ملف اختبار:

echo '<?php phpinfo();' | sudo tee /var/www/example/info.php

إذا لم يكن النطاق يشير إلى الخادم بعد، فاختبر من داخل الخادم بالأمر curl -H 'Host: example.com' http://127.0.0.1/info.php. وفور أن تراه يعمل، احذف الملف: sudo rm /var/www/example/info.php. فتلك الصفحة تعرض تفاصيل خادمك للجميع.

قاعدة بيانات لتطبيقك

افتح صدفة قاعدة البيانات بالأمر sudo mariadb وأنشئ قاعدة بيانات ومستخدمًا منفصلين لكل تطبيق. اختر كلمة مرور قوية بنفسك:

CREATE DATABASE exampledb CHARACTER SET utf8mb4;

CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'a-strong-password';

GRANT ALL ON exampledb.* TO 'exampleuser'@'localhost';

تُدخل هذه القيم الثلاث (قاعدة البيانات والمستخدم وكلمة المرور) في شاشة إعداد WordPress. ولكي تعمل الروابط الدائمة في WordPress، استبدل =404 في سطر Nginx بـ /index.php?$args.

ما الذي يتغير في LAMP؟

لحزمة Apache، تثبّت الحزم هكذا:

sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql

تعرّف الموقع ضمن /etc/apache2/sites-available وتفعّله بالأمر sudo a2ensite example. وللروابط الدائمة نفّذ sudo a2enmod rewrite وأعد تشغيل Apache بالأمر sudo systemctl restart apache2. ولكي تسري ملفات .htaccess عليك ضبط AllowOverride All لمجلد الموقع. ويمكنك أيضًا تشغيل Apache مع PHP-FPM، وهو يناسب نموذج event القائم على الأحداث. وخطوات قاعدة البيانات هي نفسها في LEMP.

بعد التثبيت

  • أضف شهادة HTTPS. Let's Encrypt مجانية، ويعمل Certbot مع Nginx وApache.
  • عيّن مالك المجلدات التي يحتاج خادم الويب إلى الكتابة فيها. على Ubuntu وDebian يعمل خادم الويب بالمستخدم www-data: ‏sudo chown -R www-data:www-data /var/www/example.
  • ثبّت التحديثات بانتظام بالأمر sudo apt update && sudo apt upgrade. بعد التثبيت، تحديثات نظام التشغيل والبرامج مسؤوليتك.
  • انسخ قاعدة البيانات احتياطيًا على حدة بالأمر mariadb-dump. النسخة الاحتياطية اليومية للخادم مشمولة في السعر، لكن ينبغي أن تحتفظ بنفسك بنسخة إضافية من البيانات المهمة.

إذا أردت الحزمة جاهزة للاستخدام، فاطلب بخيار LAMP أو LEMP من Seturack فتثبّت نفسها. وإذا كل ما تحتاجه WordPress، فخيار WordPress VPS يكفي: يستغرق الإعداد نحو 4-5 دقائق، ويظهر العنوان وكلمة المرور في اللوحة.

جاهز على Seturack: LAMP, LEMP.

التعليقات0

لا توجد تعليقات بعد

كن أول من يشارك رأيه.

الانضمام إلى النقاش

يرجى تسجيل الدخول أو إنشاء حساب لترك تعليق.

لا تفوت أي مقالة

تلق أحدث الشروحات والأدلة وأخبار منتجاتنا في بريدك الوارد.

تم اشتراكك في نشرتنا البريدية.