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-diallo2315.users.info.unicaen.fr'' où LOGIN est votre identifiant de connexion (par exemple 21812122 ou lecarp215). 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/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 - Dans la liste de gauche, choisir "Autres emplacements" et dans la barre d'adresse, saisissez l'URL de votre serveur càd ''sftp://dev-LOGIN.users.info.unicaen.fr'' \\ {{sattes:td:gestionnaire-1.png?400}} - Lors de la première connexion vous devez confirmer (cliquer sur "Se connecter malgré tout") - Entrez votre identifiant et mot de passe et sélectionner "Se souvenir du mot de passe jusqu'à la fin de la session" \\ {{sattes:td:gestionnaire-2.png?400}} - Vous avez alors accès à vos dossiers : \\ {{sattes:td:gestionnaire-3.png?400}} - Vous pouvez ajouter un signet pour simplement cliquer dessus lors de votre prochaine session \\ {{sattes:td:gestionnaire-4.png?400}} 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 Pour un [[accesexterieur|accès exterieur]] au réseau de l'Université, il faut limiter le nombre de connexions simultanées, sinon vous risquez de vous faire blacklister par notre [[accesexterieur|IDS]] Pour cela aller dans l'onglet ''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 Testez immédiatement tout changement de la configuration d’accès. En cas d’erreur, vous pouvez vous interdire l’accès. =====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. [[bdd|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 [[https://xdebug.org/|PHP xDebug]] dans votre environnement de développement [[https://xdebug.org/docs/|DOC]]. Il vous permet de faire : - une trace de l'exécution de votre script [[https://xdebug.org/docs/execution_trace|DOC]] - un profilage votre code [[https://xdebug.org/docs/profiler|DOC]] Les traces sont de simples fichiers textes Les profiles sont des fichiers binaires navigable avec un outils comme [[https://kcachegrind.github.io/html/Home.html|KCacheGrind]] [[https://sourceforge.net/projects/qcachegrindwin/|QCacheGrind]] [[http://ceefour.github.io/wincachegrind/|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. Attention à ne pas laisser xDebug actif trop longtemps sous peine de remplir votre quota Vous pouvez ensuite consulter vos résultats : - tmp/trace* - tmp/cachegrind.out.* ( ouvrir avec le logiciel adéquat )