menu
  Home  ==>  articles  ==>  web  ==>  serveur_internet_iis_et_delphi   

Server Internet IIS et Delphi - John COLIBRI.


1 - IIS : Internet Information Server

Les applications Internet que nous pouvons construire avec Delphi sont utilisables en deux mode
  • un mode utilisant les resources locales (Web App Debuggerà ou spécifiques à Delphi (IntraWeb StandAlone)
  • un mode utilisant un véritable Serveur (IIS, Appache, Netscape)
Le déploiement des applications pour IIS nécessite à la fois l'accès à un serveur IIS et une connaissance raisonnable de son administration.

Cet article a pour but de vous présenter, pour XP professionne, avec IIS 6

  • comment installer IIS
  • comment utiliser IIS pour accéder aux extentions web



2 - Installation et Test IIS

2.1 - Installation du serveur IIS

Si IIS a déjà été installé sur votre PC, nous pouvez sauter ce paragraphe. Pour tester si c'est le cas, voyez le paragraphe suivant.

Voici les étapes pour installer IIS sur XP Pro.
   depuis la barre des tâches Windows, sélectionnez "Démarrer | Paramettres | Panneau de configuration"

panneau_de_configuration

   le panneau de configuration est affiché

le_panneau_de_configuration

   sélectionnez "Ajout/Suppression de programmes"
   les programmes installés sont présentés

les_programmes_installes

   sélectionnez "Ajouter ou supprimer des composants Windows"
   la liste des composants qui seront disponibles es présenté

liste_des_composants_windows

Dans ce dialogues

  • les cases non cochées correspondent à des programmes non installés (par exemple "Accessoires et utilitaires" dans le cas de notre figure)
  • les cases cochées correspondent à des programmes intallés ("Internet Explorer" dans notre cas)
  • les cases grisées correspondent à des programmes partiellement installés
   recherchez "Services Internet (IIS)". Si la case est cochées, IIS est installé, et il n'y a rien d'autres à installer

Nous supposons que ce n'est pas le cas, et voici comment installer IIS:

   cliquez sur "Services Internet (IIS)" pour cocher cette CheckBox

ATTENTION: ne décochez pas les autres composants. La Listbox contiendra les composants qui, après l'installation, seront présent ou non. Si vous décochez un composant, il sera déinstallé !

selectionnez_iis

   cliquez "Suivant"

copie_des_fichiers_iis

copie_en_cours

fin_de_l_installation



2.2 - Test de IIS

Pour véfifier si IIS a bien été installé
   depuis la barre des tâches Windows, sélectionnez "Démarrer | Paramettres | Panneau de configuration | Outils d'administration"

   le dialogue présentant les outils d'administration est affiché

outils_d_administration

   sélectionnez "Services"

   la liste des services est présenteé, et nous constaons que le service correspondant à IIS est démarr

le_service_iis_est_demarre



De plus, l'installateur a créé un répertoire INETPUB qui est le répertoire utilisé par défaut par IIS pour stocker les pages et les scripts gérés par le serveur

le_repertoire_inetpub



2.3 - Déploiement d'une page statique

Pour déployer une page statique, appelée par exemple INDEX.HTML, il suffit de la placer dans le répertoire WWWROOT :
   ouvrez le bloc note et tapez le code d'une simple page :

  <HTML>
    <BODY>
      Hello World
    </BODY>
  </HTML>

   sauvegardez cette page comme

    C:\INETPUB\WWWROOT\INDEX.HTML

   lancez un explorateur Web (Internet Explorer dans notre cas), et, dans la combo d'adresse, tapez

    HTTP://LOCALHOST/INDEX.HTML

   kle texte sera affiché :

index_html




3 - Déploiement d'extensions Isapi ou CGI



3.1 - Déploiement d'une DLL ISAPI

3.1.1 - Les répertoires virtuels

Pour qu'un utilisateur externe puisse accéder à une page générée par un ISAPI, il faut que la DLL ISAPI soit placée dans un répertoire que IIS connaît.

IIS permet de créer des "répertoires virtuels", correspondant

  • à un "alias", vu par l'utilisateur
  • à un sous répertoire de C:\InetPub, vu côté serveur
Pour donner un exemple
  • nous stockerons notre .DLL dans

    C:\InetPub\ ?? default \mon_dir\mon_isapi.dll

  • dans Internet Explorer (ou FireFox ou Opera) l'utilisateur tapera l'URL

    htttp://localhost/mon_alias.mon_isapi.dll

Il faut donc créer un répertoire virtuel
  • dont l'alias est "mon_alias"
  • auquel correspondra le répertoire "mon_dir"


3.1.2 - Création de notre répertoire virtuel

Pour créer notre répertoire virtuel
   créez tout d'abord le répertoire physique qui correspondra au répertoire virtuel. Pour cela, utilisez l'explorateur Windows pour créer un répertoire, par exemple

    C:\INETPUB\SCRIPTS\MON_REPERTOIRE

creez_votre_repertoire

   Puis sélectionnez l'icône "Poste de Travail" sur le bureau, puis "clic droit | gérer"

creer_un_repertoire_virtuel

   le dialogue de gestion de l'ordinateur est affiché

gestion_de_l_ordinateur

   sélectinonez "Services et Applications | Services Internet (IIS) | Site Web | Site Web par défaut | Click droit | Nouveau | Répertoire Virtuel"

nouveau_repertoire_virtuel

   l'assistant de création de répertoire virtuel est présenté

assistant_creation_repertoire_virtuel

   cliquez "Suivant"

   l'assistant demande de saisir le nom de l'alias

entrez_l_alias

   entrez votre alias, par exemple "mon_alias", puis cliquez "Suivant"

   l'assistant demande de désigner le nom du répertoire correspondant à l'alias

entrez_le_repertoire

   entrez votre répertoire, par exemple C:\INETPUB\SCRIPTS\MON_REPERTOIRE", puis cliquez "Suivant"

ATTENTION: le nom doit correspondre à un répertoire existant. Le plus simple est d'utiliser l'ellipse "..." pour désigner un répertoire connu

   l'assistant demande quels sont les droits de cet alias

droits_de_l_alias

   dans notre cas, nous avons coche "Exécuter" (pour un ISAPI/CGI WebBroker)

   cliquez "Suivant" puis "Finish"


3.2 - Création de la .DLL ISAPI

Pour tester notre installation, il faudra un page dynamique. Nous avons choisi de créer une extension ISAPI qui affiche un titre. Pour créer notre ISAPI, nous pouvons utiliser, par exemple, WebBroker.



3.2.1 - Création d'une .DLL Isapi WebBroker

Créons une extension IIS de type ISAPI qui affiche un texte
   "File | New | Other | Delphi Projects| Web Broker | Web Server Application"

creez_une_dll_isapi

   Delphi demande quel type d'extension IIS vous souhaitez créer

creation_de_script_isapi

   sélectionnez "ISAPI" et cliquez "Ok"

   une .DLL avec une forme tWebModule est présentée

la_dll_avec_son_twebmodule

   sauvegardez la librairie sous le nom D_MON_ISAPL.DLL

   créez une action simple par "sélection de la Form | clic droit | Action Editor"

   le dialogue de création des actions est présenté

ouverture_de_action_editor

   cliquez l'icône "Add new action"
   cliquez WebAction1, et dans l'Inspecteur d'Objets,

creer_une_action

   créez l'événement OnAction, et tapez le code qui générera un texte .HTML. Par exemple

Procedure TWebModule1.WebModule2WebActionItem1Action(
    SenderTObjectRequestTWebRequest
    ResponseTWebResponseVar HandledBoolean);
  Begin
    Response.Content:=
         '<HTML>'
       + '  <BODY>'
       + '    <H1>L''Institut Pascal</H1><BR>'
       + '    <Hello>'
       + '  </BODY>'
       + '</HTML>'
       ;
  End// WebModule2WebActionItem1Action

   compilez la .DLL par "project manager | d_mon_isapi.dll | clic droit | build"


3.3 - Déploiement de la DLL

Pour déplouer la .DLL
   copiez D_MON_ISAPI.DLL dans le répertoire

    C:\INETPUB\SCRIPTS\MON_REPERTOIRE



3.4 - Test de l'ISAPI

Il nous suffit à présent de chercher la page dynamique en utilisant n'importe quel explorateur Web. Nous utiliserons Internet Explorer

Pour afficher la page construite par notre ISAPI
   lancez Internet Explorer
   dans la combo box de l'adresse HTTP, tapez

    http://localhost/mon_alias/d_mon_isapi.dll

   la page est affichée

isapi_iis



3.5 - Déploiement sur un PC distant

Jusqu'à présent, nous avons utilisé IIS installé sur le même PC que l'explorateur Web. Les utilisateurs normalement accéderont à notre page depuis un autre PC.

Pour installer la .DLL ISAPI sur un véritable Serveur, la technique est exactement la même que précédemment:
   créez un répertoire virtuel
   copiez la .DLL dans ce répertoire
Côté utilisateur, c'est aussi similaire à ce que nous avons fait en local:
   lancez un explorateur Web
   tapez dans la combo de l'adresse, avec l'IP (ou le nom du domaine) suivi de l'alias et de la .DLL visée


Quelques précautions

  • si l'accès est refusé
    • sur le seveur, déactivez le par feu pour tester si le problème vient du pare feu : "Démarrer | Paramètres | Panneau de configuration | Pare Feu Windows" et cochez "Désactivé"

      pare_feu_windows

    • si l'affichage fonctionne, réactivez le pare feu, puis autorisez l'accès à cette .DLL

      authoriser_la_dll_isapi.png

  • il se peut en outre que l'accès soit protégé par un nom d'utilisateur et un mot de passe. Vous pouvez alors ajouter ces paramètres comme paramètrs CGI avec la syntaxe

        http://localhost/mon_alias/d_mon_isapi.dll&user=mon_user&password=mon_password



4 - Utilisation pour les CGI, ISAPI, Intraweb

L'article présenté est utilisable pour déployer
  • soit des .EXE CGI, soit des .DLL ISAPI
  • pour des extensions (CGI ou ISAPI) créées
    • manuellement (article CGI Forms)
    • par WebBroker, comme nous l'avons démontré dans notre exemple
    • par le Server Web Service (article Services Web)
    • par Intraweb en mode page (article IntraWeb Tutorial sur Intraweb en mode StandAlone)



5 - Télécharger le code source Delphi

Vous pouvez télécharger: Ce .ZIP qui comprend:
  • le .DPR, la forme principale, les formes annexes eventuelles
  • les fichiers de paramètres (le schéma et le batch de création)
  • dans chaque .ZIP, toutes les librairies nécessaires à chaque projet (chaque .ZIP est autonome)
Ces .ZIP, pour les projets en Delphi 6, contiennent des chemins RELATIFS. Par conséquent:
  • créez un répertoire n'importe où sur votre machine
  • placez le .ZIP dans ce répertoire
  • dézippez et les sous-répertoires nécessaires seront créés
  • compilez et exécutez
Ces .ZIP ne modifient pas votre PC (pas de changement de la Base de Registre, de DLL ou autre). Pour supprimer le projet, effacez le répertoire.

La notation utilisée est la notation alsacienne qui consiste à préfixer les identificateurs par la zone de compilation: K_onstant, T_ype, G_lobal, L_ocal, P_arametre, F_unction, C_lasse. Elle est présentée plus en détail dans l'article La Notation Alsacienne



Comme d'habitude:

  • nous vous remercions de nous signaler toute erreur, inexactitude ou problème de téléchargement en envoyant un e-mail à jcolibri@jcolibri.com. Les corrections qui en résulteront pourront aider les prochains lecteurs
  • tous vos commentaires, remarques, questions, critiques, suggestion d'article, ou mentions d'autres sources sur le même sujet seront de même les bienvenus à jcolibri@jcolibri.com.
  • plus simplement, vous pouvez taper (anonymement ou en fournissant votre e-mail pour une réponse) vos commentaires ci-dessus et nous les envoyer en cliquant "envoyer" :
    Nom :
    E-mail :
    Commentaires * :
     

  • et si vous avez apprécié cet article, faites connaître notre site, ajoutez un lien dans vos listes de liens ou citez-nous dans vos blogs ou réponses sur les messageries. C'est très simple: plus nous aurons de visiteurs et de références Google, plus nous écrirons d'articles.



6 - L'auteur

John COLIBRI est passionné par le développement Delphi et les applications de Bases de Données. Il a écrit de nombreux livres et articles, et partage son temps entre le développement de projets (nouveaux projets, maintenance, audit, migration BDE, migration Xe_n, refactoring) pour ses clients, le conseil (composants, architecture, test) et la formation. Son site contient des articles avec code source, ainsi que le programme et le calendrier des stages de formation Delphi, base de données, programmation objet, Services Web, Tcp/Ip et UML qu'il anime personellement tous les mois, à Paris, en province ou sur site client.
Created: jan-04. Last updated: mar-2020 - 250 articles, 620 .ZIP sources, 3303 figures
Contact : John COLIBRI - Tel: 01.42.83.69.36 / 06.87.88.23.91 - email:jcolibri@jcolibri.com
Copyright © J.Colibri   http://www.jcolibri.com - 2001 - 2020
Retour:  Home  Articles  Formations  Développement Delphi  Livres  Pascalissime  Liens  Download
l'Institut Pascal

John COLIBRI

+ Home
  + articles_avec_sources
    + bases_de_donnees
    + web_internet_sockets
      – http_client
      – moteur_de_recherche
      – javascript_debugger
      + asp_net
      – client_serveur_tcp
      – site_editor
      – pascal_to_html
      – cgi_form
      + les_logs_http_bruts
      + les_blogs
      – intraweb_tutorial
      + services_web
      – serveur_web_iis
      – client_serveur_pop3
      – lecteur_mails_free
    + services_web_
    + prog_objet_composants
    + office_com_automation
    + colibri_utilities
    + uml_design_patterns
    + graphique
    + delphi
    + outils
    + firemonkey
    + vcl_rtl
    + colibri_helpers
    + colibri_skelettons
    + admin
  + formations
  + developpement_delphi
  + présentations
  + pascalissime
  + livres
  + entre_nous
  – télécharger

contacts
plan_du_site
– chercher :

RSS feed  
Blog

Architecte Delphi Architecture, Refactoring, choix de technologies, revue de code, mise en place de test, optimisation - Tél 01.42.83.69.36