Skip to content

8. الملاحق

8.1. أدوات تطوير الويب

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

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

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

  • خوادم الويب الرئيسية
    • أباتشي (Linux، Windows)
    • خادم المعلومات الداخلي IIS (NT)، خادم الويب الشخصي PWS (Windows 9x)
  • المتصفحات الرئيسية
    • Internet Explorer (Windows)
    • Netscape (Linux، Windows)
  • لغات البرمجة النصية على جانب الخادم
    • VBScript (IIS، PWS)
    • JavaScript (IIS، PWS)
    • Perl (Apache، IIS، PWS)
    • PHP (أباتشي، IIS، PWS)
    • جافا (أباتشي، تومكات)
    • لغات البرمجة .NET
  • لغات البرمجة النصية على جانب المتصفح
    • VBScript (IE)
    • جافا سكريبت (IE، نيتسكيب)
    • PerlScript (IE)
    • Java (IE، Netscape)

8.1.2. أين يمكن العثور على الأدوات

Netscape
http://www.netscape.com/ (رابط التنزيلات)
Internet Explorer
http://www.microsoft.com/windows/ie/default.asp
PHP
http://www.php.net
http://www.php.net/downloads.php (ملفات Windows الثنائية)
PERL
http://www.activestate.com http://www.activestate.com/Products/
http://www.activestate.com/Products/ActivePerl/
Vbscript, Javascript
http://msdn.microsoft.com/scripting (اتبع رابط Windows Script)
JAVA
http://java.sun.com/
http://java.sun.com/downloads.html (JSE)
http://java.sun.com/j2se/1.4/download.html
Apache
http://www.apache.org/
http://www.apache.org/dist/httpd/binaries/win32/
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/
http://www.borland.com/products/downloads/download_jbuilder.html
EasyPHP
http://www.easyphp.org/
http://www.easyphp.org/telechargements.php3

8.1.3. EasyPHP

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

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

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

Image

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

Image

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

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

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

Image

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

Image

8.1.3.1. الإدارة PHP

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

Image

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

Image

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

يُظهر زر «الإعدادات» معرف login/motdepasse لمسؤول قاعدة البيانات MySQL.

Image

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

8.1.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:

C:\winnt\system32>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

8.1.3.3. ملف تكوين Apache 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"
المجلد الجذر لهيكل الصفحات الويب التي يقدمها الخادم. هنا، سيتوافق الرابط 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) لبرنامج URL هو: http://machine/cgi-bin/rep1/script1.pl، وhttp://machine/cgi-bin/rep1/script1.pl هو الرابط لبرنامج 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

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

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

Image

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

توفر صفحة الويب عددًا من العمليات التي يمكن إجراؤها على قاعدة البيانات:

Image

عند النقر على الرابط Afficher من user:

Image

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

لن نذكر المزيد عن PhpMyAdmin، وهو برنامج غني بالميزات ويستحق شرحًا يمتد لعدة صفحات.

8.1.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 وقم بتشغيله:

E:\data\serge\php\essais>"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

8.1.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، وانتقل إلى المجلد الذي يحتوي على البرنامج النصي السابق وقم بتشغيله:


E:\data\serge\Perl\Essais>e:\perl\bin\perl.exe heure.pl
Il est 9:34:21

8.1.6. Vbscript، Javascript، Perlscript

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

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

يمكن تنزيل ملف التثبيت من الرابط التالي: 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). لننتقل إلى المجلد الذي يوجد فيه ونقوم بتشغيله:

E:\data\serge\windowsScripting\vbscript\poly\objets>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 تشير إلى ملف جافا سكريبت). لننتقل إلى المجلد الذي يوجد فيه ونقوم بتشغيله:

E:\data\serge\windowsScripting\javascript\poly\tableaux>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). لننتقل إلى المجلد الذي يحتوي على هذا البرنامج ونقوم بتشغيله:

E:\data\serge\windowsScripting\perlscript\essais>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 كما رأينا سابقًا. وبذلك، لن يمكن اختبار سوى وظائف البرنامج النصي التي لا تستخدم كائنات خاصة بالمتصفح أو الخادم. وحتى مع هذا القيد، تظل هذه الإمكانية مثيرة للاهتمام لأنه من غير العملي عمومًا تصحيح أخطاء البرامج النصية التي يتم تنفيذها داخل خوادم الويب أو المتصفحات.

8.1.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. كتابة البرنامج النصي التالي:
//يعرض الوقت

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 وقم بتجميعه:
D:\data\java\essais>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. تشغيل البرنامج:
D:\data\java\essais>c:\jdk1.3\bin\java heure
Il est 10:44:2

8.1.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 القابلة للتنفيذ

8.1.8.1. Configuration

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

8.1.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. لنطلب عبر متصفح الويب http://localhost/date.php. سنحصل على الصفحة التالية:

Image

8.1.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

8.1.9. الخادم PWS

8.1.9.1. Installation

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

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

جذر صفحات الويب الخاصة بالخادم PWS هو محرك الأقراص:\inetpub\wwwroot، حيث يمثل «محرك الأقراص» القرص الذي قمت بتثبيت 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

8.1.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 وانتقل إلى علامة التبويب «خيارات متقدمة». انقر على زر «إضافة» لإنشاء مجلد افتراضي:

المجلد/استعراض: d:\inetpub\wwwroot\php

الاسم المستعار: php

ضع علامة في خانة «تنفيذ».

  1. قم بتأكيد الإعدادات وأعد تشغيل PWS. ضع في d:\inetpub\wwwroot\php الملف intro.php الذي يحتوي على السطر التالي فقط:

<? phpinfo() ?>

  1. اطلب من الخادم PWS عرض ملف URL http://localhost/php/intro.php. يجب أن تظهر قائمة معلومات PHP التي تم عرضها مسبقًا مع Apache.

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

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

8.1.10.1. Installation

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

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

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

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

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

Image

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

Image

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

Image

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

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

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

Image

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

Image

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