====== Perso 3 ====== Perso (version 3) est un espace personnel proposé par ARISE pour vous permettre d'héberger un site internet, compiler des projets ou encore d'exécuter du code dans un environnement linux. ===== Se connecter ===== Pour vous connecter en SSH à perso, exécutez cette commande dans n'importe quel terminal : ssh ARISEID@perso3.iiens.net En remplaçant ''ARISEID'' par votre AriseID (''nom2042'' par exemple) The authenticity of host 'perso3.iiens.net (193.54.225.88)' can't be established. ECDSA key fingerprint is SHA256:UJ+9C9yaSHrPqUgY9igPSSq05Lc3aCVdjtkem989xzQ. Are you sure you want to continue connecting (yes/no/[fingerprint])? Ici, tapez ''yes'' pour valider l'empreinte du serveur. Warning: Permanently added 'perso3.iiens.net,193.54.225.88' (ECDSA) to the list of known hosts. nom2042@perso3.iiens.net's password: Tapez votre mot de passe. C'est tout à fait normal si rien ne s'affiche lorsque vous tapez, c'est une sécurité de Linux. Vous voilà connecté, avec un petit rappel sur votre quota de stockage. Plus d'informations dans la partie [[#quotas]]. * Utilisation disque : 7.29G / 50.00G * Espace libre : 42.71G nom2042@perso:~$ ==== Clé SSH ==== Si vous en avez marre de taper votre mot de passe à rallonge, il est possible d'utiliser une clé SSH pour s'authentifier. Il existe un [[tutos:ssh:cles_ssh|très bon guide]] à ce sujet, mais pour résumer : Tapez la commande suivante depuis votre ordinateur, en gardant les options par défaut : ssh-keygen En laissant le champ ''passphrase'' vide (touche entrée), vous n'aurez plus à taper de mot de passe. Cela reste sécurisé, car vous êtes le seul possesseur de la clé privée sur votre ordinateur. Cependant, garder un mot de passe possède un certain intérêt : l'authentification à deux facteurs. Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_rsa2 Your public key has been saved in /home/user/.ssh/id_rsa2.pub The key fingerprint is: SHA256:U5Kr55fkF/Zd4G83qxyu2jJ4GJ9dWU0e5TD6Is+nWqg user@laptop The key's randomart image is: +---[RSA 3072]----+ | o o| | . . =.| | o . . o+| | + ...o| | S . ..+. | | o ..=o+. .| | . *o+o=+.o.| | = B=o+oo.=| | Eo==o+.o+| +----[SHA256]-----+ Pour ajouter la clé fraichement générée sur perso : (en supposant que la clé soit ici : ''~/.ssh/id_rsa.pub'') ssh-copy-id -i ~/.ssh/id_rsa.pub ARISEID@perso3.iiens.net Félicitation, vous pouvez maintenant vous connecter sans mot de passe. ==== Config SSH ==== On peut encore se simplifier la vie en ne tapant que ''ssh perso''. Comment réaliser ce tour de passe-passe ? Il suffit de modifier le fichier ''~/.ssh/config'' (le créer s'il n'existe pas). nano ~/.ssh/config # ou vim Puis de rajouter ces quelques lignes : Host perso HostName perso3.iiens.net User ARISEID Voilà, vous êtes opérationnel pour vous connecter simplement à perso. ==== FTP ==== Vous pouvez également vous connecter à perso en FTP (plus précisément SFTP) pour transférer des fichiers plus facilement depuis votre PC. Pour plus de détails, lire le [[services_arise:ftp|guide sur FTP]]. ===== Héberger un site web ===== Une des fonctionnalités principales de perso est l'hébergement de sites web. Il y a plusieurs façons de faire, en fonction de la technologie que vous souhaitez utiliser. Si vous débutez, référez-vous à la section HTML statique. ==== PHP / HTML statique ==== Que ce soit pour du php ou du web classique, tous les fichiers devront se trouver dans le dossier ''~/html/''. Assurez-vous que les permissions sur ce dossier sont bonnes ! Pour le vérifier : ls ~/html -ld drwx--s--- 13 nom2042 eleves 31 Feb 7 17:37 /home/users/2042/nom2042/html Si les permissions ne sont pas ''%%drwx--s---%%'', alors exécutez la commande suivante : chmod 710 ~/html Vous pouvez ensuite créer ''index.html'' ou ''index.php'' et commencer à développer votre site. Vous pouvez demander à Arise de changer votre dossier racine web (le ''~/html/''), pour par exemple héberger une appli PHP sans exposer les fichiers PHP directement dans le web (type Laravel par exemple) ==== Reverse proxy (Node, Java, Python, ...) ==== Dès l'instant où vous développez dans d'autres langages, votre serveur web fonctionnera en autonomie et il faut pouvoir le relier au serveur web de perso. Si votre site écoute sur un port pour pouvoir fonctionner, c'est que vous avez besoin d'un reverse proxy. Pour cela, il faut l'intervention manuelle d'un ariser. Demandez donc au bureau ou sur ''arise@iiens.net''. Une fois l'intervention réalisée, configurez votre serveur pour qu'il écoute sur le port **1443**. Ce port n'est pas modifiable. Vous ne pouvez pas avoir à la fois un site statique (php, html) et un site en reverse proxy. Cependant, il existe un compromis : le préfixe statique. === Fichiers statiques === Si vous souhaitez mettre à disposition sur votre perso des fichiers (photos, code, etc.) malgré le reverse proxy, cela peut s'avérer être une tâche compliquée. Vous pouvez demander un préfixe statique pour cela. Par défaut, ce préfixe est ''static''. Si vous choisissez ''foo'', alors vos fichiers ''~/foo'' seront accessibles à l'adresse ''https://nom.iiens.net/foo''. ==== Logs ==== Les logs de votre site web sont disponibles dans le dossier ''$WEBLOG_DIR''. Pour y accéder : cd $WEBLOG_DIR Vous pourrez y retrouver 4 fichiers : apache_access.log apache_error.log php_access.log php_error.log ''apache_access.log'' recense tous les logs d'accès à votre site, et ''apache_error.log'' toutes les erreurs rencontrées. === PHP === Si votre site utilise la configuration PHP par défaut (sans reverse proxy), vous bénéficierez en plus des logs PHP. (''php_access.log'' et ''php_error.log'') === Reverse proxy === Si le reverse proxy a été configuré sur votre compte, alors vous devrez gérer vous-même les logs en fonction du framework et du langage utilisé. ===== Exécuter des commandes au redémarrage du serveur ===== ARISE peut être amené à redémarrer le serveur de perso, arrêtant tous les processus qui tournaient sur votre compte (site internet en reverse proxy, bot, tmux, etc.) Pour y remédier et relancer toutes vos tâches au plus vite, vous pouvez utiliser le script ''startup.sh'', présent à la racine de votre home. Si le fichier n'existe pas, il suffit de le créer : echo -e '#!/bin/bash\n\n# Scripts à lancer au redémarrage de la machine' > ~/startup.sh chmod +x ~/startup.sh Vous pouvez ensuite y mettre toutes les commandes à lancer : #!/bin/bash echo "Le serveur a redémarré !" >> logs.txt ===== Quotas ===== ==== Disque ==== Le quota par défaut est de **50 Go**. Il peut être augmenté par simple demande au bureau d'ARISE si vous utilisez activement votre perso. ==== RAM ==== à définir. ==== CPU ==== Limite de 500 processus par utilisateur, non modifiable. ===== Problèmes fréquents ===== ==== Sockets ==== Les sockets ne marcheront pas dans votre home, car les fichiers sont sur NFS. Pour résoudre le problème, vous avez accès à un second home dans le dossier ''/var''. Attention, le quota de ce dossier est de 120Mo. Pour y accéder : cd $VAR_HOME Par exemple, pour PM2 la ligne suivante est présente dans le ''.bashrc'' global pour que les sockets et donc que le daemon fonctionnent. export PM2_HOME="$VAR_HOME/.pm2" ==== Disk quota exceeded (PHP) === Si vous rencontrez une de ces erreurs, c'est sûrement que votre dossier ''$VAR_HOME'' est plein. PHP Warning: Unknown: write failed: Disk quota exceeded (122) in Unknown on line 0 PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/sessions) in Unknown on line 0 Il faudra alors supprimer quelques fichiers. ====== Migration depuis perso 2 ====== ===== DNS et création de compte ===== Afin de créer un nouveau compte sur perso3 et de pointer votre site ''monsite.iiens.net'' sur perso3, il faut exécuter la commande: switch_to_perso3 enable ===== Copie des fichiers ===== Pour copier vos fichiers (html, scripts, etc.), ARISE fournit une commande pour copier facilement vos fichiers. Vous pouvez aussi manuellement utiliser ''scp'' ou ''rsync''. # Copie tous les fichiers (sauf les dotfiles) transfer_dir * # Copie le dossier html transfer_dir html ===== Mot de passe incorrect, erreur de connexion SSH ===== Si jamais vous n'arrivez pas à vous connecter en ssh sur perso2, c'est surement que votre client est trop à jour par rapport à la version du serveur. Ajoutez cette ligne à votre fichier de config ssh (''~/.ssh/config'') : Host perso2 HostName perso2.iiens.net PubkeyAcceptedKeyTypes ssh-rsa Puis : ssh pouet2042@perso2