أستمع الى المقال

إذا كنت تبحث عن خادم ويب آمن وسريع ومرن بأداء عالٍ ويستخدم الحد الأدنى من موارد النظام (الذاكرة ووحدة المعالجة المركزية) يتطلب موارد أقل بكثير من Apache، سيكون lighttpd (lighty) ما تبحث عنه في الغالب.

Lighttpd هو خادم ويب مجاني مفتوح المصدر يدعم العديد من المزايا. على سبيل المثال لا الحصر (FastCGI و CGI و Auth و Output-Compression و URL-Rewriting وغيرها). هذا يجعل Lighttpd أحد المرشحين الجادين للنظر فيه عندما يتعلق الأمر باختيار خادم الويب وأغراض استضافة الويب. إذ تم تصميم Lighthttpd وفق نموذج معالجة الطلب غير المتزامن، يشبه Nginx في هذه النقطة. ولكن هناك مشكلة واحدة – يعمل Lighthttpd مع نواة معالجه واحدة، هذا يعني: إذا كان لديك جهاز أكثر قدرة، فسوف يتجاهل نوى وحدة المعالجة المركزية الأخرى.

كونه يتطلب موارد أقل بكثير من Apache، يجعله مناسب بشكل خاص للأحمال الكبيرة جدًا أو الأنظمة الضعيفة جدًا. تم تطويره بواسطة Jan Kneschke ويمكن توسيعه بوحدات FastCGI، على سبيل المثال، تم تحسين بنية Lighttpd للتعامل مع حجم كبير من الاتصالات المتوازية التي تعتبر ضرورية لتطبيقات الويب عالية الأداء. ويدعم خادم الويب FastCGI و CGI و SCGI لربط البرامج بخادم الويب. كما أنه يدعم تطبيقات الويب المكتوبة بعدد لا يحصى من لغات البرمجة مع إيلاء اهتمام خاص لـ PHP و Python و Perl و Ruby.

تثبيت Lighttpd Web Server على Ubuntu 22.04 مع PHP

المتطلبات:

  • حاسب مجهز بنظام Ubuntu 22.04 أو 20.04 وأي توزيعة أخرى تعتمد على Debian مثل Linux Mint.
  • ذاكرة بحجم 1G على الاقل.
  • صلاحيات المدير والمستخدم sudo.
  • 2 CPU core.

تأكد من أن جميع حزم النظام لديك محدثة عن طريق تشغيل أوامر apt التالية في الجهاز.

sudo apt update && sudo apt upgrade -y 

بشكل افتراضي، يتوفر Lighttpd في مستودعات Ubuntu. لتثبيت خادم الويب Lighttpd، قم بتشغيل الأمر التالي:

sudo apt install lighttpd

لنتأكد من التثبيت ورقم إصدار Lighttpd.

lighttpd -version

الآن، لنقم بتمكين الخدمة عند بدء تشغيل النظام تلقائيًا:

sudo systemctl start lighttpd
sudo systemctl enable lighttpd

من ثم لنقم بفحص حالة lighttpd:

systemctl status lighttpd

التعامل مع الوحدات

لتمكين وحدة من سطر الأوامر، أدخل الأمر أدناه متبوعًا باسم الوحدة. على سبيل المثال، لتمكين rewrite، استخدم الأمر:

sudo lighttpd-enable-mode rewrite

لتمكين CGI مثلا استخدم الامر التالي:

sudo lighty-enable-mod cgi

تمكين المحتوى الديناميكي

لا يقدم خادم Lighttpd دعمًا افتراضيًا للمحتوى الديناميكي المكتوب عبر PHP أو Ruby أو Python أو أي لغات أخرى مدعومة. إذ نحتاج إلى السماح للخادم بتنفيذ البرامج النصية عن طريق تمكين وحدة FastCGI لحل هذه المشكلة.

سنوضح كيفية تمكين دعم PHP بالسرد التالي:

بداية سنقوم بتثبيت PHP بكل امتداداته. لنقم بتثبيت إصدار PHP الافتراضي المتاح في مستودعات Ubuntu:

sudo apt install php php-cgi php-cli php-fpm php-curl php-gd php-mysql php-mbstring zip unzip 

بعد انتهاء التحميل والتثبيت، يمكن اختبار رقم إصدار php بالأمر التالي:

php --version

بعد ذلك، سنقوم بتمكين وحدة fastCGI على خادم Lighttpd:

sudo lighttpd-enable-mod fastcgi
sudo lighttpd-enable-mod fastcgi-php

سنقوم بتحرير ملف تكوين PHP وتحديد المنفذ 9001 :

sudo nano /etc/php/8.1.2/fpm/pool.d/www.conf

نبحث عن السطر التالي:

listen = /run/php/php8.1.2-fpm.sock

نغيرة الى listen = 127.0.0.1:9001، وبعد حفظ التغيرات، نعيد تشغيل خدمة fmp على النحو التالي:

sudo service php8.1.2-fpm restart

الخطوة التالية هي تحرير ملف تكوين FastCGI:

sudo nano /etc/lighttpd/conf-enabled/15-fastcgi-php.conf

ابحث عن السطرين التاليين:

"bin-path" => "/usr/bin/php-cgi",
"socket" => "/var/run/lighttpd/php.socket"

استبدلهما بالتالي:

"host" => "127.0.0.1",
"port" => "9001"

بعد حفظ التغيرات قم بإعادة تشغيل خدمة fpm:

sudo service lighttpd restart
sudo service php8.1.2-fpm restart

يمكن لـ lighttpd الآن التعامل مع المحتوى الديناميكي الخاص بـ Php.

إلغاء تثبيت / إزالة حزمة lighttpd

لإلغاء تثبيت حزمة lighttpd استخدم الأوامر التالية:

sudo apt remove lighttpd
sudo apt autoclean && sudo apt autoremove
هل أعجبك المحتوى وتريد المزيد منه يصل إلى صندوق بريدك الإلكتروني بشكلٍ دوري؟
انضم إلى قائمة من يقدّرون محتوى إكسڤار واشترك بنشرتنا البريدية.