
| CITIC74 : Mise en place d'un site Web |
| Documentation pour la mise en place d'un site web |
| Ce document explique comment mettre en place un serveur Web sur les serveurs du CITIC (ex-CRI) de Haute-Savoie |
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
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.
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.
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.
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 :
- sous Windows : FileZilla (http://filezilla.sourceforge.net/ ; http://www.framasoft.net/article1011.html, logiciel libre, gratuit, multi-lingue, complet et très simple de prise en main. Attention, pour les postes sous Windows 95/98/Me, il faut prendre une version inférieure à 2.2.22
- sous Mac OS X : Cyberduck (http://cyberduck.ch/ ; http://www.framasoft.net/article3551.html), logiciel libre, gratuit, multi-lingue, complet, ...
- sous Linux : Gftp, Kbear, ncftp, ou les fonctionnalités de connexion FTP incluses dans Nautilus et Konqueror...
Le FTP sur SSH ou SFTP n'est pas supporté.
Ce que le CITIC74 vous met à disposition pour les mises à jour :
- un nom d'utilisateur ou login (qui pourra être le même que pour la messagerie)
- un mot de passe (qui sera le même que pour la messagerie pour ce compte)
- l'adresse du serveur FTP pour la mise à jour qui, si vous gérez le site www.nom-de-domaine.org, sera ftp.nom-de-domaine.org (on remplace le www par ftp ; exemple : ftp.citic74.fr)
- une adresse Web : http://www.nom-de-domaine.org (exemple : http://www.citic74.fr)
- une adresse Web pour le site de développement seulement si celui-ci est demandé : si vous gérez le site www.nom-de-domaine.org, le site de développement sera accessible à travers l'adresse http://www-dev.nom-de-domaine.org/ (on remplace le www par www-dev ; exemple : http://www-dev.citic74.fr). ATTENTION : depuis le 01/11/2006, le script de synchronisation qui permettait la recopie intégrale du site de développement sur le site public a été abandonné. Les webmasters sont donc invités à recopiés "manuellement" le contenu du site de développement sur le site public quand ils le souhaitent.
- un espace disque (pas de limitation officielle aujourd'hui mais cela doit rester "raisonnable")
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
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.
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 :
- index.php
- index.php3
- index.html
- index.htm
- toc.htm
- welcome.htm
- Welcome.html
- Des statistiques sont mises à disposition et ce de manière individuelle pour votre site à l'URL suivante : http://www-stats.nom-de-domaine.org/ (on remplace le www par www-stats ; exemple : http://www-stats.citic74.fr)
- Ces statistiques sont mises à jour toutes les nuits.
- L'accès à ces statistiques est réservé au webmaster. Si vous voulez que d'autres personnes ayant un compte au CITIC74 puissent y accéder, le demander en contactant votre assistance et en précisant le site concerné et les noms utilisateurs dont l'accès doit être autorisé.
- Ces statistiques sont récupérables par FTP dans votre répertoire d'accueil dans le sous répertoire suivant : www.nom-de-domaine.org/stats/. Vous pouvez donc les rendre publiques en les recopiant dans votre site web. Vous pouvez aussi demander à supprimer la restriction d'accès par défaut décrite ci-dessus afin d'autoriser n'importe quel internaute à consulter ces statistiques au travers de l'URL du type http://www-stats.nom-de-domaine.org
- Les fichiers de journalisation ("logs") générés par le serveur Apache peuvent être aussi récupérés si vous désirez faire vos statistiques vous mêmes avec un autre outil que celui proposé par le CITIC74 (par exemple AwStats, http://awstats.sourceforge.net/), ces fichiers se trouvent dans votre répertoire d'accueil FTP dans le sous répertoire suivant : www.nom-de-domaine.org/log/. Vous pourrez trouver les fichiers des 35 derniers jours.
- Vous pouvez aussi imaginer utiliser d'autres outils de statistiques comme phpMyVisites (http://www.phpmyvisites.net/) ou des mécanismes utilisant des services extérieurs comme Xiti, Weborama, ... mais ces derniers sont en général soumis à l'utilisation de publicité sur votre site alors autant les éviter et utiliser ce que le CITIC74 vous propose...
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.
- Les Hits/Accès : Un Hit est une requête d'une machine cliente sur le serveur (si dans une page, il y a des images inclues, il y aura plusieurs requêtes effectuées pour afficher la page : 1 pour le fichier html, 1 par image, etc.).
- Les Fichiers : Cette valeur comptabilise les transferts effectifs de fichiers du serveur vers le client. Le Fichier peut être de n'importe quel type (html, images, pdf, doc, ..). Nous sommes ici dans le cas ou les données ne sont pas dans un cache et doivent être effectivement transmises. Pour les techniciens, cela correspond à toutes les requêtes HTTP identifiées avec un code 200.
- Les Pages: Cette valeur est un sous-ensemble des Fichiers. Le critère de comptabilisation est le type du fichier (determiné par son extension). Typiquement c'est le nombre d'accès aux fichiers avec comme extension : .htm, .html, .cgi, .pl. Pour déterminer la fréquentation de son site web on pourra choisir cette valeur.
- Les Sites: C'est le nombre de machines clientes dfférentes qui sont venues visiter le site web. Ces chiffres peuvent être utilisés pour déterminer la Fréquentation du site. Ceci NE SIGNIFIE PAS le nombre d'utilisateurs individuels uniques (une vrai personne) qui ont visité, ce qui est impossible à déterminer en utilisant seulement des fichiers logs et le protocole HTTP (cependant, ce chiffre pourrait être très près de cette réalité)
- Les Visites: À chaque fois qu'une requête est faite au serveur à partir d'une adresse IP (un site) donnée, la durée de temps depuis une requête antérieure de cette adresse (si elle a lieu) est calculée. Si la différence de temps est plus grande que la valeur préconfigurée du `temps mort de visite' (ou s'il n'y a eu aucune requête auparavant), alors cela est considéré comme une 'visite nouvelle', et ce total est incrémenté (à la fois pour le site et l'adresse IP). La valeur par défaut du `temps mort de visite' est de 30 minutes. Ainsi, si un internaute visite le site à 13H00 et qu'il y revient ensuite à 15H00, alors deux visites seront enregistrées dans le calcul.
C'est l'ensemble des totaux par mois et pour l'année en cours. Les moyennes journalières apparaissent aussi.
L'accès se fait à partir d'un lien sur la page contenant le résumé par mois.
- Statistiques mensuelles: Récapitulatif pour l'ensemble des valeurs des totaux + moyennes journalières.
- Hits par codes de réponses: Totaux et moyennes pour tous les codes de réponse du serveur. Cela permet de connaitre le Nombre de fichiers transférés (200), le nombre de requêtes sur un fichier qui n'existe pas (404), le nombre de téléchargement interrompus (206), etc.
- Statistiques journalières et Statistiques horaires: Totaux et moyennes des valeurs jour par jour et heure par heure.
- Les URL: Chacun des fichiers du site web correspond à un URL. Il y deux tableaux. Le premier est une classification par nombre de requêtes, le second est une classification en fonction de la quantité d'octets transférés. Les URL associés à des images (fichiers de type jpeg et gif) n'apparaissent pas.
- Les Sites: Ce sont les machines clientes. Elles sont identifiées par leurs noms ou leurs numéros IP. Comme pour les URL, il y a deux classifications. La première en fonction du nombre de requêtes, l'autre en fonction du nombre d'octets transférés.
- Les Référants: Cela donne une estimation approximative de quels URL's sont utilisées pour entrer dans le site, ou pour accéder à une page du site (c'est pourquoi on trouve ici des pages du site qui ont permis d'accéder à d'autres pages du même site). À cause des limitations dans le protocole HTTP, des rotations de log, etc... ce chiffre doit être considéré comme une «approximation brute» des nombres réels, cependant cela donne une bonne indication de la tendance globale par où les internautes entrent dans le site.
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).
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.
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.
Le fonctionnement de formulaire en PHP est globalement :
- définition des variables dans le script HTML avec toutes les possibilités qu'offrent un formulaire HTML
- traitement des variables récupérées par le script PHP (et ici, envoi du mail à travers la fonction PHP adéquate)
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 :
- http://www.php.net/ : LE site de référence du PHP (en anglais)
- http://www.phpfrance.com/
- http://www.phpindex.com/
- http://www.phpinfo.net/
- http://www.ilovephp.com/
- http://www.phpdebutant.com/
- etc.
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 :
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) :
- Page HTML ou l'internaute était invité à s'inscrire que vous pouvez sauvegarder telle quelle (vous aurez donc accès au code de la page complétement vu que c'est du HTML, voir documentation de votre navigateur web ou éditeur HTML pour afficher cette source.)
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.
- Script PHP qui est appelé dans le fichier HTML ci-dessus (le fichier vraiment appelé était nommé "formulaire.php3", il est nommé ici en .txt pour que votre navigateur l'affiche directement)
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 :
Pour ce fichier, vous avez 2 possibilités :
- Dans ce cas, le nom de fichier est "/etc/apache/passwd"
- Vous ne pouvez pas ajouter de noms/mot de passe associé
- Les noms/mots de passe WEB sont ceux des utilisateurs qui ont un compte au CITIC74 et qui font partie du même "ensemble" que vous
- => pas très pratique pour vous car vous ne pouvez pas gérer ces utilisateurs et vous devez connaitre leur nom utilisateur
- Vous devez donc créer ce fichier que vous nommez comme bon vous semble là où vous voulez en sachant que le répertoire de base pour vous est du style /var/www/www.nom-de-domaine.org/htdocs/
- Ce fichier doit être de l'ASCII pur => vous pouvez le faire avec Notepad par exemple sous Windows (ASTUCE : Windows et DOS ne permettent pas d'enregistrer un fichier sous le nom demandé, à savoir .htaccess. Pour contourner le problème, donnez lui un nom temporaire (par exemple access.txt), puis renommez-le en .htaccess, soit au moment du transfert, soit après le transfert, à l'aide de votre logiciel de transfert de fichier (FTP)
- Ce fichier doit comporter une liste de nom_utilisateur:mot_de_passe_crypté
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.
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
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/) :
- action manuelle : chaque moteur de recherche permet d'y inscrire son site avec un certain nombre d'informations et le feront alors apparaitre en bonne position lors de recherches futures avec certains mots cléfs
- action automatique : certains logiciels sont faits exclusivement pour mener des actions de référencement automatique auprès des moteurs de recherche les plus courants
- faire faire ce référencement par des sociétés spécialisées (certains sociétés en ont fait leur unique activité)
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...) :
- http://cyberformateur.com/support/trucs/referencement.htm
- http://www.allhtml.com/methodologie/methodologie576.php
- http://www.referenceur.com/
- http://www.sam-mag.com/ rubrique "Guides"
- http://www.devparadise.com/submit/
- http://www.webmasterplan.com/fr/
- http://www.abondance.com/
- http://www.forum-referencement.net/
- http://www.referencement2000.com/ avec quelques outils gratuits notamment qui peuvent se révéler bien utiles ou drôles à utiliser.
Le CITIC74 propose quelques outils afin de personnaliser et d'agrémenter les sites hébergés.
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:en remplaçant www.nom-de-domaine.org par le nom du site. Exemple
<img src="/cgi-bin/wwwcount.cgi?df=www.nom-de-domaine.org.dat">
<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]:(l'apparence correspondant est alors celle-ci).
<img src="/cgi-bin/wwwcount.cgi?df=www.nom-de-domaine.org.dat&dd=as">
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(inutile dans ce cas de préciser le nom du site avec df=...)
<img src="/cgi-bin/wwwcount.cgi?display=date">
Exemple d'intégration de l'heure courant dans la page web(inutile dans ce cas de préciser le nom du site avec df=...)
<img src="/cgi-bin/wwwcount.cgi?display=clock&tformat=24">
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">
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, ...).
- Question : "Sur mon site web, lorsque j'utilise du PHP et que j'affiche des chaînes de caractères comportant des apostrophes notamment, un "\" apparaît avant ce caractère, rendant mon texte affiché illisible."
- Réponse : Pour les problèmes d'apostrophes, cela vient de la configuration des "magic_quotes". Ce paramètre peut être fixé dans la configuration du serveur (en fonction de la date de création de votre site). Néanmoins, à l'intérieur d'un script PHP, il est permis de modifier certains paramètres. Ainsi, en ajoutant la commande "set_magic_quotes_runtime(0) ;", on désactive les magic_quotes et l'affichage des caractères spéciaux tels que les apostrophes passe bien. Vous pouvez aussi demander de désactiver ces "magic_quotes" sur l'ensemble de votre site en contactant votre assistance.
- Question : Lorsque j'accède à certaines pages où des scripts PHP sont exécutés, j'ai un message disant "Warning: SAFE MODE Restriction in effect." Pourtant, j'ai récupéré ces scripts sur le web et ils sont censés fonctionner...
- Réponse : Effectivement, pour des raisons de sécurité sur nos serveurs, les scripts PHP sont limités et ne peuvent accéder qu'aux fichiers appartenant au webmaster. A partir du moment où d'autres accès doivent être faits (création de répertoires/fichiers temporaires ou non, dans l'arborescence du site ou en dehors), il faut que les scripts PHP nécessitant ces accès soient explicitement autorisés par le CITIC74 à cela. Pour cela, les webmasters sont invités à contacter leur assistance pour demander les autorisations en précisant le site web concerné, une URL où on peut constater ce message d'erreur et surtout le ou les répertoires dans lesquels les scripts PHP en cause sont stockés. Le CITIC74 autorisera alors les scripts en question pour qu'ils puissent effectuer ces actions et ces messages d'erreur n'apparaîtront plus. Par conséquent, il est demandé aux webmasters de faire en sorte que les scripts dont il est question soient placés si possible tous dans le même répertoire (ou quelques répertoires bien repérés), et jamais à la racine du site en tout cas. A noter que, en général, ces limitations peuvent être contournées en changeant les droits d'accès aux répertoires cibles pour rendre leur accès possibles par le serveur web lui-même ("chmod 777").
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.
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(); ?>
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; }
- Question : "Je suis en train de développer un site web qui va être hébergé au CITIC74. J'utilise une base de donnée MySQL dont j'ai les paramètres de connexion. Afin de faire des tests, je développe le site sur mon PC équipé de EasyPHP mais les connexions à la base de données ne fonctionnent pas."
- Réponse : Pour des questions de sécurité et de simplicité de gestion des serveurs du CITIC74 (pour assurer un fonctionnement optimum et une disponibilité maximum), l'accès au serveur de base de données n'est possible qu'à travers les pages placées sur le serveur web lui-même. Les tentatives de connexion depuis d'autres machines sur Internet sont refusées. Pour faire vos tests, il faut donc que vous placiez vos scripts sur le serveur web du CITIC74 avant d'y accéder par un navigateur. Vous êtes alors en conditions réelles. A noter : l'utilisation de l'interface PHPMYADMIN vous permet de manipuler la base de données facilement (import/export de données notamment).
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).
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 :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/"
<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=http://www.citic74.fr/">
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>
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.
- faire appel à des pages extérieures sous forme d'inclusion en PHP (fonction "include")
- récupérer un fichier XML que vous allez traiter pour afficher les données dans vos pages
- faire appel à des fonctions de correction orthographique (dans Spip par exemple)
- utiliser la syndication avec des sites web extérieurs (dans Spip par exemple)
- utiliser des mécanismes automatiques de mise à jour ou d'installation de plugins pour votre site (blog, cms, ...)
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 :
- cohérence vis à vis de notre système de limitation d'accès de nos utilisateurs aux sites web à caractère pornographique notamment qui pourraît être contourné ici
- limitation des temps d'exécution des fonctions faisant appel à des ressources extérieures en cas de temps d'établissement trop long
- contrôle (filtrage + journalisation) des requêtes faites à l'extérieur en cas de piratage d'un site hébergé par le CITIC74
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
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**************/ ?>
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.