Table des matières
Dans toute cette documentation, LOGIN est à remplacer par votre identifiant de compte numérique, c'est à dire l'identifiant et mot de passe que vous utilisez pour tous les services de l'Université (webmail, ecampus, machines en salles de TP, etc).
Serveurs web personnel
Vous disposez à priori d'un serveur web personnel à l'URL https://dev-LOGIN.users.info.unicaen.fr
où LOGIN est votre identifiant de connexion (par exemple 21812122 ou lecarp215). Ainsi l'URL du serveur web de l'utilisateur diallo2315
est https://dev-diallo2315.users.info.unicaen.fr
L'accès à la consultation de vos pages web est restreint : vous devez saisir votre identifiant et mot de passe pour y accéder. Selon votre année et/ou formation, vous n'avez accès que à votre propre serveur, ou bien à tous les serveurs.
Ce serveur est un serveur de développement : le contenu des dossiers peut-être affiché, les erreurs d'exécution de programment sont affichées, etc.
Nota : Pour certains utilisateurs, vous avez aussi un serveur de production, accessible du monde entier : https://diallo2315.users.info.unicaen.fr
(désactivé par défaut, activé sur demande justifiée).
Il s’agit d’un serveur accessible sans restriction qui obéit donc à des règles de sécurité plus fortes, par exemple listing des répertoires non autorisés, erreurs PHP non affichées.
Architecture du serveur
Votre espace web est complètement indépendant de l’espace de stockage de votre compte habituel. Lorsque vous utilisez votre session, par défaut vous n’avez pas accès à votre compte web. Il faut pour cela se connecter au serveur web hébergeant votre espace : cela sera expliqué dans la section «Connexion au serveur» plus bas.
Votre espace web est stocké sur le serveur web dans le dossier /users/LOGIN/ (par exemple, /users/diallo2315/). Vous n'avez pas le droit de créer de dossiers à la racine de votre compte web mais vous pouvez travailler dans les dossiers suivants :
www-dev | le dossier correspondant à votre serveur de développement |
---|---|
www-prod | le dossier correspondant à votre serveur de production (désactivé par défaut) |
private | dossier interdit d’accès par le web pour y stocker divers fichiers (.htpassword, fichiers de configuration, etc) |
tmp | dossier contenant les fichiers temporaires. Dossier utilisé par PHP pour les sessions et l'upload. |
log | dossier contenant les logs d'erreur des divers vhosts du compte (1 fichier par vhost). |
evalweb | dossier des rapports de l'application evalweb (obsolète et inutilisé) |
.ssh | dossier pour déposer votre clé SSH publique pour se connecter au serveur |
Vos travaux sont donc dans le dossier /users/diallo2315/www-dev/ mais attention tout ce qui est dans le dossier www-dev/ est visible sur votre serveur web (avec accès restreint cependant).
Connexion au serveur
Les connexions ne peuvent pas se faire via ftp, scp ou ssh mais uniquement par sftp (sshfs est basé sur sftp), à partir de votre poste de travail personnel ou machine de salle TP.
Utiliser le gestionnaire de fichiers sur les postes des salles de TP
Si vous travaillez sur une machine Linux, vous pouvez connecter le gestionnaire de fichiers à votre espace de travail web. Cela permet de travailler sur des fichiers distants de façon transparente mais demande une connexion suffisamment performante.
Sur les postes de travail des salles de TP en Ubuntu :
- Lancer le gestionnaire de fichiers
- Lors de la première connexion vous devez confirmer (cliquer sur “Se connecter malgré tout”)
Un avantage de cette solution est de pouvoir ouvrir un terminal et de travailler alors en ligne de commande. Attention ce n'est pas une connexion ssh, les commandes exécutées dans le terminal sont celle du poste de travail et non celles du serveur, il peut donc y avoir des différences (les postes de travail sont en Linux Ubuntu et le serveur en Linux Debian par exemple).
Connexion avec un client graphique SFTP
Vous pouvez utiliser un client SFTP comme FileZilla, gFTP , Fugu sur Mac, WinSCP sur Windows. Ces logiciels permettent de transférer des fichiers sur le serveur. C'est moins pratique que la solution suivante («Connexion via un gestionnaire de fichiers»), mais c'est plus simple pour votre machine personnelle si elle n'est pas sous Linux. FileZilla a l'avantage de fonctionner de la même façon sous Linux, MacOSX et Windows. Attention la version windows proposée par défaut en téléchargement est bourrée d'adware, et donc signalée comme nuisible par windows et par les antivirus. Il faut télécharger la version «propre» sur cette page : https://filezilla-project.org/download.php?show_all=1 (si vous avez un doute sur votre OS, vous pouvez le vérifier sur https://whatsmyos.com/ ).
Ensuite, pour configurer votre connexion (dans FileZilla, mais ça doit être facilement adaptable aux autres clients) :
Fichier
> Gestionnaire de Sites
puis Nouveau Site
et remplir les champs de l'onglet Général comme ceci :
Hôte/Host : LOGIN.users.info.unicaen.fr Port : laisser vide Protocole : SFTP Type d'authentification : Normale Identifiant/Username : LOGIN Mot de passe/Password : à vous de deviner
Paramètres de transfert
, cocher Limiter de nombre de connexions simultanées
et positionner la valeur à 1
Les autres clients utilisent une configuration similaire. Vous pouvez aussi utiliser vos clés SSH en plaçant votre clé SSH publique dans le fichier authorized_keys.
Avantages et inconvénients des clients SFTP
Avec un client SFTP, vous travaillez sur votre ordinateur et transférez les fichiers sur le serveur web. L'inconvénient est que vous devez transférer le(s) fichier(s) modifié(s) pour tester après chaque modification de code. Si vous travaillez sur plusieurs fichiers en même temps, cela nécessite de la minutie. En revanche, cela fonctionne même avec une connexion un peu lente, et de la même façon sur tous les systèmes d'exploitation.
Informations complémentaires (pour les plus avancés)
Chemins complets
Votre compte habituel sur les postes de travail est stocké sur les serveurs NFS de l’Université et son chemin complet est /home/etudiants/LOGIN/ (ou /home/personnels/LOGIN/).
Votre compte sur le serveur Web est dans le dossier /users/LOGIN/
Vous pouvez être amené à utiliser les chemins complets dans certains programmes ou codes. Par exemple, si vous souhaitez utiliser un contrôle d'accès avec un .htaccess vous utiliserez la directive suivante :
AuthUserFile /users/LOGIN/private/.htpassword
Interface de gestion
Un manager vous permet d'accéder aux fichiers journaux de vos pages (access.log et error.log). Les logs d'erreurs sont ceux du vhost sur lequel vous utilisez le manager. Les logs d'accès des vhosts sont combinés (tous les vhosts sur la même page, la même sur tous les vhosts). Le manager regroupe également les liens vers les interfaces de gestion de bases de données, les statistiques de fréquentation de vos pages et un gestionnaire de cron limité.
URL :
https://dev-LOGIN.users.info.unicaen.fr/myadmin/
Les logs d'erreurs sont aussi consultables dans le répertoire log/
à la racine de votre espace web.
Contrôle d'accès (.htaccess)
Un contrôle d'accès est déjà défini sur ce serveur. Vous pouvez le surcharger afin de limiter la liste des logins autorisés à se connecter au serveur ou à certains de ses dossiers. Pour cela, vous ferez un .htaccess contenant par exemple :
## Accès refusé à tous par défaut ## Order deny,allow Deny from all Satisfy any ## liste les logins des utilisateurs autorisés ## AuthType Basic AuthName "Entree interdite sauf exception" Require user login1 login2
Le contrôle d'accès définit par défaut permet :
- un accès sans demande d'identifiants depuis les machines des salles de travaux pratiques
- un accès depuis le monde entier pour :
- les enseignants du département informatique
- les étudiants bénéficiant d'un espace web sur le serveur
- les administrateurs système
Connexion SFTP en ligne de commande
Pour utiliser le client en ligne de commande «sftp» (Linux/Mac), la commande est :
sftp LOGIN@LOGIN.users.info.unicaen.fr
Référez-vous à la man page man sftp
pour les informations concernant l'utilisation de la commande.
Connexion directement par sshfs (utilisateurs avancés)
Pour monter en sshfs :
sudo apt-get install sshfs mkdir -p ~/sshfs/web ssshfs LOGIN@LOGIN.users.info.unicaen.fr:/ ~/sshfs/web
À partir de là, le dossier est accessible en console et depuis les interfaces graphiques.
Pour démonter :
fusermount -u ~/sshfs/web
Bases de données
Des bases de données sont crées en même temps que vos serveurs web. c.f. les explications de connexion aux bases.
Les choix par défaut
Par défaut, l'espace personnel est initialisé avec quelques valeurs. Cela permet par exemple de limiter les erreurs dans les logs ou d'empêcher le référencement de site vide.
favicon.ico
Par défaut, le Favicon est le logo du département. Il vous suffit de créer un fichier favicon.ico dans votre répertoire www-prod pour le surcharger.
robots.txt
Par défaut, votre site publique possède un robots.txt qui empêche le référencement. Vous pouvez créer votre propre robots.txt dans votre répertoire www-prod pour le surcharger.
Débogage
Dans un premier temps, vous pouvez consulter les logs dans l'interface de gestion (ou dans le répertoire log/
à la racine de votre espace web).
xDebug
Il est possible d'utiliser PHP xDebug dans votre environnement de développement DOC.
Il vous permet de faire :
Les traces sont de simples fichiers textes Les profiles sont des fichiers binaires navigable avec un outils comme KCacheGrind QCacheGrind WinCacheGrind.
Pour activer ces fonctions de xDebug, vous devez modifier ou créer un .htaccess dans le répertoire où se trouve votre script.
## Trace : tmp/trace* # Désactivé par défaut # php_flag xdebug.auto_trace On ## Profiler : tmp/cachegrind.out.* lisible avec Kcachegrind ou WinCacheGrind # Désactivé par défaut # php_flag xdebug.profiler_enable On php_flag xdebug.profiler_enable_trigger On php_flag xdebug.profiler_aggregate On # Information disponibles php_flag xdebug.show_mem_delta 1 php_flag xdebug.collect_params 4 php_flag xdebug.collect_return On php_flag xdebug.collect_assignments On php_flag xdebug.collect_vars On
Il faut ensuite dé-commenter la trace ou le profiler à votre convenance.
Vous pouvez ensuite consulter vos résultats :
- tmp/trace*
- tmp/cachegrind.out.* ( ouvrir avec le logiciel adéquat )