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

GNU/Linux

Script de découpe des fichiers flac et cue sous GNU/Linux

La découpe de fichier flac + cue sous GNU/Linux, ce fait via la ligne de commande.
C’est assez casse pied à mémorisé, du coup, j’ai fait un mini script qui s’occupe de cela :

  1. #!/bin/bash
  2.  
  3. # Ce script facilite l'extraction de fichier flac + cue
  4. # Il ajoute également tout seul les métadonnées pour importation
  5.  
  6. # Exemple : splitflac fichier.cue fichier.flac
  7.  
  8. # Dépendant :
  9. # sudo apt install cuetools shntool flac
  10.  
  11. # Découper le fichier
  12. echo "|Extraction des fichiers|"
  13. cuebreakpoints "$1" | shnsplit -o flac "$2"
  14. # Récupérer les méta donnée du flac
  15. echo "|Extraction des métadonnées|"
  16. cuetag "$1" split-track*.flac

Dépôts github : https://github.com/phenix-factory/splitflac


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 phpenmod 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 :)