السلام عليكم ورحمة الله وبركاته
سأتحدث في هذا الموضوع عن تركيب واهم اعدادات خدمة الويب سيرفر (httpd) يدوياً ، بعيداً عن استخدام لوحات التحكم ، مع العلم بانه يمكنك عمل كل هذا بضغطة زر واحدة من أحد لوحات التحكم كـ cpanel او webmin ، ان كنت غير مهتم بالمعرفة ركب أحد هذه البرامج واستخدمها ولا داعي لقراءة الموضوع ، هذا الشرح ينطبق تماماً على ردهات ولا سيما الانظمة الاخرى بمراعاة الفروق ان وجدت.
كل توزيعة لينوكس الان تحتوي على خدمة الويب سيرفر كخدمة اساسية من خدمات النظام تنتظر التفعيل فقط ، ان لم تكن موجودة في نظامك فقم بالبحث عنها وتركيبها كتركيب أي برنامج ، ثم قم بتشغيل الخدمة ، و اجعلها تعمل عند تشغيل السيرفر في كل مره ، بهذين الامرين
الامر الاول يقوم بتشغيلها حالياً ، والاخر يجعلها on عند تشغيل النظام
بعد ذلك قم بتحرير ملف الاعداد الرئيسي هنا
أول شي نقوم بتحديدة هو DocumentRoot وهذه القيمة يجب ان تشير الى مجلد سيحتوي جميع ملفات الموقع بمافيها الاندكس وأي محتويات اخرى تظهر للزائر
افتراضياً ستكون القيمة هكذا
أو أي كانت ...
بمعنى ان مجلد /var/www/html هو المجلد الذي سيتحوي على ملفات الموقع التي تظهر للزائر ، وتستطيع تغييره الى أي مكان اخر ، ولكن يفضل ابقائه كما هو لاننا سنتحدث بعد قليل عن عمل VirualHosts وعمل public_html لكل يوزر لدينا.
لذا اترك الاعداد هذا كما هو وتابع القراءة معي.
الان سنقوم بعمل ملف باسم index.html داخل ذلك المجلد لنتأكد ان الخدمة تعمل كما يجب ، علماً ان المجلد الافتراضي يحتوي على اندكس جاهزه ، لكن سنكتب بها عبارة أفضل
قم بانشاء الملف index.html في المسار /var/www/html يدوياً أو من خلال هذا الامر
ثم قم بزيارة العنوان http://localhost ، او من خلال الامر التالي اذا كنت لا تستعمل الواجهة الرسومية
سترى عبارة LinuxAC وهذا يعني أن الخدمة تعمل كما يجب.
الان سنعرف كيفية عمل host جديد أو بمعنى آخر virtual host وهذا اسلوب شركات الاستضافة بحيث ان السيرفر الواحد ممكن يسكن أكثر من موقع ، وكل موقع له DocumentRoot خاص فيه وهو مجلد public_html الموجود في بيت المستخدم هنا
هذا المجلد سيحتوي على ملفات الموقع التي تظهر للزائر بمافيها الاندكس والملفات الاخرى ، ولكن كيف يمكننا زيارة الموقع ورؤية الملفات ؟
لهذا سنقوم باعداد ملف httpd.conf السابق ، وسنضع فيه VirtualHost يحتوي جميع المعلومات المطلوبة ليعمل الموقع الجديد بشكل صحيح
/etc/httpd/conf/httpd.conf
اذا كان لدينا اكثر من موقع على نفس السيرفر علينا تحديد الاي بي للسيرفر من خلال الخيار
والان نقوم بإعداد موقع آخر غير localhost وليكن ex4mple.com
لاعداد موقع ex4mple.com على سيرفري اقوم باضافة التالي
كما ترى في أول سطر وضعت الاي بي للسيرفر
الان نقوم بانشاء مجلد الـ DocumentRoot وهو /var/www/ex4mple بالامر
ثم نقوم باعادة تشغيل الخدمة بأحد الاوامر التالية
يجب عليك الان اعداد الاي بي والهوست في ملف /etc/hosts، لن يعمل معك ان لم تقم بهذه الخطوة بشكل صحيح
ثم قم بانشاء ملف اندكس في المجلد
الان قم بتصفح الموقع ex4mple.com ، ستجد عبارة Welcome To ex4mple ، والدومين الجديد يعمل في السيرفر محلياً فقط
و لعمل فحص والتأكد من صحة المدخلات يمكنك استخدام الامر
ليفحص جميع VirtualHosts الموجودة في ملف الاعداد
الان نريد تفعيل public_html ليكون متوفر لكل المستخدمين بحيث انه يوجد في الهوم تبع اليوزر ، ليضع فيه ملفات موقعه التي تظهر للزائر
نحدد القيمة public_html للخيار UserDir في ملف الاعداد السابق
ونقوم بازالة العبارة "UserDir disable" بوضع علامة التعليق # قبلها
طبعاً مجلد public_html نقوم بانشائه في المكان المناسب
ولتصفح موقع أحد المستخدمين سيكون عبر الرابط التالي
هناك الكثير من الخيارات والمودلز التي يصعب حصرها لتشعبها في خدمة الويب سيرفر httpd الا ان هذه الامور تعتبر مقدمة بسيطة يجب ان يعرفها مدير النظام لاعداده
لحماية مجلد من خلال ملف htaccess ، لنفرض اننا نريد ان نحمي المجلد /var/www/html/ باسم مستخدم وكلمة مرور
نذهب الى نفس المجلد وننشئ ملف اسمه htaccess. ونضع فيه مايلي
ثم نكتب الامر التالي لانشاء يوزر
سيطلب منا باسوورد ، واعادة كتابتة
ثم نضع الخيار AllowOverride AuthConfig داخل البلوك <Directory "/var/www/html"> في ملف httpd.conf
الان نقوم باعادة تشغيل الخدمة بأحد الاوامر التالية
الان قم بزيارة السيرفر المحلي http://localhost/ ستجد مايلي

لنعمل نوع اخر من الحماية ، وهو تحديد الوصول من اي بي او هوست معين ، لنفترض اني أريد ان اجعل موقعي غير مسموح الوصول اليه الا من خلال الهوست example.com افعل ذلك بالخطوات التالية
نضع مايلي داخل البلوك <Directory "/var/www/html">
الان نقوم باعادة تشغيل الخدمة بأحد الاوامر التالية
جرب زيارته محلياً ، وجرب زيارته من خلال جهاز اخر في نفس الشبكة ، وتحسس الفرق
لدعم بروتوكل (https) التشفير SSL في سيرفري المحلي أقوم بتعريفه في ملف الاعداد بواسطة الخيارات التالية
الان نقوم باعادة تشغيل الخدمة بأحد الاوامر التالية بأحد الاوامر السابقة!
ثم قم بزيارة السيرفر المحلي من خلال بروتوكول https بدلا من http
سترى

تستطيع عمل الكثير والكثير ولا تنسى ان هناك موديلز خاصة بالحماية وبعضها خاص بماهو خاص به
الى هنا انتهي من كتابة هذه المقدمة عن خدمة الويب سيرفر ، لمن اراد التعمق عليه قراءة التعليقات الموجودة في ملف الاعداد بالاضافة الى استخدام الامر man httpd ولا يمنع عن البحث في قوقل شي.
سأتحدث في هذا الموضوع عن تركيب واهم اعدادات خدمة الويب سيرفر (httpd) يدوياً ، بعيداً عن استخدام لوحات التحكم ، مع العلم بانه يمكنك عمل كل هذا بضغطة زر واحدة من أحد لوحات التحكم كـ cpanel او webmin ، ان كنت غير مهتم بالمعرفة ركب أحد هذه البرامج واستخدمها ولا داعي لقراءة الموضوع ، هذا الشرح ينطبق تماماً على ردهات ولا سيما الانظمة الاخرى بمراعاة الفروق ان وجدت.
كل توزيعة لينوكس الان تحتوي على خدمة الويب سيرفر كخدمة اساسية من خدمات النظام تنتظر التفعيل فقط ، ان لم تكن موجودة في نظامك فقم بالبحث عنها وتركيبها كتركيب أي برنامج ، ثم قم بتشغيل الخدمة ، و اجعلها تعمل عند تشغيل السيرفر في كل مره ، بهذين الامرين
كود:
service httpd start chkconfig httpd on
بعد ذلك قم بتحرير ملف الاعداد الرئيسي هنا
كود:
/etc/httpd/conf/httpd.conf
افتراضياً ستكون القيمة هكذا
كود:
DocumentRoot "/var/www/html"
بمعنى ان مجلد /var/www/html هو المجلد الذي سيتحوي على ملفات الموقع التي تظهر للزائر ، وتستطيع تغييره الى أي مكان اخر ، ولكن يفضل ابقائه كما هو لاننا سنتحدث بعد قليل عن عمل VirualHosts وعمل public_html لكل يوزر لدينا.
لذا اترك الاعداد هذا كما هو وتابع القراءة معي.
الان سنقوم بعمل ملف باسم index.html داخل ذلك المجلد لنتأكد ان الخدمة تعمل كما يجب ، علماً ان المجلد الافتراضي يحتوي على اندكس جاهزه ، لكن سنكتب بها عبارة أفضل
قم بانشاء الملف index.html في المسار /var/www/html يدوياً أو من خلال هذا الامر
كود:
echo "LinuxAC" > /var/www/html/index.html
كود:
links http://localhost
الان سنعرف كيفية عمل host جديد أو بمعنى آخر virtual host وهذا اسلوب شركات الاستضافة بحيث ان السيرفر الواحد ممكن يسكن أكثر من موقع ، وكل موقع له DocumentRoot خاص فيه وهو مجلد public_html الموجود في بيت المستخدم هنا
كود:
/home/user/public_html
لهذا سنقوم باعداد ملف httpd.conf السابق ، وسنضع فيه VirtualHost يحتوي جميع المعلومات المطلوبة ليعمل الموقع الجديد بشكل صحيح
/etc/httpd/conf/httpd.conf
اذا كان لدينا اكثر من موقع على نفس السيرفر علينا تحديد الاي بي للسيرفر من خلال الخيار
كود:
NameVirtualHost 10.0.0.3
لاعداد موقع ex4mple.com على سيرفري اقوم باضافة التالي
كود:
<VirtualHost 10.0.0.3> DocumentRoot /var/www/ex4mple <-- المجلد الذي سيحوي ملفات الموقع ServerName ex4mple.com DirectoryIndex index.* </VirtualHost>
الان نقوم بانشاء مجلد الـ DocumentRoot وهو /var/www/ex4mple بالامر
كود:
mkdir /var/www/ex4mple
كود:
service httpd restart /etc/init.d/httpd restart
كود:
echo "10.0.0.3 ex4mple.com" >> /etc/hosts
كود:
echo "Welcome To ex4mple" > /var/www/ex4mple/index.html
و لعمل فحص والتأكد من صحة المدخلات يمكنك استخدام الامر
كود:
httpd -S
الان نريد تفعيل public_html ليكون متوفر لكل المستخدمين بحيث انه يوجد في الهوم تبع اليوزر ، ليضع فيه ملفات موقعه التي تظهر للزائر
نحدد القيمة public_html للخيار UserDir في ملف الاعداد السابق
كود:
UserDir public_html
طبعاً مجلد public_html نقوم بانشائه في المكان المناسب
ولتصفح موقع أحد المستخدمين سيكون عبر الرابط التالي
هناك الكثير من الخيارات والمودلز التي يصعب حصرها لتشعبها في خدمة الويب سيرفر httpd الا ان هذه الامور تعتبر مقدمة بسيطة يجب ان يعرفها مدير النظام لاعداده
لحماية مجلد من خلال ملف htaccess ، لنفرض اننا نريد ان نحمي المجلد /var/www/html/ باسم مستخدم وكلمة مرور
نذهب الى نفس المجلد وننشئ ملف اسمه htaccess. ونضع فيه مايلي
كود:
AuthName "This is Secured" AuthType basic AuthUserFile /etc/httpd/conf/mypasswd require valid-user
كود:
htpasswd -mc /etc/httpd/conf/mypasswd LinuxAC
ثم نضع الخيار AllowOverride AuthConfig داخل البلوك <Directory "/var/www/html"> في ملف httpd.conf
الان نقوم باعادة تشغيل الخدمة بأحد الاوامر التالية
كود:
service httpd restart /etc/init.d/httpd restart

لنعمل نوع اخر من الحماية ، وهو تحديد الوصول من اي بي او هوست معين ، لنفترض اني أريد ان اجعل موقعي غير مسموح الوصول اليه الا من خلال الهوست example.com افعل ذلك بالخطوات التالية
نضع مايلي داخل البلوك <Directory "/var/www/html">
كود:
Order Allow.Deny Allow from .example.com
كود:
service httpd restart /etc/init.d/httpd restart
لدعم بروتوكل (https) التشفير SSL في سيرفري المحلي أقوم بتعريفه في ملف الاعداد بواسطة الخيارات التالية
كود:
SSLEngine on SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
ثم قم بزيارة السيرفر المحلي من خلال بروتوكول https بدلا من http
سترى


تستطيع عمل الكثير والكثير ولا تنسى ان هناك موديلز خاصة بالحماية وبعضها خاص بماهو خاص به
الى هنا انتهي من كتابة هذه المقدمة عن خدمة الويب سيرفر ، لمن اراد التعمق عليه قراءة التعليقات الموجودة في ملف الاعداد بالاضافة الى استخدام الامر man httpd ولا يمنع عن البحث في قوقل شي.
تعليق