لامب: باختصار هو مجموعة برمجيات مفتوحة المصدر تستخدم لإنشاء وإدارة خوادم الويب، لتمكين تشغيل مواقع ويب تفاعلية، مثل الموقع الذي تتصفحه الآن.. عادة تشير كلمة لامب إلى أسماء البرمجيات المكونة للمجموعة، لينكس، أباتشي، ماي إس كيو إل، بي إتش بي. (Linux, Apache, MySQL, PHP)
سنحاول خلال هذه الأسطر تثبيت وإعداد خادم ويب بالاعتماد على مجموعة لامب، لاحظ عنوان الموضوع يقول على دبيان، ما يعني أننا حققنا الجزء الأول من المجموعة وهو لينكس LAMP، إذن لنواصل العمل على بقية المكونات.
يشير حرف A تقليديا إلى Apache إلى أنه يمكن إحلال خوادم ويب أخرى بدله كـ Nginx أو lighttpd ..
حرف P أيضا لا يشير إلى PHP فقط، يمكن أن تكون لغات أخرى كـ Python أو Perl ..
وأيضا الحرف M يشير إلى الماي إس كيو إل، لكننا سنستخدم في هذا الشرح MariaDB كبديل.
قبل البدء في التثبيت، يجب التأكد من تحديث النظام مع ملاحظة أنه يجب تنفيذ جميع الأوامر بصلاحية الجذر (root).
تحديث النظام
apt update && apt dist-upgrade
تثبيت ماريا دي بي (MariaDB)
الآن نثبت MariaDB باستخدام الأمر التالي:
apt install mariadb-server mariadb-client
مباشرة بعد الانتهاء من تثبيت خادم MariaDB، يجب عليك تغيير كلمة مرور الجذر الخاصة به*.
/usr/bin/mysqladmin -u root password 'enter-your-new-password-here'
* هذه الخطوة غير ضرورية إذا طلب منك المثبت إدخال كلمة مرور للمستخدم الجذر أثناء التثبيت.
لا يجب أبدا استخدام حساب الجذر وكلمة مروره عند تشغيل قواعد البيانات. حساب الجذر هو حساب مميز بسبب امتلاكه جميع الصلاحيات لذا يجب أن يستخدم هذا الحساب للإجراءات الإدارية فقط.
سوف تحتاج لإنشاء حساب مستخدم منفصل للاتصال بقواعد بيانات MariaDB الخاصة بك عبر برامج (سكربتات) الـ PHP. يمكنك إضافة مستخدمين إلى قاعدة بيانات MariaDB باستخدام لوحة تحكم مثل phpMyAdmin حيث تمكنك من إنشاء أو تعيين أذونات قاعدة بيانات للمستخدمين بكل سهولة.
بعد الانتهاء من تثبيت MariaDB، يوجد سكربت مساعد لحماية هذا الخادم، يعمل هذا السكربت بشكل تفاعلي ويساعدك على تحسين إعدادات الحماية لخادمك من خلال الإجابة بنعم أو لا على بعض الأسئلة البسيطة.
يمكن استدعاءه عبر الأمر التالي:
mysql_secure_installation
تثبيت أباتشي (Apache2)
يمكن تثبيت خادم الويب أباتشي على النحو التالي:
apt install apache2 apache2-doc
لتمكين تعدد المستخدمين لخادم الويب نفعل وحدة userdir عبر:
a2enmod userdir
إعداد وحدة تعدد المستخدمين userdir، عبر المسار:
nano /etc/apache2/mods-enabled/userdir.conf
المحتوى
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>
</IfModule>
لإنشاء دليل تصفح للمستخدم
لاحظ: ينفذ الأمر كمستخدم وليس كجذر أو نحدد اسم المستخدم المعني بدل المتغير $USER مع تغيير ملكية المجلد لنفس المستخدم
mkdir /home/$USER/public_html
تغيير مجموعة الدليل وإعادة تشغيل خادم الأباتشي (ننفذ كجذر)
chgrp www-data /home/[username]/public_html
service apache2 restart
[username]: تغير باسم المستخدم.
* لا تنسى استبدال اسم المستخدم لاسم المستخدم الخاص بك في السطر السابق.
إذا واجهت أي خطأ يتعلق بالصلاحيات أثناء محاولة الوصول إلى دليل المستخدم عبر أباتشي تأكد من صلاحيات دليل المستخدم /home/[username] أنها 755. إذا كانت الصلاحيات خاطئة يمكنك تصحيحها عبر الأمر:
chmod 755 /home/[username]
مرحلة اختبار الـ Apache2
استعرض الرابط التالي: http://localhost/
إذا ظهرت الصفحة الافتراضية لخادم الأباتشي مع عبارة It works! و بعض الإرشادات فتهانينا خادم أباتشي يعمل لديك بشكل جيد.
لنتأكد الآن من أن الخادم مفعل ويعمل عبر أدلة المستخدمين أيضا وذلك بوضع بعض محتوى وليكن ملفا نصيا أو صفحة html كمثال في دليل المستخدم ~/public_html ونرى النتائج على http://localhost/~username، حيث username هو إسم المستخدم الخاص بك.
إذا تم استعراض المحتوى فتهانينا مجددا ميزة تعدد المستخدمين تعمل على الخادم.
تثبيت بي إتش بي (PHP)
تثبيت PHP كجزء من LAMP في دبيان بسيط جدا، فقط نفذ هذا الأمر كجذر:
apt install php php-mysql libapache2-mod-php
إذا كنت تفضل بيرل بدل بي إتش بي، يجب أن يكون السطر كالتالي:
apt install perl libapache2-mod-perl2
أما إذا كنت تفضل بايثون، فسيكون كالتالي:
apt install python libapache2-mod-python
ملف إعداد خادم الأباتشي هو : /etc/apache2/apache2.conf
يمكنك تحرير هذا الملف عند الحاجة. بالنسبة لتشغيل معظم التطبيقات البسيطة لست في حاجة لتعديله ، كما أنه ليس من الضروري تعديله، لأنه يمكن إعداد معظم الأشياء باستخدام conf.d.
لتكون قادرا على تشغيل بي إتش بي من أدلّة المستخدمين تأكد من أن الملف التالي معد بشكل صحيح.
وذلك بإهمال الأسطر التالية بإضافة علامة المربع قبلها
nano /etc/apache2/mods-available/php7.0.conf
المحتوى
# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_flag engine Off
# </Directory>
#</IfModule>
مرحلة اختبار الـPHP
لاختبار عمل PHP، حرر الملف:
nano /var/www/html/test.php
وأدرج التعليمة البرمجية التالية داخل الملف.
<?php
phpinfo();
?>
بعد تخزين التعديل ، جرب تصفح الملف بإستخدام مستعرض الإنترنت بتوجيهه للصفحة التالية:
http://localhost/test.php
* الملف السابق يعرض معلومات عن الخادم وإصدار الـ PHP المركب ودواله ووحداته ….الخ
إذا تم عرض هذه المعلومات فتهانينا بنجاح تشغيل البي إتش بي على خادمك الجديد!
يمكنك إجراء نفس الإختبار بوضع ملف الاختبار في دليل المستخدم داخل public_html بدل وضعه بدليل /var/www/html/ داخل النظام. وذلك بإستعراضه عبر الرابط التالي:
http://localhost/username/test.php
ربما تحتاج أيضا إلى تثبيت phpMyAdmin لإعداد قواعد البيانات والتعامل معها بسهولة:
للتثبيت ننفذ التالي:
apt install phpmyadmin
الولوج للوحة التحكم يتم عبر الرابط
http://localhost/phpmyadmin/
ملاحظة: منذ الإصدار 5.7 من MySQL وأيضا MariaDB تم تغيير نموذج الحماية الخاص بالمستخدم الجذر root، بحيث لا تستطيع الولوج لحساب الروت إلا عبر حساب الروت بالنظام أو جلسة sudo، من هنا لا يمكن الولوج لحساب الروت الخاص بخادم قاعدة البيانات عبر phpMyAdmin.
على الرغم من أنه لا يزال تعديل خيار الولوج الخاص بالجذر متاحا ويمكن إعادة طريقة الولوج القديمة إلا أنه لا ينصح بذلك. والحل الأمثل لذلك هو إضافة مستخدم يملك صلاحيات إنشاء قواعد بيانات ومستخدمين جدد واستخدامه في phpMyAdmin.
للولوج لـ MariaDB بصلاحية الجذر
mysql -u root
لإضافة مستخدم بجميع الصلاحيات (حدد إسم المستخدم بدل NewUser و كلمة مرور بدل NewPassword)
CREATE USER 'NewUser'@'localhost' IDENTIFIED BY 'NewPassword';
GRANT ALL PRIVILEGES ON *.* TO 'NewUser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
كما يمكن إضافة هذه الصلاحيات إلى المستخدم phpmyadmin بدل إنشاء مستخدم جديد عبر:
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
إلى هنا ما ذكر في المقال من إعدادات كاف لإنجاز خادم ويب لامب يعتمد دبيان نظاما و أباتشي خادم وماريا دي بي مدير قواعد بيانات و بي إتش بي كلغة!.
تم الشرح بأستخدام نطاق localhost ما يقصد به إمكانية تنفيذ الخطوات على جهاز كمبيوتر محلي
علما أن تثبيت لامب على خادم مستقل أو VPS يتم بنفس الخطوات، بعد الإتصال بحساب ssh
فقط نغير localhost باسم نطاق مربوط بالخادم أو عنوان IP الخاص به.