var Phenix = function () {
Troll du Web depuis 1996

GNU/Linux

Si vous n’avez plus de réseau sous linux après l’installation de Windows 10

C’est directement la merde, sans internet !

Si après la mise à niveau vers Windows 10, votre partition Linux n’arrive plus à se connecter au réseau et donc à Internet, ne tapez pas tout de suite sur votre BiduleBox !

Il est possible que cela soit la faute de Windows 10 !

J’ai une carte Intel I270-v et après avoir installé Windows 10, ma partition Linux Mint n’arrivait plus à se connecter au réseau.

Après des heures de recherche la solution est assez WTF : il faut désactiver le Wake on Lane (WoL) de Windows.

Rendez-vous dans les propriétés de votre carte, onglet Power management et décocher les cases relatives au WoL.


Préparer Ubuntu 16.04 ou Linux Mint 18 pour le développement web local

Cet article est une mise à jour de l’article Préparer Ubuntu 14.04 pour le développement web local.

On commence par installer les éléments du serveur web :

  1. sudo apt install lamp-server^ php-gd php-sqlite3 php-curl php-xml php-xdebug php-mbstring

N’oubliez pas que le « ^ » à la fin de lamp-server n’est pas une faute de frappe !

Donner un nom au serveur web

Même si on a plus vraiment de message d’erreur, il est toujours bon de donner un nom au serveur. On fait comme pour Ubuntu 14.04 :

  1. echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf
  2. sudo a2enconf fqdn

Configurer xdebug

La configuration par défaut de xdebug est un peu légère.
On modifie le fichier de configuration /etc/php/7.0/mods-available/xdebug.ini pour y ajouter ces lignes :

  1. xdebug.max_nesting_level = 1000
  2.  
  3. ; Pas de limite pour l'affichage xdebug
  4. xdebug.var_display_max_depth = -1
  5. xdebug.var_display_max_children = -1
  6. xdebug.var_display_max_data = -1

Augmenter la valeur maximale d’upload

Par défaut, la valeur maximale d’upload est de 2Mo. C’est un poil handicapant de nos jours ou le moindre fichier dépasse facilement cette limite.

Il suffit d’éditer /etc/php/7.0/apache2/php.ini et de modifier les valeurs :

  1. upload_max_filesize = 1024M
  2. post_max_size = 1024M

Dans le même fichier, j’en profite pour afficher les erreurs, et vraiment toutes les erreurs PHP :

  1. error_reporting = E_ALL
  2. display_errors = On

Utiliser un autre répertoire que /var/www

Ensuite, je n’aime pas trop utiliser le dossier /var/www sur lequel pointe localhost par défaut. J’aime bien mettre les fichiers à l’abri dans mon répertoire /home :

Il faut éditer le fichier /etc/apache2/sites-available/000-default.conf
A la fin de la déclaration du VirtualHost il faut ajouter ceci :

  1. <Directory /home/phenix/Sites>
  2. Options Indexes FollowSymLinks
  3. AllowOverride all
  4. Require all granted
  5. </Directory>

Il faut aussi remplacer la déclaration du DocumentRoot qui se trouve plus haut !

Maintenant, normalement, localhost pointe sur le dossier Sites de mon /home.

Changer les droits d’Apache

J’aime également bien que Apache tourne avec mes droits utilisateurs, cela évite de pas mal de problème d’écriture. Sur un serveur web c’est plutôt déconseillé, mais pour uniquement du local, je ne vois pas trop le mal.

Il faut éditer le fichier /etc/apache2/envvars et changer les ligne USER et GROUP. Cher moi cela donne ceci :

  1. export APACHE_RUN_USER=phenix
  2. export APACHE_RUN_GROUP=phenix

Activer l’URL_REWRITING

Par défaut, mod_rewrite n’est pas activé. On a déjà préparé le terrain avec AllowOverride all mais il faut encore activer le module :

  1. sudo a2enmod rewrite

Ensuite on redémarre apache :

  1. sudo service apache2 restart

Activer le module Expires

Un autre module bien utile : expires, pour les sites qui configure le cache du navigateur via Apache2

  1. sudo a2enmod expires

On oublie pas de relancer apache pour prendre en compte le nouveau mod :

  1. sudo service apache2 restart

Activer le module Headers

Pour les sites qui manipule les headers via apache2 :

  1. sudo a2enmod headers

On oublie pas de relancer apache pour prendre en compte le nouveau mod :

  1. sudo service apache2 restart

Activer www.localhost

Parfois, on place des redirections via les fichiers .htaccess pour forcer l’utiliser les www devant le nom de domaine.
Du coup, c’est pratique d’avoir un www.localhost fonctionnel. Il faut pour cela éditer le fichier /etc/hosts pour y ajouter :

127.0.0.1       www.localhost

MySQL

Je ne suis pas un grand fan des tables en InnoDB, depuis le jour ou elles ont toutes crashés lamentablement.
Dans mon domaine, l’utilisation d’InnoDB n’est pas du tout indispensable. MyISAM pourrait même être meilleur, car il est plus rapide sur les opérations simples comme SELECT et INSERT.

Du coup, on change le moteur par défaut, en éditant le fichier /etc/mysql/mysql.conf.d/mysqld.cnf.

Dans la section [mysqld] on ajoute la ligne :

default-storage-engine=myisam

Truc en plus

Font Web

Toutes les fonts « web » ne sont pas installées, il faut les demander :

  1. sudo apt-get install ttf-mscorefonts-installer

Charger PHP Mcrypt

Certaine application comme composer on besoin de Mcrypt, on va donc charger l’extension :

  1. sudo apt install php-mcrypt
  2. sudo php5enmod mcrypt

Bon travail !


Préparer Ubuntu 14.04 pour le développement web local

Voici quelques notes que je publie, c’est la configuration que j’utilise quand j’installe Ubuntu (ici la version 14.04) :

Installer le serveur web

Ils sont cool chez Canonical, il y a une commande tout simple qui installe tout d’un seul coup. Enfin presque, on va la compléter un peu :

  1. sudo apt-get install lamp-server^ php5-gd php5-sqlite php5-curl php5-xdebug

Le ^ à la fin est indispensable ! ce n’est pas une faute de frappe.

Donner un nom au serveur Apache

Chaque fois que Apache va redémarrer, il va afficher un message d’erreur :

phenix@thanatos ~> sudo service apache2 restart
* Restarting web server apache2
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

Pour éviter ce message, il faut donner un nom au serveur :

  1. echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf
  2. sudo a2enconf fqdn

Configurer xdebug

La configuration par défaut de xdebug est un peu légère.
On modifie le fichier de configuration /etc/php5/mods-available/xdebug.ini pour y ajouter ces lignes :

  1. xdebug.max_nesting_level = 1000
  2.  
  3. ; Pas de limite pour l'affichage xdebug
  4. xdebug.var_display_max_depth = -1
  5. xdebug.var_display_max_children = -1
  6. xdebug.var_display_max_data = -1

Augmenter la valeur maximale d’upload

Par défaut, la valeur maximale d’upload est de 2Mo. C’est un poil handicapant de nos jours ou le moindre fichier dépasse facilement cette limite.

Il suffit d’éditer /etc/php5/apache2/php.ini et de modifier les valeurs :

  1. upload_max_filesize = 1024M
  2. post_max_size = 1024M

Dans le même fichier, j’en profite pour afficher les erreurs, et vraiment toutes les erreurs PHP :

  1. error_reporting = E_ALL
  2. display_errors = On

Utiliser un autre répertoire que /var/www

Ensuite, je n’aime pas trop utiliser le dossier /var/www sur lequel pointe localhost par défaut. J’aime bien mettre les fichiers à l’abri dans mon répertoire /home :

Il faut éditer le fichier /etc/apache2/sites-available/000-default.conf
A la fin de la déclaration du VirtualHost il faut ajouter ceci :

  1. <Directory /home/phenix/Sites>
  2. Options Indexes FollowSymLinks
  3. AllowOverride all
  4. Require all granted
  5. </Directory>

Il faut aussi remplacer la déclaration du DocumentRoot qui se trouve plus haut !

Maintenant, normalement, localhost pointe sur le dossier Sites de mon /home.

Changer les droits d’Apache

J’aime également bien que Apache tourne avec mes droits utilisateurs, cela évite de pas mal de problème d’écriture. Sur un serveur web c’est plutôt déconseillé, mais pour uniquement du local, je ne vois pas trop le mal.

Il faut éditer le fichier /etc/apache2/envvars et changer les ligne USER et GROUP. Cher moi cela donne ceci :

  1. export APACHE_RUN_USER=phenix
  2. export APACHE_RUN_GROUP=phenix

Activer l’URL_REWRITING

Par défaut, mod_rewrite n’est pas activé. On a déjà préparé le terrain avec AllowOverride all mais il faut encore activer le module :

  1. sudo a2enmod rewrite

Ensuite on redémarre apache :

  1. sudo service apache2 restart

Activer le module Expires

Un autre module bien utile : expires, pour les sites qui configure le cache du navigateur via Apache2

  1. sudo a2enmod expires

On oublie pas de relancer apache pour prendre en compte le nouveau mod :

  1. sudo service apache2 restart

Activer le module Headers

Pour les sites qui manipule les headers via apache2 :

  1. sudo a2enmod headers

On oublie pas de relancer apache pour prendre en compte le nouveau mod :

  1. sudo service apache2 restart

MySQL

Je ne suis pas un grand fan des tables en InnoDB, depuis le jour ou elles ont toutes crashés lamentablement.
Dans mon domaine, l’utilisation d’InnoDB n’est pas du tout indispensable. MyISAM pourrait même être meilleur car il est plus rapide sur les opérations simples comme SELECT et INSERT.

Du coup, on change le moteur par défaut, en éditant le fichier /etc/mysql/my.cnf.

Dans la section [mysqld] on ajoute la ligne :

default-storage-engine=myisam

Truc en plus

Font Web

Toutes les fonts « web » ne sont pas installés, il faut les demander :

  1. sudo apt-get install ttf-mscorefonts-installer

Drush

Installer Drush pour la gestion de Drupal :

  1. sudo apt-get install drush

Charger PHP Mcrypt

Certaine application comme composer on besoin de Mcrypt, on va donc charger l’extension :

  1. sudo php5enmod mcrypt

Enjoy !


Fish Shell, un shell tout en couleur !

Voilà une petite trouvaille vraiment indispensable si on travaille beaucoup en ligne de commande : Fish Shell.

Il apporte tout un tas de fonctions hyper intéressantes que ce soit pour ceux qui débutent avec la ligne de commande où si on est un utilisateur avancer : autocomplétion, suggestion, historique, etc.

Je ne comprends d’ailleurs pas pourquoi les autres shell ne sont pas aussi évolué.

Il dispose même d’une web interface en python pour personnaliser tout ça dans les règles ! Que du bonheur.

  1. fish_config
Interface web de Fish Shell

Par contre, il ne prend pas en charge le fichier .profile que vous pourriez avoir créé. C’est relativement embêtant.
Heureusement, j’ai fouillé la doc pour trouver. Il faut créer :

  1. ~/.config/fish/config.fish

Qui se comporte comme un .profile ;).

Cerise sur le gâteau, c’est une licence GNU :)


Installer son propre serveur de partage réseau

Il existe de nombreux tutoriel sur le net pour faire ce genre de chose. Pour en avoir essayé quelques un je trouve que souvent c’est compliqué, ou mal expliqué. Je vais essayer ici de vous résumer la méthode que j’utilise. C’est normalement très simple et accessible à tous, pour peu qu’on ai pas peur de ce lancer.

Néanmoins, une connaissance minimum des réseaux (informatiques, pas sociaux !) est indispensable : savoir ce qu’est une IP et connaitre celle que l’on utilise chez soi.

Entendons-nous bien : cette méthode est pour un petit réseau chez soi. Ce n’est en aucun cas adapté pour une grande infrastructure.

Sommaire :

  1. Qu’est-ce qu’il me faut pour faire un serveur de partage ?
  2. Installation d’Ubuntu 10.04 server.
  3. Configurer le serveur.
  4. Aller plus loin ?

1. Qu’est-ce qu’il me faut pour faire un serveur de partage ?

Pour commencer du courant électrique !

Blague à part, un serveur c’est un ordinateur allumé en continu, il consomme donc sa part sur votre facture, pensez-y.

Ensuite, il vous faut un ordinateur, de préférence celui qui chauffe le moins possible, et qui ne sera dédié qu’à sa. Il ne faut pas une foudre de guerre, juste un ordinateur. Certains d’entre vous peuvent penser que les serveurs sont de puissantes machines de la mort qui tue tout. C’est vrai pour les serveurs web et les serveurs de jeu qui reçoivent des milliers de connexions, mais dans notre cas, la puissance est totalement négligeable.

Pour ma part, j’utilise un Pentium 3 avec 128 Mo de mémoire ram. Un dinosaure quoi.

images_1279270197-650x433.jpg
Mais y a pas de souris dans tout ça !

Non, y a pas de souris, car on va installer un système en ligne de commande. Un serveur n’est pas fait pour une utilisation fréquente, c’est surtout destiné à offrir un service. Bref, on installant le strict minimum pour fonctionner, cela économise la puissance de la machine.

Il vous faut aussi un CD de la dernière version d’Ubuntu server (à l’heure ou j’écris ces lignes : la 10.04). Vous pouvez télécharger ce CD sur le site d’Ubuntu si vous ne savez pas quoi prendre, cliquez simplement sur télécharger, c’est une version qui fonctionnera sur toutes les machines. Sinon, n’hésitez pas à prendre la version la plus adaptée.

Gravez ensuite l’image iso que vous avez téléchargé. L’objet de ce tutoriel n’étant pas la gravure d’image iso, je vous renvoie à celui ci : Graver une image disque .

Note importante sur l’écran :

images_1279270527-650x433.jpg

Vous serez peut-être content de l’apprendre, il n’est indispensable que pour la première partie, c’est à dire l’installation d’Ubuntu. Par la suite, sa présence sera tout à fait négligeable. Un gain de place considérable si vous voulez comme moi ranger votre serveur dans une armoire.

Bien, il ne vous manque plus que ça et on y va :

images_1279270507-650x433.jpg

2. Installation d’Ubuntu 10.04 server.

Premièrement, booter sur le CD. Ce n’est pas non plus l’objet de ce tutoriel, mais je vous renvoie à l’article de la documentation d’Ubuntu .

Au premier écran, il vous demande de choisir la langue, si vous lisez cet article, je vais supposer que vous êtes francophone (Si vous ne l’êtes pas, je vous tire mon chapeau).

images_1279272608-650x433.jpg
Choisir sa langue !

Et voila, vous arrivez sur l’écran d’accueil du CD d’Ubuntu !

images_1279272896-650x433.jpg

Soyons clair : changer la disposition du clavier (choisissez simplement votre pays) et appuyez sur « enter ».

Faite confiance à Ubuntu et répondez simplement aux questions qu’il pourrait vous posez, jusqu’à l’écran des partitions :

images_1279273613-650x433.jpg

On entre dans la partie la plus compliqué, le partitionnement (rien à voir avec le solfège), c’est une étape clé, car il faut protéger les données du serveur avant tout. Pour cela on va créer plusieurs partitions :

images_1279273865-650x433.jpg

  1. Une partition de boot, c’est ma machine qui veut cela, vous pouvez ne pas le faire.
  2. Une partition de 10 Go (vous pouvez mettre moins) pour installer le système, cette partition contiendra Linux et tous les programmes que vous installerez.
  3. La partition « Home » c’est la partition de stockage, elle contient tous les fichiers. Sur la photo, j’ai déjà des fichiers dessus, c’est pourquoi elle est toujours en ext3. Vous pouvez choisir l’ext4.
  4. De la swap, par principe.

Comment on fait ?

Ça marche en quelques étapes :

  1. Sélectionnez de l’espace libre.
  2. Créez une nouvelle partition.
  3. Choisissez sa taille ( voir plus haut ).
  4. Partition logique ou primaire ? Personnellement j’ai pris logique.
  5. Début ou fin ? Choisissez début.

Arrive le choix fatidique, l’écran de la mort avec pleins de paramètres incompréhensibles pour le commun des mortels.

images_1279274893-650x433.jpg

La première ligne permet de sélectionner le type de système de fichier. Laissez ext4.

Le point de montage défini ce qui va être installé sur la partition. Petite info : le « / » unique représente le système.

Laissé les autres options par défaut.

Il suffit ensuite de sélectionner « Terminer le partitionnement et appliquer les changements », un écran vous préviendra de ce qui va être formaté, vérifiez que tout est bien et sélectionnez « oui ».

Vous pouvez maintenant aller vous chercher un autre café, épongé la sueur de votre front et regardez la magie de l’installation de Linux sur votre machine. Sinon, vous pouvez aussi aller lancer votre barbecue l’installation va prendre un certain temps.

images_1279276968-650x433.jpg
Installation de Linux \o/

Il vous restera ensuite à remplir les formulaires de création d’utilisateur. A un moment le programme va vous demander un « mandataire http ». Si vous ne savez pas ce que c’est, laisser vide.

Le serveur va ensuite faire ses mises à jour.

Lorsqu’il a fini, le logiciel vous demande si vous voulez en plus installer des logiciels, sélectionnez OpenSSH server et Samba file server. Pour sélectionner un logiciel, appuyer sur la barre d’espace, une * apparaît alors.

  • OpenSSH est un logiciel pour communiquer à distance avec le serveur : plus besoin de l’écran.
  • Samba est un logiciel pour partager des fichiers avec d’autres ordinateurs. On s’en servira plus loin.

images_1279278367-650x433.jpg

Félicitation, vous avez installé Ubuntu server !

images_1279279342-650x433.jpg

Le serveur redémarre et votre système est prêt à fonctionner !

C’est beau non ? Vous comprenez maintenant pourquoi il n’y a pas de souris ?

images_1279279750-650x433.jpg

3. Configurer le serveur.

Maintenant qu’il est installé, il faut le configurer, vous avez le système, mais il ne sait pas à quoi il va servir. Ne vous inquiétez pas on va lui expliquer.

Commencez par vous connecter avec le login et le mot de passe que vous avez choisi.

 ! Mon mot de passe refuse de s’inscrire !

Pas de panique, c’est normal : sous Linux, tout est fait pour le protéger : quelqu’un qui regarde votre écran ne dois même pas en connaître la longueur ! Votre mot de passe s’écrit quand même.

images_1279280574-650x433.jpg

Bien, maintenant que vous êtes à ce niveau, nous allons entrer tout un tas de commande que je vais vous expliquer.

Premièrement, il faut savoir qu’Ubuntu (et d’autres distributions) utilise un système de dépôt de logiciel. En gros, vous demandez un logiciel et le programme l’installe tout seul.

C’est également par ce système de dépôt que nous allons faire les mises à jour.

On commence par mettre la liste des logiciels à jour :

sudo apt-get update

Ensuite on lance la mise à jour :

sudo apt-get upgrade

Des mises à jours sont certainement disponibles, indiqué oui (O) et appuyer sur « enter ».

Je comprends rien à ce qui s’affiche à l’écran !

C’est pas bien grave, ici c’est des mises à jour, la plus part des choses qui s’affiche ne vous concerne pas.

Une fois que les mises à jour sont faits, on vérifie qu’il n’y a pas d’autre mise à jour :

sudo apt-get dist-upgrade

Pour en savoir plus sur APT, aller sur la page de la documentation.

Une fois que les mises à jour sont faites, on va donner une adresse IP fixe au serveur. Pour pouvoir le contacter à distance, c’est toujours mieux de savoir ou il ce trouve !

Il faut modifier le fichier /etc/network/interfaces

sudo nano /etc/network/interfaces

Maintenant, tout dépend du type de réseau.

Personnellement, voici que j’ai utilisé comme configuration, normalement cela correspond à la plus part des configurations réseau. L’adresse IP du serveur sera donc toujours 192.168.1.6.

# This file describes the network interfaces available on your system
_ # and how to activate them. For more information, see interfaces(5).

# The loopback network interface
_ auto lo
_ iface lo inet loopback

# The primary network interface
_ auto eth0
_ iface eth0 inet static
_ address 192.168.1.6
_ netmask 255.255.255.0
_ network 192.168.1.1
_ broadcast 192.168.1.255
_ gateway 192.168.1.1

Ensuite, il faut quitter et enregistrer. Pour quitter : ctrl+x

A la question « Voulez-vous enregistrer » répondez oui en entrant O et en pressant « Entrer ».

Un petit reboot (une commande très complexe !) :

sudo reboot

Maintenant que notre serveur a une IP fixe, nous allons pouvoir nous connecter dessus à distance en utilisant le protocole SSH .

Pour ce faire il faut un client SSH. Sous macOs et Linux, le terminal fait aussi client SSH. Sous windows, il y a un petit logiciel qui s’appelle PuTTy et qui est disponible sur son site officiel .

Personnellement, je n’utilise pas plus Windows, j’utiliserai donc la méthode pour se connecter via un terminal. PuTTy est normalement plus simple d’utilisation.

Ouvrez un terminal et entré cette commande :

ssh mon_nom_d'utilisateur@192.168.1.6

images_1279877500-567x433.png

Il y a de forte chance qu’il vous demande d’accepter une clé et ensuite votre mot de passe, je ne vous fais pas un dessin, si vous voulez vous connectez il va falloir répondre aux questions.

images_1279877824-567x433.png

Et nous voila connecté au serveur ! Plus besoin d’écran, plus besoin de clavier ! Enfin si, beaucoup d’ordinateurs refuseront de s’allumer s’il n’y a pas de clavier branché. Regardez dans le Bios pour voir si vous pouvez changer cette option.

Maintenant qu’on est connecté, on peut commencer à créer le partage réseau. Pour cela, on va ajouter un dossier sur la partition /home.

sudo mkdir /home/public

C’est ce dossier qui sera partagé sur le réseau, et pour le partager, nous allons demander à samba de le faire.

Comme tout bon programme Linux, samba utilise un fichier de configuration que nous allons modifier :

sudo nano /etc/samba/smb.conf

Il y a plein de truc dans ce fichier. La bonne nouvelle c’est qu’on a pas besoin de s’en préoccuper, ajoutez à la fin du fichier :

[public]
_ path = /home/public
_ public = yes
_ browseable = yes
_ writable = yes

Quittez nano et sauvegarder ( voir plus haut ) ensuite, il ne reste plus qu’a redémarré samba :

sudo service smbd restart

Connectez-vous ensuite au répertoire public, sous windows, allez dans le poste de travail, sélectionnez : « Se connecter à un serveur » « Pomme + K » sur MacOs et entrer directement l’adresse :

\\192.168.1.6\public

Si ça ne marche pas, c’est que vous avez raté quelques choses. Sinon, félicitation, vous avez crée un répertoire partager sous Linux.

images_1279881163.jpg

4. Aller plus loin ? Vers l’infini et l’au-delà  !

Un serveur peu rendre bien des services, pour peu qu’on en ai vraiment besoin, ici on a un ordinateur avec un espace accessible par tout les ordinateurs du réseau. C’est déjà bien pratique. Mais que peut-on faire d’autre pour justifier la facture d’électricité ?

Ubuntu dispose d’une documentation très complète sur les serveurs. Et plus généralement sur le système Ubuntu.

Bon amusement avec votre nouveau jouet !