Génération de pages dynamiques

La plupart de ce texte porte sur les moyens d'élaborer de créer des pages dynamiques grâce à des scripts Perl, scripts PHP, Java Servlets et Java Server Pages. La configuration de base d'Apache fournit un appui pour les programmes CGI (basé sur des scripts Perl et substituts), et pour la relativement limitée 'server-side includes (SSI) mécanisme. Les modules concernés (mod_env, mod_cgi et mod_include) sont inclus dans la compilation d'Apache par défaut. Il est préférable de limiter le nombre de répertoires qui contiennent du code exécutable qui peut générer des pages dynamiques. La configuration par défaut, comme spécifié dans le fichier httpd.conf, les permis de programmes CGI uniquement dans le répertoire / local / apache / cgi-bin, et il n'y a pas de répertoires qui permettent de fichiers SSI. Ces valeurs par défaut sont susceptibles d'être trop restrictif. Si vous souhaitez vous détendre un peu les contraintes, vous pouvez ajouter l'Extra directives Directory dans le fichier httpd.conf principal. Ces directives supplémentaires répertoire doit contenir les options de contrôle qui permettent l'exécution de scripts CGI dans un répertoire ou processing SSI de fichiers d'un répertoire. Server-Side Includes sont signalés par des balises spéciales dans un fichier HTML, les balises telles que:


   
   
  

Apache doit lire les fichiers, vérifier le code HTML, et de trouver et de traiter les tags SSI. Cela accroît sensiblement le coût de la récupération normale d'un fichier HTML. Il est préférable d'utiliser une extension de fichier distinct pour signaler les fichiers pour lesquels SSI traitement est nécessaire. L'extension conventionnelle. Shtml; le serveur doit être configuré pour traiter ces dossiers de manière appropriée. Le fichier de configuration httpd.conf devra inclure les directives:

AddType text / html. Shtml AddHandler server-parsed. Shtml

La première directive définit le type de contenu qui doit être utilisé dans l'entête HTTP lorsque le texte des fichiers traités sont retournés au client. La deuxième directive permet à l'analyse réelle par le serveur Web. Tags SSI comme flastmod ou la taille sont inoffensifs, tout comme l'inclusion d'autres fichiers HTML via la balise include. L'exécution de code, comme le permet par une balise exec ou par une balise include spécifiant la sortie d'un script CGI, peut être risqué. Le code mai être n'importe quel script shell: si votre site n'est pas correctement sécurisés, il existe des moyens que les pirates peuvent changer le script qui sera exécuté à partir d'un fichier SSI. L'Apache options qui permettent l'utilisation des SSI, vous permettent de faire la distinction entre les utilisations simples et les utilisations qui impliquent l'exécution de code. Si vous souhaitez autoriser les fichiers dans un répertoire à SSI-parsed, vous aurez besoin d'une directive Directory qui identifie le répertoire et le niveau d'utilisation qui vous permettra:

 Options + Includes ...  ou  Options + IncludesNOEXEC ... 

Comme exemple d'inclusions côté serveur, vous pouvez créer un compteur simple pour une utilisation dans une page web (ce script est pour Linux ou Unix). Cela impliquerait un script shell, tels que les suivants:

Val Val = `cat` NewVal compteur = `expr $ + 1` echo $ NewVal> counter echo $ NewVal

Ce code devra être enregistré dans un Count.sh fichier, le fichier devrait être rendu exécutable et un fichier pour le compteur devra être créée avec une ligne de données avec la valeur initiale 0. Le compteur pourrait alors être invoquée à partir de code HTML dans un fichier. Shtml comme suit:

... 
Cette page a été consultée fois.

(Tous les fichiers devraient être dans le même répertoire.) Le fichier httpd.conf contient une directive ScriptAlias qui identifie l'emplacement par défaut de votre répertoire cgi-bin. Une directive ScriptAlias organise également que Apache va traiter tous les fichiers dans le répertoire spécifié que les exécutables, si Apache va essayer de fourche-exec ces fichiers plutôt que de rentrer simplement au client. Si vous voulez des programmes CGI dans d'autres répertoires, vous aurez besoin d'utiliser une extension de fichier qui permettra d'identifier les programmes CGI:

AddHandler cgi-script. CGI

Vous voudrez peut-être à utiliser. CGI pour C compilé / C + + et. Pl pour les scripts Perl, auquel cas vous pourriez avoir:

AddHandler cgi-script. CGI. Pl

Vous aurez aussi besoin directives Directory qui identifient ces répertoires qui contiennent des scripts exécutables mai, par exemple:

 Options + ExecCGI 

Apache doit alors exécuter tous les fichiers. CGI dans ce répertoire (et les fichiers. Pl si vous avez spécifié les deux). Le serveur web a pour lancer un nouveau processus pour un programme CGI (ou d'une balise exec SSI). Le nouveau processus est créé via fourche appelle ensuite exec sur Linux / Unix. Le nouveau processus hérite du même utilisateur-ID et l'ID du groupe que le processus de création, par conséquent, il aura normalement User-ID 'nobody'. Souvent, vous voudrez ces processus pour s'exécuter avec UID respectives. Une approche repose sur un ensemble-user-ID du fichier système. Le système Apache incorpore un mécanisme plus sûr via ses extensions suexec. Le mécanisme Suexec impose une série de contrôles de sécurité avant de changer l'ID utilisateur associé à un processus enfant CGI. Ces contrôles visent à empêcher quiconque de pénétrer sournoisement un programme à exécuter avec les utilisateurs-id = "root", et d'éviter de rencontrer n'importe quel script ou exécutable qui pourrait avoir été modifiée par quelqu'un d'autre que le propriétaire officiel. Vous devez être administrateur d'un système avec un accès root pour mettre en place les extensions suexec. Si vous exécutez votre propre système Linux, vous pouvez essayer ceci comme un exercice de pointe dans l'administration d'Apache.

PourWindows utilisateurs, l'installation d'Apache est triviale. Vous téléchargez vos fichiers Apache dans un fichier archive compressé exécutable (à partir de http://httpd.apache.org/). Ce fichier peut être exécuté, il va créer le serveur Apache et ses fichiers requis, et d'ajouter des raccourcis vers votre menu Démarrer. En général, votre Apache sera installé dans C: \ Program Files \ Apache Group \ Apache. Ce répertoire a sous-répertoires \ bin (exécu

s et les scripts), \ (fichiers de conf de configuration), \ logs (fichiers journaux), \ cgi-(bin répertoire standard pour vos programmes CGI) et \ htdocs (le répertoire standard pour les documents). Le répertoire htdocs devrait contenir plusieurs fichiers d'exemples, mais le répertoire cgi-bin sera probablement vide. Vous êtes susceptibles d'avoir à faire un changement dans le répertoire \ conf \ httpd.conf; ce fichier peut être ouvert avec n'importe quel éditeur de texte. Le fichier n'a probablement pas une valeur spécifiée pour le paramètre ServerName; vous mai nécessité de définir quelque chose comme ServerName localhost (ou peut-être ServerName 127.0.0.1). (Si rien n'est défini, Apache va essayer de trouver un serveur DNS qui permet d'indiquer le nom de serveur correct basé sur l'adresse IP de votre machine et pour les enregistrements DNS, cette tentative échouera si vous n'êtes pas relié à un serveur DNS, Apache a gagné 't start.) Après de modifier httpd.conf, votre base de Windows Apache devrait être prêt à courir. Vous pouvez le lancer depuis le menu Démarrer, puis lancez un navigateur et d'utiliser ce navigateur pour vous connecter à votre serveur localhost.

Linux / Unix ont un travail un peu plus à faire, mais bénéficient en obtenant une meilleure compréhension du système d'Apache. Linux / Unix, les utilisateurs auront besoin d'environ 20 Mo d'espace disque pour un répertoire Apache déploiement final (/ local / apache), et dans l'espace un peu plus pour un répertoire où Apache est compilé et lié (/ home/me/apache_1.3.27). Vous téléchargez une version tar.gzip du serveur (1.3.27 ou supérieur); décompresser (gunzip) cette archive, et extraire les fichiers (tar-xf ...). Ce processus devrait créer un sous-répertoire apache_1.3.27 dans votre répertoire home. C'est effectivement votre copie principale. Une grande partie du matériel provenant de ce répertoire sera dupliqué dans votre répertoire de déploiement final. Le répertoire Apache contient bin, cgi-bin, conf, htdocs, les icônes, les billes, les sous-répertoires src et autres. Le sous-répertoire cgi-bin contient un exemple quelques petits programmes qui utilisent des scripts Shell et Perl. Le répertoire htdocs contient un certain nombre d'exemples, notamment celui utilisé pour illustrer la négociation de contenu en fonction des préférences linguistiques d'un client. Il contient également la documentation d'Apache dans le répertoire / manuel.

un article présenté par Jasmin Summersby


Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite.
Important: Cet article "Génération de pages dynamiques» a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.


Online: 256 users browsing the articles directory