السبت، 4 سبتمبر 2004

البرامج اللازمة لأي مزود مواقع

حسناً ... عودة إلى سلسلة موقعك في غرفتك، في الدروس السابقة تحدثنا عن إيجابيات وسلبيات استضافة الموقع في المنزل، وعن المشكلة الأساسية التي ستواجهنا وهي شركة الاتصالات حيث الخطوط المخصصة للاستضافة مرتفعة السعر وبالتالي غير عملية وشرحنا البدائل وسلبياتها، ثم تحدثنا عن مكونات المزود وقمنا بعرض ثلاث خيارات للمزود وبينا مميزاتها وسلبياتها ثم تحدثنا عن أنظمة التشغيل الخاصة باستضافة المواقع، من المفترض الآن (نظرياً) أن نكون قد قمنا بتثبيت نظام لينكس أو أحد أنظمة BSD على الحاسوب الذي سنتعلم عليه، ما هي الخطوة التالية بعد تثبيت النظام؟

الخطوة التالية هي تثبيت البرامج الخاصة لاستضافة المواقع، فالموقع يحتاج على الأقل إلى مزود للمواقع، والمزودات كثيرة، وقد تحتاج إلى مزود خاص لقواعد البيانات، وقد تحتاج إلى لغة برمجة معينة، وكذلك برنامج لإدارة المزود عن بعد والكثير من البرامج الأخرى، من المهم هنا أن تكتب قائمة بالوظائف التي تريد أن يؤديها المزود، حتى تعرف ما هي البرامج التي ستحتاجها، من الخطأ أن تقوم بتثبيت برامج كثيرة لمجرد أنك ترى شركات الاستضافة تقدمها، الكثير من البرامج الموجودة في لوحة التحكم في موقعي لم أستخدمها قط لأنني لا أحتاجها، وإضافة الكثير من البرامج يعني زيادة فرصة وجود ثغرة ما في برنامج ما يستطيع أي شخص أن يخترق المزود من خلالها.

مزود المواقع

البرنامج الأساسي لأي مزود مواقع! وظيفة هذا المزود هو عرض الصفحات أو إرسال صفحات الموقع، وهي في الغالب ملفات HTML، حتى صفحات PHP وASP تنتج في النهاية صفحات HTML، ويتم إرسال هذه الصفحات باستخدام بروتوكول HTTP إلى الزائر الذي يستخدم في الغالب متصفحاً للمواقع، وهناك العديد من المزودات التي تقوم بهذا العمل.

من أشهرها Apache والذي ستجد الكثير من المواقع والكتب تتحدث عن تثبيته وإعداده وتأمينه من الثغرات والهجمات، هناك مزود آخر هو thttpd يتميز بصغر حجمه ويقدم الموقع نسخاً أصغر منه أيضاً! ويمكنك إستخدام مزود Monkey HTTP ذو الاسم الغريب، يتميز بصغر حجمه وسهولة إعداده، وهناك العديد من المزودات التي تعمل في نظام لينكس أو BSD، نظام ماك يأتي جاهزاً مع Apache ويمكن إعداده وتشغيله بسهولة، أما ويندوز فيمكنك استخدام IIS من مايكروسوفت أو Apache إن أردت وهناك مزودات تجارية لكنها غالية السعر ومخصصة للشركات بشكل أساسي.

إختر أحد هذه المزودات وقم بتركيبه وإعداده، Apache كما أسلفت الأكثر شهرة وانتشاراً ويمكنك أن تجد عشرات المقالات التي تشرح كيفية تركيبه وإعداده، لذلك هو بالنسبة لي الخيار الأول، وكل هذه المزودات تقوم بنفس العمل تقريباً والاختلاف الأساسي بينها هو في قوة الأداء وفي سهولة الإعداد وكذلك في سهولة تركيب برامج إضافية مثل مزودات البريد وقواعد البيانات، ولتوضيح هذه الاختلافات نحتاج إلى عشرات المقالات :-)

مزود قاعدة البيانات

إذا كنت تحتاج إلى قاعدة بيانات فعليك أن تقوم بتركيب مزود خاص لها، وهناك برامج كثيرة تؤدي هذا الغرض، من أشهرها MySQL وهي الأكثر انتشاراً وشهرة، وهناك مزودات أخرى مثل PostgreSQL وSQLite، والمزود الأخير يتميز بصغر حجمه ويناسب المواقع الصغيرة والمتوسطة وهو يناسب المبرمجين أيضاً، يمكن دمج SQLite ضمن أي برنامج وهذه ميزة غير متوفرة في بقية المزودات التي يجب أن تعمل بشكل منفصل.

وإذا كنت تريد واجهة للتحكم بقواعد MySQL من خلال متصفحك فعليك باستخدام برنامج phpMyAdmin الذي يوفر واجهة سهلة وقوية لإدارة قواعد البيانات، أما قواعد بيانات SQLite فيمكنك فيتوفر لها برنامج آخر هو SQLiteManager.

لكن قبل أن تركب أي مزود لقواعد البيانات عليك أن تفكر جيداً في احتياجاتك، لنقسم المواقع إلى ثلاثة أقسام، القسم الأول هي المواقع التفاعلية، مثل المنتديات، المتاجر الإلكترونية، محركات البحث، المواقع الإخبارية، هذه المواقع والخدمات تحتاج بالتأكيد إلى قواعد بيانات سريعة وقوية، القسم الثاني من المواقع هي المواقع شبه التفاعلية، وهي مواقع لا تحدث صفحاتها كثيراً ربما مرة أو مرتين كل يوم، أو بضعة مرات في الأسبوع، مثل هذه المواقع "قد" تحتاج إلى قواعد بيانات، ومن أمثالها مواقع Blog مثل موقعي قبل أن أستخدم برنامج WordPress، أو مثل مواقع المعلومات التي تنشر بضعة مقالات كل أسبوع، لذلك يجب تحليل احتياجات الموقع قبل استخدام أي مزود لقواعد البيانات.

القسم الثالث من المواقع وهي المواقع الساكنة وهذه بالتأكيد لا تحتاج إلى قواعد بيانات ومن أمثالها مواقع المؤسسات التي لا يتم تحديثها إلا مرات قليلة كل شهر أو حتى كل سنة.

شخصياً أفضل استخدام MySQL لأنها الأكثر انتشاراً وشهرة وتتوفر لها مئات المقالات والمواقع والكتب.

لغات البرمجة

إذا قررت أنك تحتاج مزود قاعدة بيانات يجب عليك أن تقرر ما هي اللغة التي ستتعامل مع قاعدة البيانات وتربط بين القاعدة والموقع، قاعدة البيانات لن تعمل لوحدها، كالسيارة بلا سائق، فلا بد من اختيار السائق الذي سيقود موقعك، أعني لغة البرمجة، ولغات برمجة المواقع كثيرة، منها Perl وPHP وColdFusion وهي لغة من إصدار شركة Macromedia وليست من البرامج الحرة، بالطبع يجب ألا أنسى ASP من مايكروسوفت وJSP من شركة Sun.

قد تسألني: أي لغات البرمجة أفضل؟ وأنا بدوري أسألك: ما هي أفضل سيارة في العالم؟ لا توجد إجابة محددة وواضحة لهذا السؤال، هذه اللغات أدوات فاستخدم الأداة التي تشعر بأنها الأفضل لك، ولا يعني ذلك أن بقية الأدوات أقل شأناً، وإن أصررت على أن أنصحك بشيء فأنصحك بلغة PHP، لماذا؟ لأنها منتشرة بشكل كبير، سهلة التعلم، وهناك مئات الكتب والمواقع التي تقدم شروحات ودروس لهذه اللغة وهي مخصصة أصلاً لبرمجة المواقع، يمكنك إستخدام لغات برمجة أخرى مثل Python أو حتى C أو أي لغة، الأمر في النهاية يعتمد عليك أنت وحدك، ما هي احتياجاتك؟ وما هي اللغة المفضلة لديك؟

مزود البريد

قد ترغب في استخدام البريد الإلكتروني، ومزودات البريد تسمى mail transfer agent أو اختصاراً MTA أو تسمى بكل بساطة mail server، ووظيفة هذه البرامج هي نقل الرسائل الإلكترونية من حاسوب لآخر، ومن أقدم المزودات التي تقدم هذه الخدمة هو مزود Sendmail الذي بدأ مشواره في بداية الثمانينات من القرن الماضي، وهناك مزودات أخرى مثل Postfix وExim وغيرها كثير، وحقيقة ليس لدي الكثير من المعلومات أو الخبرة في مجال مزودات البريد، وهذا كل ما أعرفه فاعذروني على جهلي، لعل أحدكم يستطيع تزويدنا بتفاصيل تقنية أكثر فائدة مما كتبته أنا.

أهذا كل شيء؟

نعم ولا! إذا قمت بتركيب مزود للمواقع، وآخر لقواعد البيانات، واخترت لغة للبرمجة، واخترت مزوداً للبريد، ثم بدأت في إنشاء موقعك، عليك أن تشتري عنواناً ما (www.name.com) وتربطه بموقعك، ولربطه فأنت بحاجة إلى مزود DNSوهي كثيرة، ومن أشهرها BIND، وقد تحتاج إلى أن تدير موقعك عن بعد عن طريق حاسوب آخر فعليك عندها أن تستخدم برنامج SSH (اختصاراً لي Secure shell) مثل OpenSSH وإذا أردت إدارة موقعك من خلال المتصفح فعليك باستخدام برامج مثل Cpanel أو Host4NET.

طبعاً لا يجب عليك تركيب هذه البرامج كلها إلا في حالة أنك ستقوم فعلاً باستضافة موقعك في غرفتك، وهكذا نكون قد غطينا معظم البرامج اللازمة لإنشاء مزود متكامل لاستضافة المواقع.