CITIC74 : Mise en place d'un site Web

Documentation pour la mise en place d'un site web



Version :V4.5 // 14 fevrier 2007
Auteur : Sébastien Delcroix/
Auteur : Joël Golliet/
Copyright © CITIC Haute-Savoie // Conseil Général Haute-Savoie
Licence : Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence GNU Free Documentation License, Version 1.1 ou ultérieure publiée par la Free Software Foundation.


Résumé :
Ce document explique comment mettre en place un serveur Web sur les serveurs du CITIC (ex-CRI) de Haute-Savoie


Sommaire

1.Introduction et informations sur le support
1.1. Support
2. Techniquement, de quoi disposent les webmasters sur les serveurs gérés par le CITIC74 ?
3.Comment faire la mise à jour
4.Consigne sur le nommage des fichiers
4.1. Nommage des fichiers
4.2. Pages par défaut
5.Statistiques
5.1. Explication des indications fournies avec Webalizer
5.1.1. Outil
5.1.2. Les différentes valeurs des tableaux et graphiques :
5.1.3. Le résumé par mois.
5.1.4. Le détail pour chaque mois.
6.Moteur de recherche
7.Utilisation de formulaire avec MAILFORM
8.Utilisation de formulaires écrits en PHP
8.1. Principe de base
8.2. Généralités sur le langage PHP
8.3. Généralités sur les formulaires en HTML
8.4. Traitement du formulaire par du code PHP
9.Gérer des accès restreints
9.1. fichier_de_gestion_des_utilisateurs
9.1.1. utiliser le fichier déjà présent sur le serveur et géré par le CITIC74
9.1.2. utiliser un fichier spécifique que vous gérez totallement
9.2. Pour crypter un mot de passe, vous pouvez vous servir :
9.3. Utilisateurs autorisés
9.4. Démonstration d'accès restreints à plusieurs niveaux
10.Référencement dans des moteurs de recherche extérieurs
11.Compteurs et autres gadgets
11.1. Compteur de visites
12.Garantie sur les données
13.Trucs et astuces pour webmasters - Foire aux Questions - FAQ
13.1. Liés au PHP
13.1.1. Problèmes d'apostrophes dans le texte : magic_quotes
13.1.2. Problèmes de restriction "Safe Mode"
13.1.3. "URL Rewriting"
13.1.4. Redirection automatique
13.1.5. Fonction "glob" désactivée
13.2. Liés au MySQL (SGBD)
13.2.1. Problème d'accès au serveur MySQL depuis l'extérieur
13.3. Limiter la récupération des adresses email par des "spammers"
13.4. "Pur" HTML
13.4.1. Redirection automatique sur une page
13.5. Liés aux requêtes HTTP extérieures - Passage par proxy obligatoire
13.5.1. Contexte
13.5.2. Raisons de cette obligation
13.5.3. Exemple de code pour utiliser ce mode par proxy
13.6. Commandes autorisées dans les fichiers .htaccess
Bookmarks


1. Introduction et informations sur le support

Ce document est destiné à tous les responsables de sites web. Il permet d'expliquer la marche à suivre pour la mise en place d'un site Web sur les serveurs du CITIC de Haute-Savoie (CITIC74).

Pour avoir un site web hébergé au CITIC74, il faut au minimum un compte email au CITIC74 ainsi qu'un nom de domaine. Note : il n'est pas forcé d'acheter un nom de domaine. Un sous-domaine d'un de ceux que le CITIC74 possède pourra être mis à disposition. Dans ce cas, le nommage du site sera proposé par le CITIC74 (ex : http://mjc-evian.hautesavoie.net/). Pour simplifier la lecture de la documentation, les exemples et indications fournies seront faits avec le nom de domaine virtuel "nom-de-domaine.org". Remplacez cette valeur par votre nom de domaine et vous aurez des informations en rapport avec votre situation.

1.1. Support

Pour tout ce qui touche au support, voir http://www.citic74.fr/rubrique4.html et utilisez exclusivement les contacts par email. L'adresse email généralement à utiliser (sauf si vous disposez d'une hotline de 1er niveau) sera donc support <AT> citic74.fr. Merci de faire figurer clairement dans chaque demande le site web concerné (au travers de son URL) et vos coordonnées. Si vous n'êtes pas la personne directement en charge de ce site web (prestataire extérieur pour une collectivité locale par exemple), merci de mettre en copie la personne responsable afin que nous puissions nous assurer de la légitimité de la demande.


[Retour au sommaire]

2. Techniquement, de quoi disposent les webmasters sur les serveurs gérés par le CITIC74 ?

Les serveurs de haute-disponibilité mis à disposition fonctionnent sous Debian GNU/Linux, un système d'exploitation et une distribution fiables, sécurisés (insensibles aux virus, protection des fichiers, limitation des droits) utilisés à grande échelle par les professionnels de l'hébergement web.

Le serveur web est Apache, le plus utilisé des serveurs webs en fonctionnement dans le monde (60% de part de marché en février 2007 sur le segment des serveurs web sur Internet, données fournies par NetCraft.com)

Les pages web peuvent être écrites en HTML, SHTML (activation de cette fonctionnalité sur demande explicite du webmaster), PHP (versions 3 et 4 supportées, version 4.3.2 actuellement en place).

Pour les sites qui le nécessitent, le webmaster peut demander une base de données MySQL (version actuelle 3.23) qu'il est possible de gérer à travers une interface web avec phpMyAdmin (sera alors accessible à l'adresse https://www.nom-de-domaine.org/phpmyadmin/). Cette base de données (une par site web) n'est pas activée par défaut et peut être mise à disposition sur simple demande (en contactant votre assistance). Si le besoin est présent et "justifié", plusieurs bases de données MySQL pourront être mises à disposition pour un même site.

Pour les développements de sites web qui pourraient le nécessiter, le CITIC74 est en mesure de fournir des plateformes d'hébergement mutualisées proposant un couple PHP 4.3/MySQL 4 et PHP 5.1/MySQL 5. Si vous êtes dans un cas où votre site web ne peut pas fonctionner sur la plateforme "standard" décrite ci-dessus (PHP 4.3/MySQL 3.23), prenez contact avec votre assistance pour voir dans quelle mesure cela peut être mis en place.

L'utilisation de PHP et MySQL couplés permet la mise en place et l'utilisation d'un grand nombre "d'applications web" telles que Spip par exemple, un outil de publication collaborative de plus en plus déployé sur les sites web d'EdRes74 qui sont hébergés au CITIC74, et qui est utilisé notamment pour le site web de PingOO V3. Voir le site SPIP-EDU notamment.

L'utilisation conjointe de PHP et de MySQL permet la mise en place de nombreuses applications très pratiques, avec un avantage de taille : il n'est pas nécessaire de savoir programmer en PHP pour les utiliser ! Vous pouvez par exemple utiliser wikini (système de publication Wiki : http://www.wikini.net), phpBB (système de forums en ligne : http://www.phpbb-fr.com), phpFAQtory (système de foire aux questions : http://www.phpfactory.phpindex.com), Monalbum (Album photos sur Internet : http://www.3dsrc.com/monalbum/), etc. Des milliers d'applications gratuites sont ainsi disponibles et librement utilisables sur Internet ! Voilà par exemple un site regroupant des scripts PHP qui vont souvent utiliser du MySQL (http://www.phpscripts-fr.net/). Voir aussi http://www.hiwit.org/scripts/php/. Néanmoins, aucun support ne pourra être assuré par l'équipe technique du CITIC74 concernant la mise en oeuvre de tels outils, le CITIC74 n'ayant pas un rôle de support technique sur le contenu des sites qu'il héberge.

Le PHP est soumis à des restrictions SafeMode. Pour que certains scripts puissent contourner ces blocages (scripts devant par exemple avoir la possibilité de créer un fichier dans l'arborescence du site web), il est nécessaire de faire une demande à l'équipe technique du CITIC74. Voir la section Trucs et astuces à la fin de cette documentation.

Le PHP disponible sur les serveurs du CITIC74 est soumis, par défaut, à un fichier de configuration (php.ini) partagé et relativement "basique". Pour les webmasters qui le souhaitent, ce fichier de configuration peut être personnalisé en fonction de leurs besoins (ex : désactivation des "magic_quotes" pour tout le site, configuration de l'adresse email utilisée en adresse source en cas d'envoi de mails via du code php, ...). Ces demandes doivent être faites en contactant votre assistance en étant le plus précis possible sur les paramètres à modifier (si vous demandez leur modification, c'est que vous savez précisément de quoi vous parlez).

S'ils le souhaitent, les webmasters peuvent avoir accès à un site de développement qui leur permet de tester toute modification sur leur site web avant de les rendre effectives sur le serveur "officiel". Cela évite notamment de rendre partiellement inopérationnel un site web lors de modifications lourdes.

Le CITIC74 fournit des statistiques de fréquentation du site (voir chapitre correspondant)

Un moteur de recherche interne au site et mis à jour selon la volonté du webmaster peut être utilisé (voir chapitre correspondant)

Pour agrémenter les sites, un compteur peut y être intégré... (voir chapitre correspondant)

La plateforme d'hébergement du CITIC74 ne supporte pas tout ce qui tourne autour de J2EE/Tomcat (Java), ASP/SQL Server (Microsoft), ni les bases de données PostgreSQL et Oracle.

Pour des raisons évidentes de sécurité de tous, aucun script CGI spécifique ne pourra être mis en place.

Les technologies spécifiques à certains outils de développement web risquent de ne pas fonctionner (ou seront sont mal supportés, surtout si ces technologies ne fonctionnent que sur les serveurs Microsoft comme les extensions FrontPage par exemple)

Vous pouvez faire apparaître le CITIC74 comme hébergeur de votre site (on apprécie ce genre de petites attentions). Avec le changement du statut et de nom du CRI74 qui est devenu CITIC74 le 01/01/2007, le logo est en cours de refonte.


[Retour au sommaire]

3. Comment faire la mise à jour

La mise à jour doit s'effectuer par FTP, en utilisant soit un logiciel dédié soit un module à l'outil de création de site web utilisé permettant le chargement de fichiers sur un site distant (voir documentation du logiciel utilisé pour savoir si c'est possible).

Le CITIC74 vous recommande ces logiciels FTP :

Le FTP sur SSH ou SFTP n'est pas supporté.

Ce que le CITIC74 vous met à disposition pour les mises à jour :

Lorsque vous vous connectez sur la machine ftp.nom-de-domaine.org pour faire vos mises à jour, vous devez donc entrer aussi votre login (ou username) et votre mot de passe (ou password) afin d'établir la connexion entre votre machine et le serveur où sont hebergées vos pages web. (attention : la plupart des outils FTP établissent par défaut des connexions dites "anonymes". Il faut alors bien indiquer que c'est une connexion avec un identifiant qui est utilisée.)

Une fois connecté sur cette machine, vous devez déposer vos fichiers dans le répertoire www.nom-de-domaine.org/htdocs/, le seul où vous ayez les droits en écriture. Pour les webmasters qui ont à leur disposition un site de développement, les pages doivent être placées dans le répertoire www.nom-de-domaine.org/htdocs-dev/ pour ce site spécifique


[Retour au sommaire]

4. Consigne sur le nommage des fichiers

4.1. Nommage des fichiers

La machine qui héberge vos pages est une machine de type UNIX, le système est sensible aux majuscules et aux minuscules. Par exemple sous Microsoft Windows les fichiers TOTO.html et toto.html correspondent en fait au même fichier, sous UNIX ce sont deux fichiers distincts. Attention également à éviter les espaces et les accents dans les noms de fichiers et répertoires.

4.2. Pages par défaut

Dans chaque répertoire et sous répertoire de votre site il est conseillé d'avoir une page par défaut de façon à ce que quelqu'un qui viendrait visiter votre site et taperait une URL du type http://www.nom-de-domaine.org/monsite/monrep/ ne tombe pas sur une liste de fichiers ou sur une page vide. Cette page par défaut peut ne contenir qu'un renvoi vers la page d'accueil du site.

Voici, dans l'ordre de priorité, le nom de la page par défaut qu'il faut utiliser :

  1. index.php
  2. index.php3
  3. index.html
  4. index.htm
  5. toc.htm
  6. welcome.htm
  7. Welcome.html


[Retour au sommaire]

5. Statistiques

5.1. Explication des indications fournies avec Webalizer

5.1.1. Outil

Les statistiques sont générées avec l'outil (Webalizer). Les statistiques sont présentées sous forme de pages HTML et sont mises à jour quotidiennement. Les caractéristiques majeures sont : la présence de graphiques, un bilan sur l'année, une analyse évoluée.

5.1.2. Les différentes valeurs des tableaux et graphiques :

5.1.3. Le résumé par mois.

C'est l'ensemble des totaux par mois et pour l'année en cours. Les moyennes journalières apparaissent aussi.

5.1.4. Le détail pour chaque mois.

L'accès se fait à partir d'un lien sur la page contenant le résumé par mois.


[Retour au sommaire]

6. Moteur de recherche

Un moteur de recherche basé sur ht://Dig est disponible pour votre site est disponible : http://www.nom-de-domaine.org/search/, vous pouvez modifier l'aspect des pages en changeant les fichiers qui se trouvent dans votre répertoire d'accueil FTP dans le sous répertoire : www.nom-de-domaine.org/htdocs/search/.

Attention: si vous modifiez ces pages, ne modifiez pas la syntaxe de certains élements, sinon ça ne fonctionnera plus. En cas de problème le CITIC74 pourra recréer ces pages qui viendront se substituer aux vôtres.

Pour lancer une "indexation" de votre site par le moteur de recherche, il faut utiliser l'adresse suivante : http://www.nom-de-domaine.org/cgi-bin/runsdb.pl. L'indexation se fera dans la nuit suivant la requète (il n'y a qu'une indexation possible par jour). Seul le compte désigné comme "propriétaire du site" (si vous avez un doute, contactez votre assistance) a la possibilité de provoquer cette mise à jour de l'indexation du site (authentification demandée nécessitant le nom et le mot de passe web correspondant).

Vous pouvez bien entendu mettre en place un moteur de recherche intégré à votre site web lorsque celui-ci fonctionne avec une base de données MySQL (fonction généralement intégrée dans les CMS).


[Retour au sommaire]

7. Utilisation de formulaire avec MAILFORM

Le CITIC74 a mis à disposition de ses utilisateurs un formulaire qui permettait d'envoyer un message électronique formaté à sa guise. Compte tenu du fait que les webmasters ont la possibilité de créer facilement des formulaires aussi puissants avec du code PHP par exemple (voir chapitre suivant), MAILFORM n'est plus utilisable sur les serveurs du CITIC74 pour nous éviter de maintenir une solution vieillissante et à l'intérêt moindre.


[Retour au sommaire]

8. Utilisation de formulaires écrits en PHP

Si mailform a longtemps été la seule vraie réponse au besoin de créer des formulaires qui envoient des informations par mail en fonction des informations saisies par l'internaute qui visite le site, le développement du langage PHP offre désormais des possibilités importantes dans ce domaine et peut donc logiquement être préféré à "mailform" qui n'est désormais plus supporté au CITIC74.

Ce chapitre va décrire brièvement le fonctionnement d'un formulaire écrit en PHP. De nombreuses documentations et sites sont dédiés à cette technique. Seules les notions de bases et un exemple concret seront abordés ici.

8.1. Principe de base

Le fonctionnement de formulaire en PHP est globalement :
  1. définition des variables dans le script HTML avec toutes les possibilités qu'offrent un formulaire HTML
  2. traitement des variables récupérées par le script PHP (et ici, envoi du mail à travers la fonction PHP adéquate)

8.2. Généralités sur le langage PHP

Ce langage est de plus en plus utilisé dans tous les sites web qui se veulent dynamiques sans pour autant utiliser des technologies exclusives telles que Flash par exemple. PHP en général couplé à une base de donnée (MySQL en l'occurence disponible au CITIC74) offre des possibilités énormes. Pour découvrir PHP et apprendre à l'exploiter du plus simple au plus compliqué, de très nombreux sites existent sur Internet. Voici les plus connus :

8.3. Généralités sur les formulaires en HTML

Plutôt que de reprendre des explications d'autres sites sur toutes les possibilités qui existent dans les formulaires en HTML, voici quelques liens qui traitent de cela :

8.4. Traitement du formulaire par du code PHP

Il est évident qu'il faut avoir ici quelques notions en programmation PHP.

Plutôt que de longs discours, vous trouverez ici un exemple concret qui vous a peut-être permis de vous inscrire à la LinuxEdu 2003. Voici le formulaire qui devait être rempli (version simplifiée) :

Et voici le code du script PHP qui y est appelé (qui traite les infos saisies et envoi un mail préformaté à l'adresse email qui y est mentionnée) : Astuce : si vous accéder au fichier formulaire.php3.txt (dernier lien cité ci-dessus) à travers Internet Explorer, il essaie d'interpréter le code qui y figure plutôt que d'afficher ce qui est un simple fichier texte (ce qui rend le fichier illisible)... Pour voir le "vrai" contenu du fichier (qui est donc le code du fichier.php3), faites "Affichage/Source" dans Internet Explorer ou utilisez Mozilla (ou Firefox) par exemple qui fera apparaître directement le fichier .txt.


[Retour au sommaire]

9. Gérer des accès restreints

Le serveur web étant Apache, il vous est possible de gérer des accès restreints avec des fichiers ".htaccess" .

Pour cela, vous devrez placer des fichiers nommés .htaccess dans les répertoires auxquels vous voulez restreindre l'accès. Les restrictions seront alors valables dans tous les sous-répertoires (sauf rencontre d'un autre fichier .htaccess avec d'autres droits).

Ce fichier peut être de la forme (il existe d'autres types de restrictions mais celles indiquées ici sont les plus logiques dans votre cas ; pour d'autres restrictions, consultez la documentation du serveur web Apache... à éviter) ; les lignes commençant par "#" sont des commentaires :

##############
AuthType Basic
AuthUserFile fichier_de_gestion_des_utilisateurs

AuthName "Accès sécurisé pour mon site web"
<Limit GET POST>
        require user liste_des_utilisateurs_autorisés_séparés_par_des_espaces
#       OU
#       require valid-user
</Limit>
##############

Explications :

9.1. fichier_de_gestion_des_utilisateurs

Pour ce fichier, vous avez 2 possibilités :

9.1.1. utiliser le fichier déjà présent sur le serveur et géré par le CITIC74

9.1.2. utiliser un fichier spécifique que vous gérez totallement

9.2. Pour crypter un mot de passe, vous pouvez vous servir :

9.3. Utilisateurs autorisés

Pour restreindre l'accès à certains utilisateurs parmi ceux qui figurent dans le fichier_de_gestion_des_utilisateurs, utilisez dans le .htaccess la commande "require user utilisateur1 utilisateur2 etc". Pour autoriser tous les utilisateurs contenus dans le fichier en question (s'il y en a beaucoup, ça vous évite de mettre la liste en entier), utilisez la commande "require valid-user". Ainsi, toute personne s'étant correctement authentifiée pourra accéder aux pages en questions.

9.4. Démonstration d'accès restreints à plusieurs niveaux

A titre d'exemple, on trouve ici une petite arborescence à 3 niveaux montrant brièvement les possibilités de la gestion d'accès restreints par groupe et par utilisateur référencés. 4 couples nom utilisateur/mot de passe peuvent être utilisés ici : utilisateur1/passwd1, utilisateur2/passwd2, utilisateur3/passwd3, utilisateur4/passwd4. Vous pouvez récupérer l'arborescence de cet exemple sur lequel vous pouvez vous basez pour créer votre propre zone en accès restreint à travers ce fichier demo_ar.tgz que vous pourrez ouvrir/décompresser avec WinZIP ou 7Zip (logiciel libre).

Arborescence des fichiers du répertoire de démo :
demo_ar
|-- .htaccess
|-- conf
|   |-- .htaccess
|   |-- group
|   `-- passwd
|-- groupe1
|   |-- .htaccess
|   |-- acces_utilisateur1
|   |   |-- .htaccess
|   |   `-- index.html
|   |-- acces_utilisateur1et2
|   |   |-- .htaccess
|   |   `-- index.html
|   |-- acces_utilisateur2
|   |   |-- .htaccess
|   |   `-- index.html
|   `-- index.html
|-- groupe2
|   |-- .htaccess
|   |-- acces_utilisateur3
|   |   |-- .htaccess
|   |   `-- index.html
|   |-- acces_utilisateur3et4
|   |   |-- .htaccess
|   |   `-- index.html
|   |-- acces_utilisateur4
|   |   |-- .htaccess
|   |   `-- index.html
|   `-- index.html
`-- index.html

Accès à la démonstration d'accès restreint


[Retour au sommaire]

10. Référencement dans des moteurs de recherche extérieurs

Le CITIC74 ne fait aucun référencement dans des moteurs de recherche externes (comme Google ou Yahoo). Nous laissons à la charge du responsable du site de le faire lui-même.

le référencement d'un site web n'est pas une action automatique dès lors qu'un site est hébergé et existe sur la "toile". Cette action qui consiste à s'annoncer (de façon manuelle ou automatique) auprès des moteurs de recherche doit être menée par les personnes qui veulent que leur site apparaisse en bonne position dans ces moteurs de recherche.

Aussi, il existe plusieurs méthodes pour effectuer ce référencement (nous vous conseillons vivement la consultation d'un site dédié à cet "art" : http://www.webrankinfo.com/) :

Une optimisation de ce référencement peut également être faite par une structuration du site web adaptée avec l'utilisation de "méta-informations" dans les pages web qui, étant parcourues par les robots des moteurs de recherche, contribueront à bien placer le site dans les recherches futures des internautes.

Voici quelques sites qui traitent des balises "META" :

A partir du moment où le site est accessible depuis Internet (ce qui est le rôle du CITIC74), un référencement efficace le rend très facilement accessible avec quelques mots-cléfs auprès des moteurs de recherche.

En résumé, cette action de référencement est une action "lourde" en temps passé et/ou en sommes dépensées et n'est pas faite par l'hébergeur du site (le CITIC74) mais en général, par le webmaster du site si celà lui a été demandé (ou plutôt "commandé" dans son contrat) ou par une société spécialisée.

Voici une liste de sites sur le "référencement" (mode d'emploi, trucs, astuces, conseils, moteurs de recherche, annuaires...) :


[Retour au sommaire]

11. Compteurs et autres gadgets

Le CITIC74 propose quelques outils afin de personnaliser et d'agrémenter les sites hébergés.

11.1. Compteur de visites



Les webmasters, plutôt que d'avoir leurs propres scripts pourront utiliser un système global de compteur que le CITIC74 a mis en place : il est basé sur WWWCount.

Pour cela, il suffit d'intégrer la ligne suivante dans la page web:
<img src="/cgi-bin/wwwcount.cgi?df=www.nom-de-domaine.org.dat">
en remplaçant www.nom-de-domaine.org par le nom du site. Exemple
 <img src="/cgi-bin/wwwcount.cgi?df=www.citic74.fr.dat">

Le design du compteur peut être choisi parmi un grand nombre de modèles ("digits"). Pour cela, il faut préciser dans la ligne d'insertion du compteur le digit qu'on veut utiliser en ajoutant &dd=[nom_du_digit]:
<img src="/cgi-bin/wwwcount.cgi?df=www.nom-de-domaine.org.dat&dd=as">
(l'apparence correspondant est alors celle-ci).

Un très grand nombre de digits sont utilisables. Vous trouverez ici la liste des digits disponibles. La documentation officielle fournie avec le compteur est accessible ici ainsi que quelques exemples d'utilisation de WWWCount.

Le paramètre display du compteur permet d'afficher divers formats pour permettre d'afficher la date, l'heure ou un vrai compteur.

Exemple d'intégration de la date dans la page web
<img src="/cgi-bin/wwwcount.cgi?display=date">
(inutile dans ce cas de préciser le nom du site avec df=...)

Exemple d'intégration de l'heure courant dans la page web
<img src="/cgi-bin/wwwcount.cgi?display=clock&tformat=24">
(inutile dans ce cas de préciser le nom du site avec df=...)

Le paramètre ft du compteur permet de changer la taille du cadre affiché autour du compteur. Exemple de syntaxe
<img src="/cgi-bin/wwwcount.cgi?df=www.nom-de-domaine.org.dat&ft=4">


[Retour au sommaire]

12. Garantie sur les données

Nous faisons des sauvergardes systématiques des données (fichiers + bases de données MySQL). Cependant, le CITIC74 ne garantit en aucun cas, la perte de vos données, merci de bien garder une copie de votre site web et faites régulièrement des sauvegardes de vos bases de données. En cas de gros problème de votre côté ayant engendré une perte de données, vous pouvez faire appel à notre service de restauration de données en contacter votre assistance et en spécifiant bien entendu les données à restaurer (dossiers, base de données, ...).


[Retour au sommaire]

13. Trucs et astuces pour webmasters - Foire aux Questions - FAQ

13.1. Liés au PHP

13.1.1. Problèmes d'apostrophes dans le texte : magic_quotes

13.1.2. Problèmes de restriction "Safe Mode"

13.1.3. "URL Rewriting"

Quelques liens pour comprendre ce que c'est et comment ça fonctionne :

Certains webmasters peuvent souhaiter utiliser les fonctionnalités dites de "URL Rewriting" afin de cacher les appels à des scripts PHP par des adresses plus classiques. Cela est fréquemment utilisé pour améliorer le référencement des sites dynamiques écrits en PHP. L'utilisation de cette technologie est quasiment toujours (vous le retrouverez dans les documentations citées ci-dessus) basées sur des instructions à placer dans des fichiers ".htaccess". Les sites que le CITIC74 héberge ne sont pas autorisés à utiliser ces instructions directement dans les fichiers ".htaccess" (cela permettrait trop de modifications du comportement des sites web et nuirait aux performances et à la sécurité de nos serveurs). Aussi, nous autorisons l'URL Rewriting uniquement sur demande explicite du webmaster en contactant votre assistance et en spécifiant simplement le site web, le répertoire sur lequel activer cette technique et les règles de réécriture à mettre en place. Evidemment, cette technique particulière ne peut pas être mise en place sans avoir une connaissance approfondie de son fonctionnement.

13.1.4. Redirection automatique

Voici l'astuce pour rediriger automatiquement un internaute venant visiter une page (ou un dossier du site web) vers une autre page. A noter, on peut faire la même chose en HTML avec la possibilité de faire cette redirection après un délai défini (permettant donc de montrer une page d'explication).

Cela consiste simplement en l'emploi de la fonction header (cf http://fr.php.net/header) à placer dans le fichier PHP. Si on veut rediriger l'internaute qui accède à l'adresse de base du site ou dans un répertoire en particulier, il suffit donc d'y placer un fichier index.php (prioritairement reconnu comme une page d'accueil) avec simplement le code ci-dessous (les lignes commençant par "/*" sont des commentaires).
<?php
/* On commence par donner un code de retour HTTP cohérent avec la redirection */
header("Status: 301 Moved Permanently");
/* Dans l'exemple, on redirige l'internaute vers le site du CITIC74 */ 
header("Location: http://www.citic74.fr/");
/* On s'assure que l'éventuel code PHP qui serait en dessous n'est pas exécuté. */
exit();
?> 
		

13.1.5. Fonction "glob" désactivée

En raison d'un bug connu dans la fonction glob dans un certain mode de fonctionnement auquel on a recours ("Safe Mode"), nous avons été contraints de désactiver la possibilité d'utiliser cette fonction particulière. Nous avons vérifié que cela n'impactait aucun site web en fonctionnement au moment de la manipulation.

Voici une fonction qui peut avantageusement remplacer glob et que vous pouvez donc utiliser en lieu et place :
//fonction newglob qui remplace la fonction glob desactivee par le CITIC74
function newglob($pattern)
{
        $path_parts = pathinfo($pattern);
        $pattern = '^' . str_replace(array('*',  '?'),array('(.+)', '(.)'), $path_parts['basename'] . '$');
        $dir = opendir($path_parts['dirname']);
        while ($file = readdir($dir))
        {
                if (ereg($pattern, $file))
                {
                        $result[] = "{$path_parts['dirname']}/$file";
                }
        }
        closedir($dir);
        if (isset($result))
        {
                return $result;
        }
        return (array)null;
}
			

13.2. Liés au MySQL (SGBD)

13.2.1. Problème d'accès au serveur MySQL depuis l'extérieur

13.3. Limiter la récupération des adresses email par des "spammers"

Il est très vivement recommandé de ne pas faire figurer son adresse email publiquement si on ne veut pas être importuné par tous les spammers qui utilisent des systèmes de récupération automatique des adresses email en parcourant les sites web.

Ou alors, il faut au moins essayer de la camoufler pour qu'on puisse vous contacter en cas de besoin sans rendre l'adresse trop facilement exploitable.

Pour cela, il existe différentes techniques plus ou moins valables. Leur inconvénient est d'utiliser en général du Javascript (=> des navigateurs web qui ne le supporteraient pas n'afficheront pas l'adresse email contenue dans la page). Leur avantage est de limiter la récupération de l'adresse par des systèmes automatiques.

Voilà quelques liens qui traitent de ces méthodes : Et voilà un petit exemple où vous pourrez voir 3 fois l'adresse email du support technique du CITIC74 sans qu'elle figure dans la source de la page HTML (=> sans qu'elle puisse être récupérée par un système automatique) : ICI (regardez la source de la page et vous n'y trouverez jamais l'adresse email).

13.4. "Pur" HTML

13.4.1. Redirection automatique sur une page

Il existe une balise "META" qui se place donc dans l'en-tête d'une page qui permet de rediriger l'internaute qui visite une page de son site vers la page ou le site de son choix.

Il suffit donc d'insérer entre le <HEAD> et le </HEAD> de la page HTML une ligne du genre :
<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=http://www.citic74.fr/">
où le "content=0" signifie que la redirection est faite sans attente (mettre 2 à la place du 0 pour que la redirection soit effectuée avec un retard de 2 secondes), et on indique simplement après le "url=" l'adresse où on veut rediriger l'internaute. Ca peut être aussi un lien relatif du style "URL=./sous-repertoire/"

Exemple, cliquez ici et vous allez voir ce que provoque une redirection automatique vers le site du CITIC74 en 4 secondes. Le code de la page sur laquelle on se dirige est :
<HTML>
  <HEAD>
    <TITLE>Redirection automatique vers le site du CITIC74 dans 4 secondes</TITLE>
    <META HTTP-EQUIV="REFRESH" CONTENT="4;URL=http://www.citic74.fr/">
  </HEAD>
  <BODY BGCOLOR="WHITE">Attention, redirection automatique vers le site web du CITIC74 dans 4 secondes...</BODY>
</HTML>

13.5. Liés aux requêtes HTTP extérieures - Passage par proxy obligatoire

13.5.1. Contexte

Vous voulez, dans votre site web : => vous devez prévoir le passage par notre proxy HTTP (proxy.citic74.fr port 3128) pour que vos requêtes aboutissent.

13.5.2. Raisons de cette obligation

Nous comprenons que cette contrainte de passage par notre proxy HTTP peut être gênante dans la mise en place de votre site web, surtout si vous prévoyez d'utiliser un outil "tout fait" (type blog, cms, ...) qui n'est pas prévu pour. Néanmoins, cela nous apparaît actuellement comme incontournable pour plusieurs raisons :

Pour Spip par exemple, le passage par un proxy HTTP est paramétrable. Vous trouverez cela dans l'administration, dans la partie "Configuration/Fonctions avancées" (en interface complète). Il faut alors entrer l'adresse du proxy sous la forme http://proxy.citic74.fr:3128

13.5.3. Exemple de code pour utiliser ce mode par proxy

Voici quelques lignes qui permettent de faire une connexion par notre proxy pour un site qu'on héberge + exploitation du résultat.
<?
/***********début du code**************/
/*adresse du serveur proxy*/
$proxy = "proxy.citic74.fr";
/*port du serveur proxy*/
$port = 3128;
/*URL à laquelle on veut se connecter*/
$url = "http://www.php.net/";
$fp = fsockopen($proxy, $port);
fputs($fp, "GET $url HTTP/1.0\r\nHost: $proxy\r\n\r\n");
/*Exploitation du résultat de la requête*/
while(!feof($fp)){
  $line = fgets($fp, 4000);
  print($line);
}
fclose($fp);
/*************fin du code**************/
?>

13.6. Commandes autorisées dans les fichiers .htaccess

Sur la plateforme d'hébergement "classique" actuelle (PHP 4.3.2/MySQL 3.23), pour des raisons de sécurité, nous avons été contraints de limiter fortement les directives comprises par Apache qui peuvent être placées dans un fichier .htaccess.

Globalement, en dehors des directives liées aux accès restreints, aucune commande n'est autorisée (qu'il s'agisse d'URL Rewriting, de personnalisation des fichiers appelés pour les codes de retour 403/404, de spécifications de variables pour le comportement du PHP, ...).

Si vous avez des besoins en la matière, vous êtes donc contraints d'en faire la demande en contactant votre assistance.

Nous sommes conscients que cela peut être un "poids" dans la gestion de votre site web et nous travaillons à assouplir cela.

Le support technique assuré par le CITIC74 étant tout de même très réactif (et basé sur l'utilisation d'un outil de gestion de demandes performant qui ne laisse aucune demande intraitée), nous estimons que ce mode de fonctionnement reste largement tolérable.

Sur les nouvelles plateformes d'hébergement (PHP4/5 et MySQL5), il est possible d'activer l'utilisation des règles de réécriture directement par un fichier .htaccess. Ce n'est pas forcément le cas par défaut (suivant le serveur et la date à laquelle le site a été créé). Si cela ne semble pas fonctionner, il suffit d'en faire la demande en contactant votre assistance.


[Retour au sommaire]

Bookmarks

Sans nom http://www.citic74.fr/rubrique4.html
Debian GNU/Linux http://www.debian.org/
NetCraft.com http://news.netcraft.com/archives/web_server_survey.html
phpMyAdmin http://www.phpmyadmin.net/
Spip http://www.uzine.net/spip
EdRes74 http://www.edres74.ac-grenoble.fr
le site SPIP-EDU http://www.spip-edu.edres74.ac-grenoble.fr
un site regroupant des scripts PHP qui vont souvent utiliser du MySQL (http://www.phpscripts-fr.net/) http://www.phpscripts-fr.net/
Webalizer http://www.webalizer.org/
ht://Dig http://www.htdig.org
Apache http://www.apache.org
7Zip (logiciel libre) ftp://ftp.cur-archamps.fr/pub/pc/win9x/compresseur/7Zip/
Accès à la démonstration d'accès restreint http://www.citic74.fr/docs/web/demo_ar/
http://www.webrankinfo.com/ http://www.webrankinfo.com/referencement/
WWWCount http://wwwcount.webcc.net/
exemples d'utilisation de WWWCount http://www.citic74.fr/docs/web/wwwcount_doc/Count2_5-ex.html
Sans nom http://fr.php.net/header
Sur ABC-CREATWEB.com http://www.abc-creatweb.com/article.php3?id_article=2046
Sur ASPIRINE.org http://aspirine.org/emailcode.php
Sur CASPAM.org http://caspam.org/cas_cryptemail.html




Document généré avec les cri-doctools