#مقدمة حزمة LEMP هي مجموعة من البرامج التي يمكن استعمالها من أجل خدمة صفحات الويب وتطبيقات الويب ديناميكيا. و هو اختصار الذي يصف نظام التشغيل لينكس مع خادم الويب Nginx و يتم تخزين البيانات في قاعدة بيانات MySQL وتتم معالجة الصفحات الديناميكية بواسطة PHP. في هذا الدليل، سوف نتعرف على كيفية تثبيت حزمة LEMP في خادم أبونتو 14.04. و سنقوم بشرح كيفية الحصول على بقية المكونات وتشغيلها.
#المتطلبات الأساسية قبل أن تبدأ مع هذا الدليل، يجب أن يكون لديك حساب مستخدم منفصل غير جذر non-root معد مسبقا على الخادم الخاص بك. يمكنك تعلم كيفية القيام بذلك من خلال استكمال الخطوات 1-4 في إعداد الخادم الأولي لأوبونتو 14.04
بعد ذلك سجل الدخول إلى الخادم الخاص بك مع هذا المستخدم. بعدها ستصبح جاهزا لبدء الخطوات الموضحة في هذا الدليل.
#الخطوة الأولى - تثبيت خادم ويب Nginx من أجل عرض صفحات الويب لزوار موقعنا سنستخدم خادم Nginx وهو خادم ويب حديث ومتطور.
ولأن هذا البرنامج يمكنك الحصول عليه من مستودعات أبونتو الافتراضية فهذا يعني أننا يمكن استخدام أمر apt لإكمال التثبيت.
وبما أن هذه المرة الأولى التي نستخدم فيها أمر apt في هذه الدورة فإنه يجب أن نبدأ بتحديث فهرس المستودع المحلي لدينا. ثم يمكننا تثبيت الخادم بالشكل التالي:
في أوبونتو 14.04، يتم إعداد Nginx ليصبح جاهزا للعمل بعد التثبيت مباشرة.
ويمكنك معرفة إذا كان الخادم يعمل أم لا عن طريق الوصول إلى اسم نطاق الخادم الخاص بك أو عنوان IP العام في متصفح الويب.
إذا لم يكن لديك اسم نطاق يؤشر لخادمك و لا تعرف عنوان IP العام لخادمك يمكنك العثور عليه عن طريق كتابة أحد الأوامر التالية في سطر الأوامر:
إذا كنت ترى الصفحة المذكورة أعلاه، فإنك قمت بتثبيت Nginx بنجاح.
#الخطوة الثانية - تثبيت MySQL لإدارة بيانات الموقع الآن لدينا خادم الويب يمكن تشغيله ، لهذا حان الوقت لتثبيت ميسكل (MySQL ) وهي نظام إدارة قواعد البيانات.وبشكل مبسط تقوم بتنظيم وتوفير إمكانية للوصول إلى قواعد البيانات حيث يقوم موقعنا بتخزين البيانات فيها. مرة أخرى، يمكننا استخدام apt للحصول وتثبيت برنامجنا. هذه المرة سنقوم أيضا بتثبيت سلسلة من الحزم الأخرى "المساعدة" التي سوف تساعدنا في التواصل بين المكونات مع بعضها البعض:
#الخطوة الثالثة – تثبيت معالج PHP
الآن لدينا Nginx لخدمة صفحاتنا و MySQL لتخزين وإدارة البيانات، ولكن ما زلنا بحاجة إلى شيء لتوصيل هذاين الجزأين معا وتوليد المحتوى الديناميكي. يمكننا استخدام PHP لهذا الغرض.
وبما أن Nginx لا يحتوي على قدرة لمعالجة PHP بشكل أصلي مثل بعض خوادم الويب الأخرى، سنحتاج إلى تثبيت معالج php5-fpm والتي ترمز إلى "مدير عملية fastCGI". و سنخبر خادم Nginx بأن يمرر طلبات PHP إلى هذا البرنامج لمعالجتها. يمكننا تثبيت هذه الوحدة وسنقوم أيضا بتثبيت حزم مساعدة إضافية من شأنها أن تسمح PHP بالتواصل مع قاعدة البيانات في الخلفية. ستقوم عملية التثبيت بجلب ملفات PHP الأساسية اللازمة. للقيام بذلك يجب كتابة:
لدينا الآن عناصر PHP مثبتة، ولكن نحن بحاجة إلى إجراء تغيير طفيف لجعل الإعدادات لدينا أكثر أمنا.
افتح ملف إعدادات php5-fpm مع امتيازات root:
ما نتطلع إليه في هذا الملف هو المتغير الذي يحدد cgi.fix_pathinfo. حيث ستجدده محددا كتعليق بواسطة (;) ومضبوط إلى "1" بشكل افتراضي.
هذا المتغير غير آمن للغاية لأنه يخبر PHP بأن تشغل أقرب (في التسمية) ملف تجده إذا لم تجد ملف PHP المتطابق. هذا في الأساس من شأنه أن يسمح للمستخدمين بصياغة طلبات PHP بطريقة تسمح لهم بتنفيذ البرامج النصية التي لا ينبغي السماح لهم بتنفيذها.
وألان سوف نقوم بتغيير uncommenting في السطر وكتابة "0" مثل هذا:
احفظ وأغلق الملف عند الانتهاء.
نحن بحاجة فقط إلى إعادة تشغيل معالج PHP بكتابة:
وهذا سيفعّل التغيير الجديد.
#الخطوة الرابعة - تكوين Nginx لاستخدام معالج PHP الآن، لدينا كل المكونات المطلوبة مثبتة لكن الإعداد الوحيد الذي ما يزال عليك القيام به هو إخبار Nginx بأن يستخدم معالج PHP للمحتوى الديناميكي.
ونحن نفعل ذلك على مستوى كتلة الخادم (كتلة الخادم تشابه virtual hosts في أباتشي). من أجل فتح كتلة إعدادات Nginx :
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
}
}
- -أولا، نحن بحاجة إلى إضافة خيارindex.php كقيمة الأولى من التوجيه index للسماح بتشغيل ملفات index PHP عند طلب الدليل.
- كذلك نحتاج لتعديل التوجيه server_name للإشارة إلى اسم نطاق الخادم أو عنوان IP العام.
- يتضمن ملف التكوين الفعلي على إعدادات لمعالجة الطلبات عند وقوع خطأ. سنقوم بإزالة التعليق لتفعيل هذه الإعدادات.
- ولتجهيز PHP الفعلي، سوف نحتاج إلى إزالة علامات التعليق من قسم آخر.و سنحتاج أيضا إلى إضافة توجيه try_files للتأكد من Nginx لا يمرر طلبات سيئة لمعالج PHP لدينا.
التغييرات التي نحتاجها ستكون على النحو التالي:
root /usr/share/nginx/html;
index index.php index.html index.htm;
server_name server_domain_name_or_IP;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
عندما تقوم بهذه التغييرات المذكورة أعلاه، يمكنك حفظ وإغلاق الملف.
قم بإعادة تشغيل Nginx لتفعيل التغييرات الجديدة:
#الخطوة الخامسة - إنشاء ملف PHP لاختبار الإعدادات ينبغي الآن أن تكون حزمة LEMP جاهزة. ولكن يجب عمل اختبار للتأكد من أن Nginx يمكنه تسليم ملفات .php بشكل صحيح لمعالج PHP.
يمكننا القيام بذلك عن طريق إنشاء ملف PHP في مجلد الجذرroot (المحدد في كتلة الإعدادات) لدينا.لهذا ينبغي فتح ملف جديد باسم info.php ضمن مجلد الجذر الخاص بك في محرر النصوص الخاص بك:
ويمكننا أن نكتب هذا في ملف جديد. حيث أن هذا رمز PHP صالح يرجع بمعلومات منسقه حول خادمنا:
عند الانتهاء، احفظ وأغلق الملف.
والآن، يمكنك زيارة هذه الصفحة في متصفح الويب الخاص بك عن طريق زيارة اسم نطاق الخادم الخاص بك أو عنوان IP العام تليها/info.php:
إذا رأيت الصفحة التي تبدو مثل هذه، فإنك قد قمت بإعداد وتجهيز PHP مع Nginx بنجاح.
وبعد اختبار هذه، من الأفضل إزالة الملف الذي قمت بإنشائه لأنه يمكن أن يعطي للمستخدمين غير المصرح بهم بعض التلميحات حول التكوين الخاص بك الذي قد يساعدهم في محاولة اختراقه. و يمكنك دائما تجديد هذا الملف في حالة كنت بحاجة إليه في وقت لاحق.
الآن، قم بإزالة الملف عن طريق كتابة:
#خاتمة الآن أصبحت تمتلك حزمة LEMP جاهزة على خادم أوبونتو 14.04 وهذا يعطيك أساسا مرنا جدا لخدمة محتوى الويب للزائرين.
هذه المقالة مترجمة من الانجليزية.