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 (خادم الويب الشخصي، Cassini)، Tomcat.
- يمكن استخدام 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. خوادم الويب، المتصفحات، لغات البرمجة النصية
- خوادم الويب الرئيسية
- أباتشي (لينكس، ويندوز)
- Interner Information Server IIS (NT)، Personal Web Server PWS (Windows 9x)، Cassini (منصات .NET)
- المتصفحات الرئيسية
- إنترنت إكسبلورر (ويندوز)
- Netscape (Linux، Windows)
- Mozilla (Linux، Windows)
- Opera (Linux، Windows)
- لغات البرمجة النصية على جانب الخادم
- VBScript (IIS، PWS)
- JavaScript (IIS، PWS)
- Perl (Apache، IIS، PWS)
- PHP (أباتشي، IIS، PWS)
- Java (Apache، Tomcat)
- لغات .NET
- لغات البرمجة النصية على جانب المتصفح
- VBScript (IE)
- جافا سكريبت (IE، نيتسكيب)
- PerlScript (IE)
- Java (IE، Netscape)
10.2. أين تجد الأدوات
http://www.netscape.com/ (رابط التنزيلات) | |
http://www.microsoft.com/windows/ie/default.asp | |
http://www.mozilla.org | |
http://www.php.net | |
http://www.activestate.com | |
http://msdn.microsoft.com/scripting (اتبع رابط Windows Script) | |
http://java.sun.com/ | |
http://www.apache.org/ | |
المضمنة في حزمة الخيارات 4.0 لـ NT لنظام التشغيل Windows 95 مضمن في CD لنظام التشغيل Windows 98 http://www.microsoft.com/ntserver/nts/downloads/recommended/NT4OptPk/win95.asp | |
http://www.microsoft.com | |
http://jakarta.apache.org/tomcat/ | |
http://www.borland.com/jbuilder/ | |
http://www.easyphp.org/ | |
http://www.asp.net |
10.3. EasyPHP
هذا التطبيق عملي للغاية لأنه يجمع في حزمة واحدة:
- خادم الويب Apache
- مترجم PHP
- SGBD MySQL (3.23.x)
- أداة إدارة MySQL: PhpMyAdmin
يظهر تطبيق التثبيت بالشكل التالي:

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

ملف التطبيق القابل للتنفيذ | |
هيكل شجرة خادم Apache | |
هيكل شجرة قاعدة بيانات MySQL | |
هيكل التطبيق phpmyadmin | |
هيكل php | |
جذر شجرة الصفحات الإلكترونية التي يقدمها خادم Apache لـ EasyPHP | |
شجرة يمكن وضع البرامج النصية فيها CGI لخادم Apache |
الميزة الرئيسية لـ EasyPHP هي أن التطبيق يأتي مهيئًا مسبقًا. وبالتالي، فإن Apache و PHP و MySQL مهيأة بالفعل للعمل معًا. عند تشغيل EasyPhp من خلال الرابط الموجود في قائمة البرامج، تظهر أيقونة في أسفل يمين الشاشة.
![]() |
يجب أن تومض الحرف E مع نقطة حمراء إذا كان خادم الويب Apache وقاعدة البيانات MySQL قيد التشغيل. عند النقر عليها بزر الماوس الأيمن، يتم الوصول إلى خيارات القائمة:

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

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

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

تُظهر الشاشة أعلاه، على سبيل المثال، أن الوظائف اللازمة لاستخدام قاعدة البيانات MySQL موجودة بالفعل.
يقدم زر "الإعدادات" (paramètres) معلومات login/motdepasse الخاصة بمسؤول قاعدة البيانات MySQL.

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

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

واستخدمنا الزر 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:

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

في هذا المثال، تم تكوين خادم Apache للعمل على المنفذ 81. المنفذ الافتراضي له هو 80. يتم التحكم في هذه النقطة بواسطة السطر التالي من الملف httpd.conf الذي سبق ذكره:
10.3.3. ملف تكوين Apache [htpd.conf] htpd.conf
عندما نريد تكوين Apache بشكل دقيق، نضطر إلى تعديل ملف التكوين httpd.conf "يدويًا" الموجود هنا في المجلد <easyphp>\apache\conf:

فيما يلي بعض النقاط التي يجب تذكرها في ملف التكوين هذا:
| الدور |
يشير إلى المجلد الذي توجد فيه شجرة Apache | |
يشير إلى المنفذ الذي سيعمل عليه خادم الويب. عادةً ما يكون 80. بتغيير هذه السطر، يمكننا جعل خادم الويب يعمل على منفذ آخر | |
عنوان البريد الإلكتروني لمسؤول خادم Apache | |
اسم الجهاز الذي "يعمل" عليه خادم Apache | |
مجلد تثبيت خادم Apache. عندما تظهر أسماء ملفات نسبية في ملف التكوين، فإنها تكون نسبية بالنسبة لهذا المجلد. | |
المجلد الجذر لشجرة صفحات الويب التي يقدمها الخادم. هنا، سيتوافق عنوان URL http://machine/rep1/fic1.html مع الملف E:\Program Files\EasyPHP\www \rep1\fic1.html | |
يحدد خصائص المجلد السابق | |
مجلد السجلات، أي في الواقع <ServerRoot>\logs\error.log : E:\Program Files\EasyPHP\apache\logs\error.log. هذا هو الملف الذي يجب الرجوع إليه إذا لاحظت أن خادم Apache لا يعمل. | |
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. | |
يحدد خصائص المجلد أعلاه | |
أسطر تحميل الوحدات النمطية التي تسمح لـ Apache بالعمل مع PHP4. | |
يحدد امتدادات الملفات التي يجب اعتبارها ملفات يجب معالجتها بواسطة PHP |
10.3.4. إدارة MySQL باستخدام PhpMyAdmin
في صفحة إدارة EasyPhp، انقر على الزر PhpMyAdmin:

تتيح القائمة المنسدلة أسفل Accueil عرض قواعد البيانات الحالية. | ![]() |
الرقم الموجود بين قوسين هو عدد الجداول. إذا اخترنا قاعدة بيانات، فستظهر الجداول الموجودة فيها: | ![]() |
توفر صفحة الويب عددًا من العمليات على قاعدة البيانات:

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

لا يوجد هنا سوى مستخدم واحد: 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، وانتقل إلى دليل البرنامج النصي السابق وقم بتشغيله:
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 الافتراضية. يمكننا إجراء الاختبارات التالية:
- كتابة البرنامج النصي التالي:
//برنامج 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
}//فئة
- احفظ هذا البرنامج باسم 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.
- تنفيذ البرنامج:
في الأمر أعلاه، يجب استبدال [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
مجلد ملفات تكوين Apache | |
مجلد ملفات سجلات (التتبع) Apache | |
ملفات 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 الذي يحتوي على السطر التالي فقط:
وضعه في جذر صفحات خادم Apache (DocumentRoot أعلاه). اطلب URL http://localhost/intro.php. يجب أن تظهر قائمة بالمعلومات php:

يعرض البرنامج النصي 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. نحصل على الصفحة التالية:

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. ثم قم بإجراء الاختبار التالي:
- اكتب البرنامج النصي:
#!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
;
- ضع هذا البرنامج النصي في <cgi-bin>\heure.pl حيث <cgi-bin> هو المجلد الذي يمكنه استقبال البرامج النصية CGI (انظر httpd.conf). السطر الأول #!c:\perl\bin\perl.exe يشير إلى مسار الملف القابل للتنفيذ perl.exe. قم بتعديله إذا لزم الأمر.
- قم بتشغيل Apache إذا لم يكن قد تم ذلك
- اطلب باستخدام متصفح URL http://localhost/cgi-bin/heure.pl. ستحصل على الصفحة التالية:

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، فسنحصل على صفحة مشابهة للصفحة التالية:

10.9.3. رابط PHP - PWS
- فيما يلي ملف .reg مخصص لتعديل قاعدة التسجيلات. انقر نقرًا مزدوجًا على هذا الملف لتعديل القاعدة. هنا، يوجد dll المطلوب في d:\php4 مع الملف القابل للتنفيذ لـ php. قم بالتعديل إذا لزم الأمر. يجب مضاعفة علامات \ في مسار ملف dll.
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map]
".php"="d:\\php4\\php4isapi.dll"
- أعد تشغيل الجهاز حتى يتم تطبيق التعديل على سجل التسجيل.
- قم بإنشاء مجلد php في d:\inetpub\wwwroot الذي يمثل جذر الخادم PWS. بعد ذلك، قم بتنشيط PWS وانتقل إلى علامة التبويب "متقدم". اختر الزر "إضافة" لإنشاء مجلد افتراضي:
- قم بتأكيد كل شيء وأعد تشغيل PWS. ضع في d:\inetpub\wwwroot\php الملف intro.php الذي يحتوي على السطر التالي فقط:
- اطلب من الخادم 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>:

تتمثل ببساطة في فك ضغط هذا الأرشيف في مجلد. اختر مجلدًا لا يحتوي مساره إلا على أسماء خالية من المسافات (ليس "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. لتشغيله، تتوفر روابط في قائمة البرامج:
لتشغيل Tomcat | |
لإيقافه |
عند تشغيل Tomcat، تظهر نافذة DOS تحتوي على المحتوى التالي:

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

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

انقر على الرابط 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

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

في قسم 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:

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

من الآن فصاعدًا، يمكننا ترجمة برامج Java المتوافقة مع معيار J2EE، ولا سيما برامج Java servlets. يستخدم Jbuilder للترجمة فقط، بينما يتولى Tomcat التنفيذ لاحقًا وفقًا للطرق الموضحة في الدورة التدريبية.
10.12. خادم الويب Cassini
للعمل مع منصة .NET من Microsoft، يمكن استخدام خادم الويب Cassini. يتوفر هذا الخادم عبر منتج آخر يسمى [WebMatrix] وهو بيئة مجانية لتطوير الويب على منصات .NET متاحة على الرابط:

سنقوم بمتابعة خطوات تثبيت المنتج بعناية:
- تنزيل وتثبيت منصة .NET (1.1 في مارس 2004)
- تنزيل وتثبيت WebMatrix
- تنزيل وتثبيت MSDE (Microsoft Data Engine) وهو إصدار محدود من SQL Server.
بمجرد انتهاء التثبيت، يصبح المنتج [WebMatrix] متاحًا في البرامج المثبتة:

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

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

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

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

- تسمح علامة التبويب [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 إذا لم يكن قد تم تشغيله بالفعل

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

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

لنفتح نافذة 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] بدون معلمات:
نحصل على نافذة مساعدة:

تقبل تطبيق [WebServer]، المعروف أيضًا باسم خادم الويب Cassini، ثلاثة معلمات:
- /port: رقم منفذ خدمة الويب. يمكن أن يكون أي رقم. القيمة الافتراضية هي 80
- /path: المسار الفعلي لمجلد على القرص
- /vpath: المجلد الافتراضي المرتبط بالمجلد الفعلي السابق. يجب الانتباه إلى أن الصيغة ليست /path=المسار بل /vpath:المسار، على عكس ما يذكره لوحة المساعدة أعلاه.
لنضع الملف [demo1.aspx] في المجلد التالي:

لنربط المجلد الافتراضي [/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 نشطًا عندئذٍ وتظهر أيقونته في شريط المهام. إذا نقرنا عليها مرتين:

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

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

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

نرى إذن أنه إذا تم ربط المجلد الفعلي 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 أكثر كفاءة بكثير، ولكنها منتج تجاري.


