Nginx et le multi-site ca vous dit ?


Vous avez envie d’hébergé plusieurs sites web dans un même serveur (virtual host) apache le fait  bien mais Nginx aussi.Alors  tout d’abord rassurez vous apache et nginx sont des serveurs web tres puissants et flexibles donc le choix de l’un au détriment  l’autre dépend de vos besoins et specifications.Aujourd’hui  nous verrons comment configurer nginx  pour avoir un environnement multi-site.Pour mon cas j’utilise le couple Uwsgi + Nginx pour héberger mes applications Python/Django  parallèlement aussi j’héberge des applications web en php donc voila mon usecase.

Comme il y un début en tout commençons par l’installation.Pour   ce tutoriel nous utilisons la distribution GNU/Linux Debian Jessie.

Installation

$ sudo apt install nginx

Pour l’instant il n’y rien de bien compliqué à faire après l’installation les fichiers de configurations se trouveront dans le répertoire /etc/nginx .Maintenant configurons😉.

Configuration

Bon  « scénarisons » d’abord  supposons qu’on veut héberger deux  sites simples avec des noms de domaine différents sur  notre serveur.Donc on aura site1.monserver.com et site2.monserver.com.

Maintenant nous  peuvons commencer la configuration qui se fera en quatre étapes. D’abord la création des répertoires qui va contenir les pages de nos sites ensuite la création des pages et la configuration des block  server pour chaque site au niveau de nginx et enfin faire les tests.

Création des répertoires

$ sudo mdkir -p /var/www/site1.monserver.com/html 

$ sudo mdkir -p /var/www/site2.monserver.com/html

$ sudo chown  $user:$user -R /var/www/site1.monserver.com/html

$ sudo chown  $user:$user -R /var/www/site2.monserver.com/html

Nous venons de  créer les répertoires pour recevoir nos fichiers et en même temps on assigne les droits de l’utilisateur au répertoire pour pouvoir y éditer facilement nos fichiers.Attention à ne pas vous connecter en tant que root.

Création du contenu

Créons  un fichier index.html dans le répertoire  html de site1.(Chacun y vas avec son éditeur favori )

$ emacs  /var/www/site1.monserver.com/html/index.html

mettons le contenu.

<html>
    <head>
     <title>Site_1</title>
    </head>
    <body>
     <h1>Hello world!!! bienvenue sur mon <strong>Mon site1</strong></h1>
    </body>
</html>

Sauvegarder  puis fermer le fichier et  Faire la même chose pour site2.

Maintenant que nous avons nos contenus nous pouvons  commencer à dire à Nginx comment il va les servir  à nos visiteurs.Et pour ce faire nous allons créer ce qu’on appelle des « server block ».Par défaut la configuration de Nginx vient avec un seul « server block »  et le fichier le contenant ne nomme default dans le répertoire /etc/nginx/sites-avalaible.

Creation des fichiers des « server block »

Comme  je l’ai dit ci-dessus nous allons créer un server block pour notre site1 d’abord en copiant le server block par défaut  de nginx.

$ sudo cp /etc/nginx/sites-available/default  /etc/nginx/sites-avalaible/site1

Maintenant ouvrons le fichier  site1

$ sudo emacs  /etc/nginx/sites-avalaible/site1

Ignorer toutes les lignes en commentaire notre fichier devrait ressembler à ca

server {
listen 80 ;
listen [::]:80 ;

# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;

root /var/www/site1.monserver.com/html;

# Add index.php to the list if you are using PHP
index index.html index.htm ;

server_name site1.monserver.com;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

Sauvegarder votre ficher site1  et refaite la même chose chose pour site2.Et pour faire simple faites juste une copie de site1 vers site 2

$ sudo cp /etc/nginx/sites-avalaible/site1  /etc/nginx/sites-avalaible/site2

Voila maintenant éditer votre ficher site2 en mettant les valeurs correctes dans  root et server_name

Mettant que tous est presque fini nous allons éditer notre fichier hosts et ajouter les correspondances adresse IP et  noms de domaines

$  emacs /etc/hosts
x.x.x.x         site1.monserver.com

x.x.x.x         site2.monserver.com

remplacer les x.x.x.x par l’adresse IP de votre serveur.pour ce tutoriel comme je suis en local sur ma machine l’adresse IP sera 127.0.0.1.

Ainsi l’étape finale de notre configuration consiste à activer les blocs server  que nous avons crée.Donc nous allons créer des liens symboliques vers le répertoire sites-enable  que nginx lit toujours au démarrage.

$ sudo ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/

$ sudo ln -s /etc/nginx/sites-available/site2 /etc/nginx/sites-enabled/

Vérifions maintenant que tout se passe bien  avec la commande

$ sudo nginx -t

Si tout se passe bien nous devrons avoir quelque chose qui ressemble à ca

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Let’s test

Maintenant que tout est fini lançons les tests

$ curl  site1.monserver.com

<html>
<head>
<title> Site_1 </title>
</head>

<body>

<h1> Hello word!!! bienvenue sur mon <strong>Mon site1 <strong> </h1>

</body>

</html>

 

$ curl  site2.monserver.com

<html>
<head>
<title> Site_2 </title>
</head>

<body>

<h1> Hello word!!! bienvenue sur mon <strong>Mon site2 <strong> </h1>

</body>

</html>

Voila  maintenant  nous  savons héberger plusieurs sites dans un même serveur avec Nginx. Il n’y pas de limite pour les servers blocks vous pouvez en créer autant que vous voulez mais dépendant de la capacité de votre serveur bien sûr :-p .Dans un prochain tutoriel je montrerai comme faire tourner une application Python/Django avec uwsgi  et aussi comment faire tourner du php sur notre serveur.

Mac OS X (Yosemite) : Outdated version of /usr/bin/install_name_tool


Brew n’est pas compatible avec l’installation des clés 3G de Huawei sur Yosemite . Et apres l’installation vous allez voir l’erreur suivante apparaitre sur votre terminal si vous utilisez brew. Enfait Brew est un  gestionnaire de paquet comme apt-get ou yum sur les distributions GNU/Linux.

$ brew doctor
Warning: You have an outdated version of /usr/bin/install_name_tool installed.
This will cause binary package installations to fail.
This can happen if you install osx-gcc-installer or RailsInstaller.
To restore it, you must reinstall OS X or restore the binary from
the OS packages.

la méthode indiquer dans mes recherches sur google  est de  réinstaller  entièrement Mac OS X ce qui est totalement radicale. Mais heureusement pour nous  il y a bien un autre  moyen de restaurer ce fichier mais il faut tout de même télécharger OS X Yosemite depuis l’AppStore.

Une fois les 5,73G téléchargés, quitter l’installateur. Le fichier .dmg , est téléchargé directement dans /Applications.

Pour résoudre le problèmes il faut refaire une « Essentials installation » en lançant les commandes suivantes depuis un terminal:

$ open /Applications/Install\ OS\ X\ Yosemite.app/Contents/SharedSupport/InstallESD.dmg
$ open /Volumes/OS\ X\ Install\ ESD/Packages/Essentials.pkg

Après environ 30 minutes, l’installation se termine, brew retrouve son comporte d’antan  et on retrouve le sourire🙂 .

Installation de Odoo 8.0 (ex openerp) sur ubuntu 14.04 LTS


Odoo est un PGI(progiciel de gestion intégré) qui peut regrouper l’ensemble des fonctions(gestion de stock,comptabilité,vente,RH,CRM,…) d’une entreprise dans un seul programme informatique dans le but de facilité l’interaction avec les différents départements, d’éviter la redondance d’informations pour ne citer que cela .Dans la liste des PGI encore appelé ERP(en anglais) nous pouvons distinguer les EPR opensources(odoo,openbravo,trython,…) et propriétaires(SAP,SAGE,GEAC…),ainsi dans cette article nous allons parler du plus célèbre des ERP opensource. Nous n’allons pas parler de l’aspect fonctionnel pour le moment.Ainsi si vous lisez ces lignes je suppose que vous êtes déjà imprégné sur le sujet et que vous avez décidé de passez à l’installation pour vous familiarisez avec ce système.L’installation peut se faire de plusieurs façons mais nous avons choisi l’installation depuis les sources qui facilite le développement et l’intégration de nouveau module et le déboggage en cas de problème. Pour en savoir plus sur les autres méthodes d’installation vous pouvez visitez la documentation officielle ici

Pre-requis

Nouvelle installation de Ubuntu-server 14.04 si vous n’avez pas l’image vous pouvez aller le télécharger au niveau du site officiel Ici.
L’installation de la machine GNU/Linux ne sera pas détaillée dans ce tutoriel merci de votre compréhension :-p .
N’oubliez pas d’installer openssh-server pour accéder à votre machine à distance(optionnel).

Première étape :

Installation de git et des dépendances

sudo apt-get install git

sudo apt-get install graphviz ghostscript postgresql-client \
python-dateutil python-feedparser python-matplotlib \
python-ldap python-libxslt1 python-lxml python-mako \
python-openid python-psycopg2 python-pybabel python-pychart \
python-pydot python-pyparsing python-reportlab python-simplejson \
python-tz python-vatnumber python-vobject python-webdav \
python-werkzeug python-xlwt python-yaml python-imaging

sudo apt-get install gcc python-dev mc bzr python-setuptools python-babel \
python-feedparser python-reportlab-accel python-zsi python-openssl \
python-egenix-mxdatetime python-jinja2 python-unittest2 python-mock \
python-docutils lptools make python-psutil python-paramiko poppler-utils \
python-pdftools antiword

installer le paquet wkhtmltopdf qui permet d’avoir des rapports en pdf ainsi il faut installer le paquet manuellement au moment au j’écris ces lignes la version disponible dans les depots de Ubuntu n’est pas compatible avec odoo 8.Voici le lien directe pour telecharger la version de Ubuntu Trusty ici

ensuite installer le paquet avec la commande suivante

wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb

Deuxième étapes :

Installation et configuration de la base de donnee

sudo apt-get install postgresql
creation de l’utilisateur odoo pour la base de donnée
sudo -u postgres createuser -s odoo

Troisième étapes :

Récupérer le code source de odoo depuis github
wget -O- https://raw.githubusercontent.com/odoo/odoo/8.0/odoo.py | python

Quatrième étapes :

exécuter le serveur
cd odoo
./openerp-server

Maintenant si tout se passe bien notre application sera disponible à l’url suivant http://localhost:8069

NB:

Si pendant le démarrage de l’application vous obtenez l’erreur suivante
raise ValueError, 'unknown locale: %s' % localename
ValueError: unknown locale: UTF-8

la solution est :
export LC_CTYPE='en_US.utf8'
Et redémarrer l’application à nouveau .

Changer le répertoire (/var/www/html) par défaut d’apache2 sur Debian


Si vous créez des sites web ( amateur ou pro) avec une distribution GNU/Linux  vous devez connaître forcement apache2 et savoir pour que votre application soit disponible à travers l’adresse 127.0.0.1 il faut déposer les fichiers sur le répertoire par défaut du serveur web apache2(/var/www/html) .Et si vous utilisez des éditeurs de texte  graphique comme  Sublim-text ou Brackets ou ce que vous voulez … vous devez alors les démarrer en mode administrateur(root) pour pouvoir éditer convenablement vos fichiers qui sont dans le répertoire /var/www/html et cela n’est pas très conviviale dans un environnement de test .Voila donc c’est pour cette raison que nous allons changer  le répertoire et le pointer dans un répertoire ou un utilisateur simple pourra éditer les fichiers sans disposer de droit administrateur.Maintenant  chacun peut y aller avec ces propres raisons :-p .Bon changeons ce répertoire une bonne fois pour toute🙂.

1-Créons un dossier de destination

 mkdir  /home/hostname/websites

2-Donnons ensuite tous les droits à l’utilisateur « www-data » qui exécute Apache2 et ensuite attribuons un accès total à l’utilisateur simple pour ce répertoire :

chown www-data /home/hostname/websites -Rf 
sudo chmod 775 -R /home/hostname/websites
3-Editons le fichier de configuration d’apache

 sudo nano /etc/apache2/sites-available/000-default.conf

Regardons la directive « Documentroot »qui pointe vers « /var/www/html » ensuite nous allons donc changer cette directive pour y mettre  « /home/hostname/websites » .

4-Nous devons faire la même chose en changeant le chemin (/var/www/html) dans le tag « Directory » par le nouveau(/home/hostname/websites)

sudo nano /etc/apache2/apache2.conf

Enfin nous pouvons ensuite redémarrer Apache 2 pour que les changements de configuration soient pris en compte :
sudo service apache2 restart

NB : cet usage n’est pas recommandé dans un environnement de production l’aspect sécurité n’est pas pris en compte.

Faire un Update du firmware Nokia avec Ubuntu via virtual-box [Nokia E71]


Difficile de se débarrasser totalement du système de B.Gates , c’est le standard … et j’espère que d’ici quelque années cela va changer . J’ai installé  » Windows XP » sur  Virtual-box et je l’utilise pour faire la synchronisation (sauvegarde de données) de mon vieux  téléphone un Nokia  E71 via le logiciel Nokia PC Suite  et j’en profite de temps temps pour faire le update du firmware en cas de problème ou s’il y a une nouvelle version  . la virtualisation de  » XP » est la meilleur solution pour l’instant ni Wine ni Playonlinux ne sont à la hauteur   .Et pourquoi Nokia n’a pas crée une version pour Linux ? … ils veulent pas sans doute faire un logiciel pour une minorité  bref c’est mon avis  je travaille pas à Nokia pour donner les raisons exactes  mais bon la minorité se débrouille bien vous trouvez pas vous ?🙂 bon assez parler « allons zyy » !

 

Mais qu’est ce que je dois faire … ?

Bon j’imagine que vous avez  déjà installé   votre virtual-box ,  système ( XP/ 7 / 8 ) et le Nokia PC Suite  parce que je ne vais pas vous montrez comment  faire  :-p

Maintenant  on démarre notre virtual-box et on choisi le système virtuel  ensuite clique droit et puis « setting » bon vous pouvez faire un « crtl+S » raccourci clavier  cliquons sur l’onglet USB

On ajoute un filtre vierge  et  double clique sur le filtre pour le modifier

 

voila le tour est joué vous pouvez  maintenant redémarrer et faire votre update en tout sécurité😉

….. ah d’accord c’est pas du magie tout ça le filtre permet de remonter automatique  l’appareil parce que en cas de mise à niveau vers une version plus récente du  firmware  l’appareil peut être  déconnecte  plusieurs fois  donc il faut qu’on puisse le reconnecter pour  que la connexion ne soit pas perdue .voila en espérant être claire je vous souhaites un bon « update » tout en souhaitant pour bientôt une version du Nokia PC suite pour linux ou bien Nokia est a l’ère du crépuscule ? … je dis rien🙂

PS : j’ai fait le update de mon Nokia express music  aussi alors ne pensais pas que ça marche qu’avec le E71

installation d’Infinity Conky sur Ubuntu 12.04 (Unity/Gnome3/Cinnamon)


Je viens partager avec vous l’installation de l’un des plus beaux thèmes conky (infinity) que j’ai eut à voir .Il faut juste constater que les gadgets sur les Desktop Linux  commence à intéresser pas mal de personne vivement que ça augmente au bénéfice de TOUS…😉 .Je vous laisse apprécier mon Screenshots en attendant de voir comment on l’installe …🙂

Installons …

Essayez de taper les commandes suivant dans votre terminal (ctrl+alt+t)

sudo apt-get install conky conky-all 

wget  https://dl.dropbox.com/s/pmr3aer3qw75ug9/conky.zip

unzip conky.zip 

bon voila aussi simple que ça maintenant  vous pouvez tester votre conky avec cette commande  dans un terminal😉

conky .conkyrc

Editer conkyrc pour l’adapter à votre environnement

Vous devez éditer le fichier mettre votre interface  réseau (wifi ou ethernet ) et le chemin  de votre répertoire de base (/home)

sudo gedit ~/.conkyrc

  • Ligne 79  remplacer le  » /home/elwan  »  par  le votre (/home/xxxx)
  • Ligne 89 ,90 et 93  remplacer le  » wlan2  » pour votre interface wifi ou ethernet
Configurer  conky au démarrage

Aller dans applications au démarrage et suivez ces étapes Parcourir et allez chercher le fichier startconky.sh  fait un ctrl+h pour voir les fichiers cachés Enregistez et fermer maintenant tout va bien🙂 Vous aurez votre joli thème conky maintenant au démarrage   enjoy …🙂 PS :  Si votre thème n’est pas bien ajuster aller au niveau du conkyrc et modifier la ligne 40 & 41 pour l’adapter aux dimensionnement de votre écran source 

Introduction au WebRtc


Voici une  petite présentation de la technologie Web-RTC (Web real-time communication) que j’avais faite lors d’un évènement( Ndogou* du libre )  de la communauté du libre de dakar (Dakarlug) .

Demo: Scripts

PS : après avoir télécharger les fichiers changez les extensions .doc en .html 

*Ndogou (Rupture du jeûne pendant le mois du ramadan en wolof )