Skip to content

10. الملاحق - أدوات تطوير الويب

نوضح هنا أين يمكن العثور على الأدوات المجانية التي تسمح بتطوير الويب باستخدام Java و PHP و ASP و asp.net وكيفية تثبيتها. وقد تطورت إصدارات بعض الأدوات، وقد لا تكون التفسيرات الواردة هنا مناسبة للإصدارات الأحدث. وسيتعين على القارئ التكيف مع ذلك... :

  • متصفح حديث قادر على عرض XML. تم اختبار أمثلة الدورة التدريبية باستخدام Internet Explorer 6.
  • إصدار حديث من JDK (مجموعة أدوات تطوير Java). يتضمن الإصدار JDK المكون الإضافي Java 1.4 للمتصفحات، مما يتيح لهذه الأخيرة عرض تطبيقات Java الصغيرة التي تستخدم الإصدار JDK 1.4.
  • بيئة تطوير Java لكتابة برامج Java الصغيرة. هنا هو JBuilder 7.
  • خوادم الويب: Apache، PWS (خادم الويب الشخصي، CassiniTomcat.
    • يمكن استخدام Apache لتطوير تطبيقات الويب بلغة PERL (Practical Extracting and Reporting Language) أو PHP (Personal Home Page)
    • يمكن استخدام PWS لتطوير تطبيقات الويب بلغة ASP (Active Server Pages) أو PHP على منصات Windows. ويتيح Cassini التطوير بلغة ASP.NET.
    • يُستخدم Tomcat لتطوير تطبيقات الويب باستخدام برامج Java servlets أو صفحات JSP (Java Server pages)
  • نظام إدارة قواعد البيانات: MySQL
  • EasyPHP: أداة تجمع بين خادم الويب Apache ولغة PHP و SGBD MySQL

10.1. خوادم الويب، المتصفحات، لغات البرمجة النصية

  1. خوادم الويب الرئيسية
  • أباتشي (لينكس، ويندوز)
  • Interner Information Server IIS (NTPersonal Web Server PWS (Windows 9x)، Cassini (منصات .NET)
  1. المتصفحات الرئيسية
  • إنترنت إكسبلورر (ويندوز)
  • Netscape (Linux، Windows)
  • Mozilla (Linux، Windows)
  • Opera (Linux، Windows)
  1. لغات البرمجة النصية على جانب الخادم
  • VBScript (IIS، PWS)
  • JavaScript (IIS، PWS)
  • Perl (Apache، IIS، PWS)
  • PHP (أباتشي، IIS، PWS)
  • Java (Apache، Tomcat)
  • لغات .NET
  1. لغات البرمجة النصية على جانب المتصفح
  • VBScript (IE)
  • جافا سكريبت (IE، نيتسكيب)
  • PerlScript (IE)
  • Java (IE، Netscape)

10.2. أين تجد الأدوات

Netscape
http://www.netscape.com/ (رابط التنزيلات)
Internet Explorer
http://www.microsoft.com/windows/ie/default.asp
Mozilla
http://www.mozilla.org
PHP
http://www.php.net
Active PERL
http://www.activestate.com
Vbscript, Javascript
http://msdn.microsoft.com/scripting (اتبع رابط Windows Script)
JAVA
http://java.sun.com/
Apache
http://www.apache.org/
PWS
المضمنة في حزمة الخيارات 4.0 لـ NT لنظام التشغيل Windows 95
مضمن في CD لنظام التشغيل Windows 98
http://www.microsoft.com/ntserver/nts/downloads/recommended/NT4OptPk/win95.asp
IIS (windows NT/2000)
http://www.microsoft.com
Tomcat
http://jakarta.apache.org/tomcat/
JBuilder
http://www.borland.com/jbuilder/
EasyPHP
http://www.easyphp.org/
Cassini
http://www.asp.net

10.3. EasyPHP

هذا التطبيق عملي للغاية لأنه يجمع في حزمة واحدة:

  • خادم الويب Apache
  • مترجم PHP
  • SGBD MySQL (3.23.x)
  • أداة إدارة MySQL: PhpMyAdmin

يظهر تطبيق التثبيت بالشكل التالي:

Image

لا يطرح تثبيت EasyPHP أي مشكلة ويتم إنشاء شجرة في نظام الملفات:

Image

easyphp.exe
ملف التطبيق القابل للتنفيذ
apache
هيكل شجرة خادم Apache
mysql
هيكل شجرة قاعدة بيانات MySQL
phpmyadmin
هيكل التطبيق phpmyadmin
php
هيكل php
www
جذر شجرة الصفحات الإلكترونية التي يقدمها خادم Apache لـ EasyPHP
cgi-bin
شجرة يمكن وضع البرامج النصية فيها CGI لخادم Apache

الميزة الرئيسية لـ EasyPHP هي أن التطبيق يأتي مهيئًا مسبقًا. وبالتالي، فإن Apache و PHP و MySQL مهيأة بالفعل للعمل معًا. عند تشغيل EasyPhp من خلال الرابط الموجود في قائمة البرامج، تظهر أيقونة في أسفل يمين الشاشة.

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

Image

تتيح الخيار Administration إجراء التعديلات واختبارات التشغيل:

Image

10.3.1. تكوين المترجم PHP

يجب أن يتيح لك زر معلومات php التحقق من حسن سير عمل ثنائي Apache-PHP: يجب أن تظهر صفحة معلومات PHP:

Image

يعرض زر "الملحقات" قائمة بالملحقات المثبتة لـ php. وهي في الواقع مكتبات وظائف.

Image

تُظهر الشاشة أعلاه، على سبيل المثال، أن الوظائف اللازمة لاستخدام قاعدة البيانات MySQL موجودة بالفعل.

يقدم زر "الإعدادات" (paramètres) معلومات login/motdepasse الخاصة بمسؤول قاعدة البيانات MySQL.

Image

يتجاوز استخدام قاعدة البيانات MySQL نطاق هذا العرض السريع، ولكن من الواضح هنا أنه يجب تعيين كلمة مرور لمسؤول قاعدة البيانات.

10.3.2. إدارة Apache

في صفحة إدارة EasyPHP أيضًا، يتيح الرابط "الأسماء المستعارة" تعريف أسماء مستعارة مرتبطة بدليل ما. وهذا يسمح بوضع صفحات الويب في مكان آخر غير دليل www في شجرة easyPhp.

Image

إذا أدخلنا المعلومات التالية في الصفحة أعلاه:

Image

واستخدمنا الزر valider، فسيتم إضافة الأسطر التالية إلى الملف <easyphp>\apache\conf\httpd.conf:

    Alias /st/ "e:/data/serge/web/"

    <Directory "e:/data/serge/web">
        Options FollowSymLinks Indexes
        AllowOverride None
        Order deny,allow
        allow from 127.0.0.1
        deny from all
    </Directory>

يشير <easyphp> إلى دليل تثبيت EasyPHP. httpd.conf هو ملف تكوين خادم Apache. لذلك يمكن القيام بنفس الشيء عن طريق تحرير هذا الملف مباشرة. عادةً ما يتم أخذ أي تعديل على الملف httpd.conf في الاعتبار على الفور من قبل Apache. إذا لم يكن الأمر كذلك، فسيكون من الضروري إيقافه ثم إعادة تشغيله، دائمًا باستخدام أيقونة easyphp:

Image

لإنهاء مثالنا، يمكننا الآن وضع صفحات الويب في الشجرة e:\data\serge\web:

dos>dir e:\data\serge\web\html\balises.htm

14/07/2002  17:02                3 767 balises.htm

وطلب هذه الصفحة باستخدام الاسم المستعار st:

Image

في هذا المثال، تم تكوين خادم Apache للعمل على المنفذ 81. المنفذ الافتراضي له هو 80. يتم التحكم في هذه النقطة بواسطة السطر التالي من الملف httpd.conf الذي سبق ذكره:

Port 81

10.3.3. ملف تكوين Apache [htpd.conf] htpd.conf

عندما نريد تكوين Apache بشكل دقيق، نضطر إلى تعديل ملف التكوين httpd.conf "يدويًا" الموجود هنا في المجلد <easyphp>\apache\conf:

Image

فيما يلي بعض النقاط التي يجب تذكرها في ملف التكوين هذا:


ligne(s)
الدور
ServerRoot "D:/Program Files/Apache Group/Apache"
يشير إلى المجلد الذي توجد فيه شجرة Apache
Port 80
يشير إلى المنفذ الذي سيعمل عليه خادم الويب. عادةً ما يكون 80. بتغيير هذه السطر، يمكننا جعل خادم الويب يعمل على منفذ آخر
ServerAdmin root@istia.univ-angers.fr
عنوان البريد الإلكتروني لمسؤول خادم Apache
ServerName stahe.istia.uang
اسم الجهاز الذي "يعمل" عليه خادم Apache
ServerRoot "E:/Program Files/EasyPHP/apache"
مجلد تثبيت خادم Apache. عندما تظهر أسماء ملفات نسبية في ملف التكوين، فإنها تكون نسبية بالنسبة لهذا المجلد.
DocumentRoot "E:/Program Files/EasyPHP/www"
المجلد الجذر لشجرة صفحات الويب التي يقدمها الخادم. هنا، سيتوافق عنوان URL http://machine/rep1/fic1.html مع الملف E:\Program Files\EasyPHP\www \rep1\fic1.html
<Directory "E:/Program Files/EasyPHP/www">
يحدد خصائص المجلد السابق
ErrorLog logs/error.log
مجلد السجلات، أي في الواقع <ServerRoot>\logs\error.log : E:\Program Files\EasyPHP\apache\logs\error.log. هذا هو الملف الذي يجب الرجوع إليه إذا لاحظت أن خادم Apache لا يعمل.
    ScriptAlias /cgi-bin/ "E:/Program Files/EasyPHP/cgi-bin/"
E:\Program Files\EasyPHP\cgi-bin سيكون جذر الشجرة حيث يمكن وضع البرامج النصية CGI. وبالتالي، فإن URL http://machine/cgi-bin/rep1/script1.pl سيكون عنوان URL لبرنامج CGI E:\Program Files\EasyPHP\cgi-bin \rep1\script1.pl.
<Directory "E:/Program Files/EasyPHP/cgi-bin/">
يحدد خصائص المجلد أعلاه
LoadModule php4_module "E:/Program Files/EasyPHP/php/php4apache.dll"
AddModule mod_php4.c
أسطر تحميل الوحدات النمطية التي تسمح لـ Apache بالعمل مع PHP4.
    AddType application/x-httpd-php .phtml .pwml .php3 .php4 .php .php2 .inc
يحدد امتدادات الملفات التي يجب اعتبارها ملفات يجب معالجتها بواسطة PHP

10.3.4. إدارة MySQL باستخدام PhpMyAdmin

في صفحة إدارة EasyPhp، انقر على الزر PhpMyAdmin:

Image

تتيح القائمة المنسدلة أسفل Accueil عرض قواعد البيانات الحالية.
الرقم الموجود بين قوسين هو عدد الجداول. إذا اخترنا قاعدة بيانات، فستظهر الجداول الموجودة فيها:

توفر صفحة الويب عددًا من العمليات على قاعدة البيانات:

Image

إذا نقرت على الرابط Afficher من user:

Image

لا يوجد هنا سوى مستخدم واحد: root، وهو مسؤول MySQL. باتباع الرابط Modifier، يمكن تغيير كلمة المرور الخاصة به والتي هي فارغة حاليًا، وهو أمر غير مستحسن بالنسبة لمسؤول. لن نذكر المزيد عن PhpMyAdmin، وهو برنامج غني بالميزات ويستحق شرحًا يمتد لعدة صفحات.

10.4. PHP

لقد رأينا كيفية الحصول على PHP من خلال تطبيق EasyPhp. للحصول على PHP مباشرةً، سننتقل إلى الموقع http://www.php.net. لا يمكن استخدام PHP إلا في إطار الويب. يمكن استخدامه كلغة برمجة نصية في نظام Windows. قم بإنشاء البرنامج النصي التالي واحفظه باسم date.php:

<?
   // نص برمجي php يعرض الوقت
  $maintenant=date("j/m/y, H:i:s",time());
  echo "Nous sommes le $maintenant";
?>

في نافذة DOS، انتقل إلى دليل [date.php] وقم بتشغيله:

dos>"e:\program files\easyphp\php\php.exe" date.php
X-Powered-By: PHP/4.2.0
Content-type: text/html

Nous sommes le 18/07/02, 09:31:01

10.5. PERL

من الأفضل أن يكون Internet Explorer مثبتًا بالفعل. إذا كان موجودًا، فسيقوم Active Perl بتكوينه بحيث يقبل البرامج النصية PERL في الصفحات HTML، وهي برامج نصية سيتم تنفيذها بواسطة IE نفسه من جانب العميل. موقع Active Perl هو URL http://www.activestate.comA التثبيت، سيتم تثبيت PERL في دليل سنسميه <perl>. ويحتوي على الشجرة التالية:

DEISL1   ISU        32 403  23/06/00  17:16 DeIsL1.isu
BIN            <REP>        23/06/00  17:15 bin
LIB            <REP>        23/06/00  17:15 lib
HTML           <REP>        23/06/00  17:15 html
EG             <REP>        23/06/00  17:15 eg
SITE           <REP>        23/06/00  17:15 site
HTMLHELP       <REP>        28/06/00  18:37 htmlhelp

يوجد الملف القابل للتنفيذ perl.exe في <perl>\bin. Perl هي لغة برمجة تعمل على أنظمة Windows وUnix. كما أنها تُستخدم في البرمجة WEB. لنكتب أول برنامج نصي:

# نص برمجي PERL يعرض الوقت

# الوحدات النمطية
use strict;

# برنامج
my ($secondes,$minutes,$heure)=localtime(time);
print "Il est $heure:$minutes:$secondes\n";

احفظ هذا البرنامج النصي في ملف heure.pl. افتح نافذة DOS، وانتقل إلى دليل البرنامج النصي السابق وقم بتشغيله:

dos>e:\perl\bin\perl.exe heure.pl
Il est 9:34:21

10.6. Vbscript، Javascript، Perlscript

هذه اللغات هي لغات برمجة نصية لنظام ويندوز. يمكنها العمل في حاويات مختلفة مثل

  • Windows Scripting Host للاستخدام المباشر في نظام Windows، لا سيما لكتابة نصوص برمجية لإدارة نظام
  • Internet Explorer. ويتم استخدامها في صفحات HTML حيث تضفي عليها تفاعلية معينة لا يمكن تحقيقها باستخدام لغة HTML وحدها.
  • Internet Information Server (IIS) خادم الويب الخاص بـ Microsoft على NT/2000 ونظيره Personal Web Server (PWS) على Win9x. في هذه الحالة، يتم استخدام vbscript للبرمجة من جانب خادم الويب، وهي تقنية تسمى ASP (Active Server Pages) من قبل Microsoft.

يمكن الحصول على ملف التثبيت من URL: http://msdn.microsoft.com/scripting واتباع روابط Windows Script. يتم تثبيت:

  • حاوية Windows Scripting Host، وهي حاوية تسمح باستخدام لغات برمجة متنوعة، مثل Vbscript و Javascript، بالإضافة إلى لغات أخرى مثل PerlScript التي تأتي مع Active Perl.
  • مترجم VBscript
  • مترجم Javascript

دعونا نقدم بعض الاختبارات السريعة. لنقم بإنشاء البرنامج vbscript التالي:

' فئة
class personne
  Dim nom
  Dim age
End class

' إنشاء كائن شخص
Set p1=new personne
With p1
  .nom="dupont"
  .age=18
End With

' عرض خصائص الشخص p1
With p1
  wscript.echo "nom=" & .nom
  wscript.echo "age=" & .age
End With

يستخدم هذا البرنامج كائنات. لنسمه objets.vbs (اللاحقة vbs تشير إلى ملف vbscript). لننتقل إلى المجلد الذي يوجد فيه ونقوم بتشغيله:

dos>cscript objets.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

nom=dupont
age=18

الآن لنقم بإنشاء برنامج جافا سكريبت التالي الذي يستخدم المصفوفات:

// جدول في متغير
// جدول فارغ
tableau=new Array();
affiche(tableau);
// مصفوفة تنمو ديناميكيًا
for(i=0;i<3;i++){
  tableau.push(i*10);
}
// عرض الجدول
affiche(tableau);
// مرة أخرى
for(i=3;i<6;i++){
  tableau.push(i*10);
}
affiche(tableau);

// جداول متعددة الأبعاد
WScript.echo("-----------------------------");

tableau2=new Array();
for(i=0;i<3;i++){
  tableau2.push(new Array());
  for(j=0;j<4;j++){
    tableau2[i].push(i*10+j);
  }//for j
}// for i
affiche2(tableau2);

// نهاية
WScript.quit(0);

// ---------------------------------------------------------
function affiche(tableau){
  // عرض الجدول
  for(i=0;i<tableau.length;i++){
    WScript.echo("tableau[" + i + "]=" + tableau[i]);
  }//لـ
}//وظيفة

// ---------------------------------------------------------
function affiche2(tableau){
  // عرض الجدول
  for(i=0;i<tableau.length;i++){
    for(j=0;j<tableau[i].length;j++){
      WScript.echo("tableau[" + i + "," + j + "]=" + tableau[i][j]);
    }// for j
  }//for i
}//وظيفة

يستخدم هذا البرنامج جداول. لنسمه tableaux.js (اللاحقة js تشير إلى ملف جافا سكريبت). لننتقل إلى المجلد الذي يوجد فيه ونقوم بتشغيله:

dos>cscript tableaux.js
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.

tableau[0]=0
tableau[1]=10
tableau[2]=20
tableau[0]=0
tableau[1]=10
tableau[2]=20
tableau[3]=30
tableau[4]=40
tableau[5]=50
-----------------------------
tableau[0,0]=0
tableau[0,1]=1
tableau[0,2]=2
tableau[0,3]=3
tableau[1,0]=10
tableau[1,1]=11
tableau[1,2]=12
tableau[1,3]=13
tableau[2,0]=20
tableau[2,1]=21
tableau[2,2]=22
tableau[2,3]=23

مثال أخير في Perlscript في الختام. يجب تثبيت Active Perl للوصول إلى Perlscript.

<job id="PERL1">
  <script language="PerlScript">
       # من Perl الكلاسيكي
    %dico=("maurice"=>"juliette","philippe"=>"marianne");
    @cles= keys %dico;
    for ($i=0;$i<=$#مفاتيح؛$i++){
        $cle=$cles[$i];
      $valeur=$dico{$cle};
        $WScript->echo ("clé=".$cle.", valeur=".$valeur);
    }
     # من perlscript باستخدام كائنات Windows Script
    $dico=$WScript->CreateObject("Scripting.Dictionary");
    $dico->add("maurice","juliette");
    $dico->add("philippe","marianne");
    $WScript->echo($dico->item("maurice"));
    $WScript->echo($dico->item("philippe"));    
  </script>
</job>

يوضح هذا البرنامج إنشاء واستخدام قاموسين: أحدهما بالطريقة التقليدية في لغة Perl، والآخر باستخدام كائن Scripting Dictionary في Windows Script. لنحفظ هذا الكود في الملف dico.wsf (wsf هي اللاحقة الخاصة بملفات Windows Script). لننتقل إلى مجلد هذا البرنامج ونقوم بتشغيله:

dos>cscript dico.wsf
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.

clé=philippe, valeur=marianne
clé=maurice, valeur=juliette
juliette
marianne

يمكن لـ Perlscript استخدام كائنات الحاوية التي يتم تشغيله فيها. هنا كانت كائنات حاوية Windows Script. في سياق برمجة الويب، يمكن تشغيل البرامج النصية VBscript، Javascript و Perlscript إما داخل متصفح IE أو داخل خادم PWS أو IIS. إذا كان البرنامج النصي معقدًا بعض الشيء، فقد يكون من الحكمة اختباره خارج سياق الويب، داخل حاوية Windows Script كما رأينا سابقًا. لن نتمكن بهذه الطريقة من اختبار سوى وظائف البرنامج النصي التي لا تستخدم كائنات خاصة بالمتصفح أو الخادم. حتى مع هذا القيد، تظل هذه الإمكانية مثيرة للاهتمام لأنه من غير العملي عمومًا تصحيح أخطاء البرامج النصية التي يتم تنفيذها داخل خوادم الويب أو المتصفحات.

10.7. JAVA

تتوفر Java على URL: http://www.sun.com ويتم تثبيتها في شجرة نسميها <java> تحتوي على العناصر التالية:

22/05/2002  05:51       <DIR>          .
22/05/2002  05:51       <DIR>          ..
22/05/2002  05:51       <DIR>          bin
22/05/2002  05:51       <DIR>          jre
07/02/2002  12:52                8 277 README.txt
07/02/2002  12:52               13 853 LICENSE
07/02/2002  12:52                4 516 COPYRIGHT
07/02/2002  12:52               15 290 readme.html
22/05/2002  05:51       <DIR>          lib
22/05/2002  05:51       <DIR>          include
22/05/2002  05:51       <DIR>          demo
07/02/2002  12:52           10 377 848 src.zip
11/02/2002  12:55       <DIR>          docs

في bin، سنجد javac.exe، وهو مترجم Java، و java.exe، وهي آلة Java الافتراضية. يمكننا إجراء الاختبارات التالية:

  1. كتابة البرنامج النصي التالي:
//برنامج Java يعرض الوقت

import java.io.*;
import java.util.*;

public class heure{
  public static void main(String arg[]){
     // استرداد التاريخ والوقت
     Date maintenant=new Date();
      // العرض
     System.out.println("Il est "+maintenant.getHours()+
        ":"+maintenant.getMinutes()+":"+maintenant.getSeconds());
  }//main
}//فئة
  1. احفظ هذا البرنامج باسم heure.java. افتح نافذة DOS. انتقل إلى مجلد ملف heure.java وقم بتجميعه:
dos>c:\jdk1.3\bin\javac heure.java
Note: heure.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.

في الأمر أعلاه، يجب استبدال [c:\jdk1.3\bin\javac] بمسار المجمع javac.exe بالضبط. يجب أن تحصل في نفس المجلد الذي يوجد فيه heure.java على ملف heure.class وهو البرنامج الذي سيتم تنفيذه الآن بواسطة الآلة الافتراضية java.exe.

  1. تنفيذ البرنامج:
dos>c:\jdk1.3\bin\java heure
Il est 10:44:2

في الأمر أعلاه، يجب استبدال [c:\jdk1.3\bin\java] بالمسار الدقيق للآلة الافتراضية java [java.exe].

10.8. خادم Apache

لقد رأينا أنه يمكن الحصول على خادم Apache من خلال التطبيق EasyPhp. للحصول عليه مباشرة، سنذهب إلى موقع Apache: http://www.apache.org. يؤدي التثبيت إلى إنشاء شجرة تضم جميع الملفات اللازمة للخادم. لنسمي هذا الدليل <apache>. وهو يحتوي على شجرة مشابهة لما يلي:

UNINST   ISU       118 805  23/06/00  17:09 Uninst.isu
HTDOCS         <REP>        23/06/00  17:09 htdocs
APACHE~1 DLL       299 008  25/02/00  21:11 ApacheCore.dll
ANNOUN~1             3 000  23/02/00  16:51 Announcement
ABOUT_~1            13 197  31/03/99  18:42 ABOUT_APACHE
APACHE   EXE        20 480  25/02/00  21:04 Apache.exe
KEYS                36 437  20/08/99  11:57 KEYS
LICENSE              2 907  01/01/99  13:04 LICENSE
MAKEFI~1 TMP        27 370  11/01/00  13:47 Makefile.tmpl
README               2 109  01/04/98   6:59 README
README   NT          3 223  19/03/99   9:55 README.NT
WARNIN~1 TXT           339  21/09/98  13:09 WARNING-NT.TXT
BIN            <REP>        23/06/00  17:09 bin
MODULES        <REP>        23/06/00  17:09 modules
ICONS          <REP>        23/06/00  17:09 icons
LOGS           <REP>        23/06/00  17:09 logs
CONF           <REP>        23/06/00  17:09 conf
CGI-BIN        <REP>        23/06/00  17:09 cgi-bin
PROXY          <REP>        23/06/00  17:09 proxy
INSTALL  LOG         3 779  23/06/00  17:09 install.log
conf
مجلد ملفات تكوين Apache
logs
مجلد ملفات سجلات (التتبع) Apache
bin
ملفات Apache القابلة للتنفيذ

10.8.1. التكوين

في المجلد <Apache>\conf، توجد الملفات التالية: httpd.conf، srm.conf، access.conf. في الإصدارات الأخيرة من Apache، تم دمج الملفات الثلاثة في ملف httpd.conf. وقد سبق أن عرضنا النقاط المهمة في ملف التكوين هذا. في الأمثلة التالية، تم استخدام إصدار Apache من EasyPhp في الاختبارات، وبالتالي ملف التكوين الخاص به. في هذا الملف، يشير DocumentRoot إلى جذر شجرة صفحات الويب وهو e:\program files\easyphp\www.

10.8.2. رابط PHP - Apache

لإجراء الاختبار، قم بإنشاء ملف intro.php الذي يحتوي على السطر التالي فقط:

<? phpinfo() ?>

وضعه في جذر صفحات خادم Apache (DocumentRoot أعلاه). اطلب URL http://localhost/intro.php. يجب أن تظهر قائمة بالمعلومات php:

Image

يعرض البرنامج النصي PHP التالي الوقت. وقد سبق أن تناولناه:

<?
   // الوقت: عدد المللي ثانية منذ 01/01/1970
   // "تنسيق عرض التاريخ والوقت
   // d: اليوم برقمين
   // m: الشهر برقمين
   // y: السنة برقمين
   // H: الساعة 0.23
   // i: الدقائق
   // s: الثواني
  print "Nous sommes le " . date("d/m/y H:i:s",time());
?>

لنضع هذا الملف النصي في المجلد الجذر لصفحات خادم Apache (DocumentRoot) ونسميه date.php. لنطلب باستخدام متصفح URL http://localhost/date.php. نحصل على الصفحة التالية:

Image

10.8.3. رابط PERL-APACHE

يتم إنشاؤه بواسطة سطر بالصيغة: ScriptAlias /cgi-bin/ "E:/Program Files/EasyPHP/cgi-bin/" من الملف <apache>\conf\httpd.conf. صيغته هي ScriptAlias /cgi-bin/ "<cgi-bin>" حيث <cgi-bin> هو المجلد الذي يمكن وضع نصوص CGI فيه. CGI (واجهة البوابة المشتركة) هي معيار للتواصل بين الخادم WEB <--> والتطبيقات. يطلب العميل من خادم الويب صفحة ديناميكية، c.a.d، وهي صفحة تم إنشاؤها بواسطة برنامج. لذلك يجب على الخادم WEB أن يطلب من برنامج إنشاء الصفحة. يحدد CGI التفاعل بين الخادم والبرنامج، ولا سيما طريقة نقل المعلومات بين هذين الكيانين. إذا لزم الأمر، قم بتعديل السطر ScriptAlias /cgi-bin/ "<cgi-bin>" وأعد تشغيل خادم Apache. ثم قم بإجراء الاختبار التالي:

  1. اكتب البرنامج النصي:
#!c:\perl\bin\perl.exe

# نص برمجي PERL يعرض الوقت

# وحدات
use strict;

# برنامج
my ($secondes,$minutes,$heure)=localtime(time);
print <<FINHTML
Content-Type: text/html

<html>
 <head>
  <title>heure</title>
 </head>
 <body>
  <h1>Il est $heure:$minutes:$secondes</h1>
 </body>
FINHTML
;
  1. ضع هذا البرنامج النصي في <cgi-bin>\heure.pl حيث <cgi-bin> هو المجلد الذي يمكنه استقبال البرامج النصية CGI (انظر httpd.conf). السطر الأول #!c:\perl\bin\perl.exe يشير إلى مسار الملف القابل للتنفيذ perl.exe. قم بتعديله إذا لزم الأمر.
  2. قم بتشغيل Apache إذا لم يكن قد تم ذلك
  3. اطلب باستخدام متصفح URL http://localhost/cgi-bin/heure.pl. ستحصل على الصفحة التالية:

Image

10.9. الخادم PWS

10.9.1. التثبيت t

الخادم PWS (Personal Web Server) هو نسخة شخصية من خادم IIS (Internet Information Server) من Microsoft. هذا الأخير متاح على أجهزة NT و2000. على أجهزة win9x، يتوفر PWS عادةً مع حزمة تثبيت Internet Explorer. ومع ذلك، لا يتم تثبيته بشكل افتراضي. يجب إجراء تثبيت مخصص لـ IE وطلب تثبيت PWS. كما أنه متوفر في حزمة الخيارات NT 4.0 لـ Windows 95.

10.9.2. الاختبارات الأولية

المجلد الجذر لصفحات الويب الخاصة بالخادم PWS هو drive:\inetpub\wwwroot، حيث يمثل drive القرص الذي قمت بتثبيت PWS عليه. نفترض في ما يلي أن هذا القرص هو D. وبالتالي فإن عنوان URL http://machine/rep1/page1.html سيتوافق مع الملف d:\inetpub\wwwroot\rep1\page1.html. يقوم الخادم PWS بتفسير أي ملف بامتداد .asp (صفحات الخادم النشط) على أنه برنامج نصي يجب تنفيذه لإنتاج صفحة HTML. يعمل PWS افتراضيًا على المنفذ 80. وكذلك خادم الويب Apache... لذلك يجب إيقاف Apache للعمل مع PWS إذا كان لديك الخادمان. الحل الآخر هو تكوين Apache ليعمل على منفذ آخر. وهكذا، في ملف تكوين Apache [httpd.conf]، نستبدل السطر Port 80 بـ Port 81، وسيعمل Apache من الآن فصاعدًا على المنفذ 81 ويمكن استخدامه في نفس الوقت مع PWS. إذا تم تشغيل PWS، وطلبنا URL http://localhost، فسنحصل على صفحة مشابهة للصفحة التالية:

Image

10.9.3. رابط PHP - PWS

  1. فيما يلي ملف .reg مخصص لتعديل قاعدة التسجيلات. انقر نقرًا مزدوجًا على هذا الملف لتعديل القاعدة. هنا، يوجد dll المطلوب في d:\php4 مع الملف القابل للتنفيذ لـ php. قم بالتعديل إذا لزم الأمر. يجب مضاعفة علامات \ في مسار ملف dll.
REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map]
".php"="d:\\php4\\php4isapi.dll"
  1. أعد تشغيل الجهاز حتى يتم تطبيق التعديل على سجل التسجيل.
  1. قم بإنشاء مجلد php في d:\inetpub\wwwroot الذي يمثل جذر الخادم PWS. بعد ذلك، قم بتنشيط PWS وانتقل إلى علامة التبويب "متقدم". اختر الزر "إضافة" لإنشاء مجلد افتراضي:
Répertoire/Parcourir : d:\inetpub\wwwroot\php
Alias : php
Cocher la case exécuter.
  1. قم بتأكيد كل شيء وأعد تشغيل PWS. ضع في d:\inetpub\wwwroot\php الملف intro.php الذي يحتوي على السطر التالي فقط:
<? phpinfo() ?>
  1. اطلب من الخادم PWS ملف URL http://localhost/php/intro.php. يجب أن تظهر قائمة معلومات php التي تم عرضها مسبقًا مع Apache.

10.10. Tomcat: سيرفلتات Java وصفحات JSP (Java Server Pages)

Tomcat هو خادم ويب يسمح بإنشاء صفحات HTML بفضل السيرفلت (برامج Java التي يتم تنفيذها بواسطة خادم الويب) أو صفحات JSP (Java Server Pages)، وهي صفحات تجمع بين كود Java وكود HTML. وهي تعادل صفحات ASP (صفحات الخادم النشط) لخادم IIS/PWS من Microsoft حيث يتم هناك مزج كود VBScript أو Javascript مع كود HTML.

10.10.1. التثبيت

Tomcat متاح على URL: http://jakarta.apache.org. يتم تنزيل ملف .exe للتثبيت. عند تشغيل هذا البرنامج، يبدأ أولاً بالإشارة إلى JDK الذي سيستخدمه. في الواقع، يحتاج Tomcat إلى JDK للتثبيت ثم لتجميع وتشغيل برامج Java. لذلك، يجب أن يكون لديك JDK Java مثبتًا قبل تثبيت Tomcat. يُنصح باستخدام أحدث إصدار من JDK. سيؤدي التثبيت إلى إنشاء شجرة <tomcat>:

Image

تتمثل ببساطة في فك ضغط هذا الأرشيف في مجلد. اختر مجلدًا لا يحتوي مساره إلا على أسماء خالية من المسافات (ليس "Program Files" على سبيل المثال)، وذلك بسبب وجود خطأ في عملية تثبيت Tomcat. اختر على سبيل المثال C:\tomcat أو D:\tomcat. لنسمي هذا المجلد <tomcat>. ستجد بداخله مجلدًا يسمى jakarta-tomcat وفيه الهيكل التالي:

LOGS           <REP>        15/11/00   9:04 logs
LICENSE              2 876  18/04/00  15:56 LICENSE
CONF           <REP>        15/11/00   8:53 conf
DOC            <REP>        15/11/00   8:53 doc
LIB            <REP>        15/11/00   8:53 lib
SRC            <REP>        15/11/00   8:53 src
WEBAPPS        <REP>        15/11/00   8:53 webapps
BIN            <REP>        15/11/00   8:53 bin
WORK           <REP>        15/11/00   9:04 work

10.10.2. تشغيل/إيقاف خادم الويب Tomcat

Tomcat هو خادم ويب مثل Apache أو PWS. لتشغيله، تتوفر روابط في قائمة البرامج:

Start Tomcat
لتشغيل Tomcat
Stop Tomcat
لإيقافه

عند تشغيل Tomcat، تظهر نافذة DOS تحتوي على المحتوى التالي:

Image

يمكن تحويل نافذة DOS هذه إلى أيقونة. وستظل موجودة طالما كان Tomcat نشطًا. يمكننا بعد ذلك الانتقال إلى الاختبارات الأولية. يعمل خادم الويب Tomcat على المنفذ 8080. بمجرد تشغيل Tomcat، افتح متصفح ويب واطلب URL http://localhost:8080. يجب أن تظهر لك الصفحة التالية:

Image

اتبع رابط أمثلة Servlet:

Image

انقر على الرابط Execute من RequestParameters ثم على الرابط Source. ستحصل على لمحة أولية عن ماهية Java servlet. يمكنك القيام بنفس الشيء مع الروابط الموجودة على الصفحات JSP.

لإيقاف Tomcat، سنستخدم الرابط Stop Tomcat في قائمة البرامج.

10.11. Jbuilder

Jbuilder هو بيئة لتطوير تطبيقات Java. لإنشاء سيرفلتات Java التي لا تحتوي على واجهات رسومية، ليس من الضروري وجود مثل هذه البيئة. يكفي استخدام محرر نصوص و JDK. لكن JBuilder يوفر بعض المزايا الإضافية مقارنة بالطريقة السابقة:

  • سهولة التصحيح: يشير المُجمِّع إلى الأسطر الخاطئة في البرنامج ويسهل تحديد موقعها
  • اقتراح الكود: عند استخدام كائن Java، يعرض JBuilder قائمة بخصائصه وأساليبه مباشرةً. وهذا أمر عملي للغاية، خاصةً عندما نعلم أن معظم كائنات Java تحتوي على عدد كبير جدًا من الخصائص والأساليب التي يصعب تذكرها.

يمكن العثور على JBuilder على الموقع http://www.borland.com/jbuilder. يجب ملء نموذج للحصول على البرنامج. يتم إرسال مفتاح التنشيط عبر البريد الإلكتروني. لتثبيت JBuilder 7، تم اتباع الخطوات التالية على سبيل المثال:

  • تم الحصول على ثلاثة ملفات مضغوطة: للتطبيق، وللوثائق، وللأمثلة. كل ملف من هذه الملفات المضغوطة له رابط منفصل على موقع JBuilder.
  • تم تثبيت التطبيق أولاً، ثم الوثائق، وأخيراً الأمثلة
  • عند تشغيل التطبيق لأول مرة، يُطلب إدخال مفتاح تفعيل: وهو المفتاح الذي تم إرساله إليك عبر البريد الإلكتروني. في الإصدار 7، يمثل هذا المفتاح في الواقع ملف نصي كامل يمكن وضعه، على سبيل المثال، في مجلد تثبيت JB7. عندما يُطلب المفتاح، قم بتحديد الملف المعني. وبمجرد القيام بذلك، لن يُطلب المفتاح مرة أخرى.

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

  • تشغيل JBuilder

Image

  • تنشيط الخيار Tools/Configure JDKs

Image

في قسم JDK Settings أعلاه، عادةً ما يكون في الحقل Name رقم الإصدار 1.3.1. إذا كان لديك إصدار أحدث من JDK، فاستخدم الزر Change لتحديد مجلد تثبيت هذا الإصدار. فيما سبق، تم تحديد المجلد E:\Program Files\jdk14 حيث تم تثبيت JDK 1.4. من الآن فصاعدًا، سيستخدم JBuilder هذا JDK للتجميعات والتشغيلات الخاصة به. في الجزء (Class, Siurce, Documentation) توجد قائمة بجميع مكتبات الفئات التي سيتم استكشافها بواسطة JBuilder، وهنا فئات JDK 1.4. لا تكفي فئات هذا البرنامج لتطوير الويب بلغة Java. لإضافة مكتبات فئات أخرى، نستخدم الزر Add ونحدد ملفات .jar الإضافية التي نريد استخدامها. ملفات .jar هي مكتبات فئات. يأتي Tomcat 4.x مزودًا بجميع مكتبات الفئات اللازمة لتطوير الويب. توجد هذه المكتبات في <tomcat>\common\lib حيث <tomcat> هو دليل تثبيت Tomcat:

Image

باستخدام الزر Add، سنقوم بإضافة هذه المكتبات، واحدة تلو الأخرى، إلى قائمة المكتبات التي يستكشفها JBuilder:

Image

من الآن فصاعدًا، يمكننا ترجمة برامج Java المتوافقة مع معيار J2EE، ولا سيما برامج Java servlets. يستخدم Jbuilder للترجمة فقط، بينما يتولى Tomcat التنفيذ لاحقًا وفقًا للطرق الموضحة في الدورة التدريبية.

10.12. خادم الويب Cassini

للعمل مع منصة .NET من Microsoft، يمكن استخدام خادم الويب Cassini. يتوفر هذا الخادم عبر منتج آخر يسمى [WebMatrix] وهو بيئة مجانية لتطوير الويب على منصات .NET متاحة على الرابط:

Image

سنقوم بمتابعة خطوات تثبيت المنتج بعناية:

  • تنزيل وتثبيت منصة .NET (1.1 في مارس 2004)
  • تنزيل وتثبيت WebMatrix
  • تنزيل وتثبيت MSDE (Microsoft Data Engine) وهو إصدار محدود من SQL Server.

بمجرد انتهاء التثبيت، يصبح المنتج [WebMatrix] متاحًا في البرامج المثبتة:

Image

الرابط [ASP.NET] Web Matrix يطلق IDE لتطوير ASP.NET:

Image

الرابط [Class Browser] يطلق أداة استكشاف الفئات .NET:

Image

لاختبار التثبيت، لنقم بتشغيل [WebMatrix]:

42

Image

عند التشغيل الأولي، يطلب [WebMatrix] خصائص projet.C الجديد، وهي إعداداته الافتراضية. يمكن تهيئته بحيث لا يظهر مربع الحوار هذا عند التشغيل. يمكن الحصول عليه من خلال الخيار [File/New File]. يتيح [WebMatrix] إنشاء هياكل أساسية لمختلف تطبيقات الويب. أعلاه، حددنا في (1) أننا نريد إنشاء تطبيق [ASP.ET Page] وهو عبارة عن صفحة ويب. في (2)، نحدد المجلد الذي سيتم وضع صفحة الويب هذه فيه. في (3) نحدد اسم الصفحة. يجب أن يكون لها اللاحقة .aspx. وأخيرًا في (4)، نحدد أننا نريد العمل بلغة VB.NET، حيث تدعم [WebMatrix] أيضًا لغتي C# وJ#.

وبعد ذلك، يعرض [WebMatrix] صفحة لتحرير الملف [demo1.aspx]. نضع فيها الكود التالي:

Image

  • تسمح علامة التبويب [Design] بـ"رسم" صفحة الويب التي نريد إنشاءها. ويتم ذلك كما هو الحال مع IDE لإنشاء تطبيقات Windows.
  • سيؤدي التصميم الجرافيكي لصفحة الويب في [Design] إلى إنشاء كود HTML في علامة التبويب [HTML]
  • قد تحتوي صفحة الويب على عناصر تحكم تولد أحداثًا يجب الاستجابة لها، مثل زر على سبيل المثال. سيتم إدارة هذه الأحداث بواسطة كود VB.NET الذي سيتم وضعه في علامة التبويب [Code]
  • في النهاية، الملف demo1.aspx هو ملف نصي يجمع بين كود HTML وكود VB.NET، وهو نتيجة التصميم الجرافيكي الذي تم في [Design]، والرمز HTML الذي تمت إضافته يدويًا في [HTML] والرمز VB.NET الموجود في [Code]. الملف بأكمله متاح في علامة التبويب [All].
  • يمكن لمطور ASP.ET ذي الخبرة إنشاء الملف demo1.aspx مباشرةً باستخدام محرر نصوص دون الحاجة إلى أي IDE.

لنختر الخيار [All] نلاحظ أن [WebMatrix] قد أنشأ بالفعل كودًا:

<%@ Page Language="VB" %>
<script runat="server">

    ' أدخل رمز الصفحة هنا
    '

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <!-- أدخل المحتوى هنا -->
    </form>
</body>
</html>

لن نحاول هنا شرح هذا الرمز. سنقوم بتحويله على النحو التالي:

<html>
<head>
    <title>Démo asp.net </title>
</head>
<body>
    Il est <% =Date.Now.ToString("hh:mm:ss") %>
</body>
</html>

الرمز أعلاه هو مزيج من HTML ورمز VB.NET. وقد تم وضعه بين العلامات <% ... %>. لتنفيذ هذا الرمز، نستخدم الخيار [View/Start]. يقوم [WebMatrix] عندئذٍ بتشغيل خادم الويب Cassini إذا لم يكن قد تم تشغيله بالفعل

Image

يمكننا قبول القيم الافتراضية المقترحة في مربع الحوار هذا واختيار الخيار [Start]. يصبح خادم الويب نشطًا عندئذٍ. يقوم [WebMatrix] عندئذٍ بتشغيل المتصفح الافتراضي للجهاز الذي يوجد عليه وطلب URL http://localhost:8080/demo1.aspx :

Image

من الممكن استخدام خادم Cassini خارج [WebMatrix]. يوجد الملف القابل للتنفيذ للخادم في <WebMatrix>\<version>\WebServer.exe حيث <WebMatrix> هو دليل تثبيت [WebMatrix] و<version> هو رقم الإصدار:

Image

لنفتح نافذة DOS وننتقل إلى مجلد خادم Cassini:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>dir
...
29/05/2003  11:00               53 248 WebServer.exe
...

لنقم بتشغيل [WebServer.exe] بدون معلمات:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver

نحصل على نافذة مساعدة:

Image

تقبل تطبيق [WebServer]، المعروف أيضًا باسم خادم الويب Cassini، ثلاثة معلمات:

  • /port: رقم منفذ خدمة الويب. يمكن أن يكون أي رقم. القيمة الافتراضية هي 80
  • /path: المسار الفعلي لمجلد على القرص
  • /vpath: المجلد الافتراضي المرتبط بالمجلد الفعلي السابق. يجب الانتباه إلى أن الصيغة ليست /path=المسار بل /vpath:المسار، على عكس ما يذكره لوحة المساعدة أعلاه.

لنضع الملف [demo1.aspx] في المجلد التالي:

Image

لنربط المجلد الافتراضي [/webmatrix] بالمجلد الفعلي [d:\data\devel\webmatrix]. يمكن تشغيل خادم الويب بالطريقة التالية:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver /port:100 /path:"d:\data\devel\webmatrix" /vpath:"/webmatrix"

يصبح خادم Cassini نشطًا عندئذٍ وتظهر أيقونته في شريط المهام. إذا نقرنا عليها مرتين:

Image

تظهر إعدادات تشغيل الخادم. كما تتوفر إمكانية إيقاف [Stop] أو إعادة تشغيل [Restart] خادم الويب. إذا نقرنا على الرابط [Root URL]، فسنحصل على جذر شجرة الويب للخادم في متصفح:

Image

دعونا نتبع الرابط [demos]:

Image

ثم الرابط [demo1.aspx]:

Image

نرى إذن أنه إذا تم ربط المجلد الفعلي P=[d:\data\devel\webmatrix] بالمجلد الافتراضي V=[/webmatrix] وكان الخادم يعمل على المنفذ 100، فإن صفحة الويب [demo1.aspx] الموجودة فعليًا في [P\demos] ستكون متاحة محليًا عبر URL [http://localhost:100/V/demos/demo1.aspx].

لقد أظهرنا، في هذه الحالة بالذات، أن تطوير الويب ASP.NET يمكن أن يتم باستخدام محرر نصوص بسيط لكتابة صفحات الويب وخادم الويب Cassini لاختبارها. وهذا صحيح بغض النظر عن مدى تعقيد التطبيق. يوفر IDE [WebMatrix] بعض التسهيلات في التطوير، ولكنها قليلة. أداة مثل Visual Studio.NET أكثر كفاءة بكثير، ولكنها منتج تجاري.