Les Turnkeys de mon Labo …

Alors un turnkey, c’est assez simple. C’est soit une image ISO (un CD mais sous forme de fichier à telecharger) soit carrement une machine virtuelle. Dans les deux cas, tout est pré-installé pour par exemple (c’est ce que j’utilise le plus un serveur Linux Apache MySQL PHP ou LAMP).

Au final, je ne configure plus de serveur LAMP je déploie des ISO.
Evidemment, cela va plus vite mais …. Pas toujours (par exemple si vous voulez ajouter des éléments NGINX pour ne pas le nommer, la version est un peu vieille).

Dans mon labcav, j’ai plusieurs LAMP : un lamp multi-site, un observium et un newznab.

Le LAMP multisite : il contient Fever (un agrégateur RSS qui peut classer les informations par importance. Une information qui se répète est une information plutôt importante. Il  contient aussi TTRSS qui fait la meme chose mais en plus classique façon Feedly. Il y a aussi pocket qui est un read-it-later like (je stocke une information généralement de flux RSS pour la lire plus tard).

LAMP Observium : j’avoue ce dernier est tout fait. Il sert a fabriquer une carte d’administration de machine qui renvoi les informations SNMP. En gros, c’est un indicateur de supervision de mon LabCave.

LAMP Newznab : Vaste sujet, je ferais un billet rien que sur ce Turnkey.

 

Tout ça est bien beau MAIS sorti du LAMP, il y a deux chose dont j’ai besoin : APC cache et NGINX.
Tous les LAMP déployés viennent avec Xcache qui est mieux que rien … c’est sûr.
Personnellement, je préfère APC cache qui est plus efficace et surtout qui a un joli panneau de supervision.

Il faut donc installer tout ça sur chacun des LAMP. Pour se faire, j’aime utiliser PuTTY et WinSCP le tout sous un windows par exemple en RDP 😉

Apt-get update && apt-get install php-apc

ET CA NE FONCTIONNE PAS. Forcément, le système cherche Xcache qui a été effacé par l’installation d’APC.
Il suffit d’aller ici :
/etc/php5/conf.d

Et de supprimer le 20-xcache.ini

Et petit redemarrage d’Apache …
sudo service apache2 restart

(si sudo n’est pas présent … ce qui est le cas dans un Turnkey : apt-get install sudo)

Voilà, APC fonctionne et il suffit de mettre le apc.php dans var/www pour avoir le panneau de supervision APC.

NGINX c’est un peu plus compliqué (surtout sur Newznab mais on verra ca ultérieurement). Alors en gros, NGINX c’est un serveur web comme Apache sauf qu’il va super mais alors super vite (ce que doit faire Apache 2.4 aussi d’ailleurs).

D’abord, il faut qu’Apache cesse d’écouter sur le port 80 (bah oui c’est NGINX qui va ecouter les demandes à sa place).

On édite :
/etc/apache2/ports.conf

On change le :
Listen 80 En Listen 8080

Après, petite installation de NGINX (s’pas difficile et c’est lui qui va piquer le port 80) :

sudo apt-get install nginx

Normalement dans /etc/nginx/ , il y a sites-available et sites-enabled. Si ce n’est pas le cas, il faut juste les créer.

Dans sites-available, je créer un fichier LAMP (super original).

Qui contient ça :

server {
listen   80;
root /var/www/;
index index.php index.html index.htm;
server_name mydomain.com;

         location / {
try_files $uri $uri/ /index.php;
}

         location ~ \.php$ {
proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}

          location ~ /\.ht {
deny all;
}
}

Après un petit coup de :
sudo ln -s /etc/nginx/sites-available/LAMP /etc/nginx/sites-enabled/LAMP

En gros, j’active avec cette commande le fichier de config qui ecoute en 80 et qui sert du PHP qu’il va chercher en boucle locale sur le port 8080 … le port HTTP d’Apache. Et la boucle est bouclée.

On supprime le site par défaut de NGINX :
sudo rm /etc/nginx/sites-enabled/default

On redémarre tout ca :
sudo service apache2 restart && sudo service nginx restart

Et si ça ne fonctionne pas on redémarre tout le serveur.

Voila, vous avez un serveur qui sert du PHP sur Apache avec le cache APC et accéléré par NGINX. C’est-à-dire le pas loin du fin du fin en matière de serveur WEB PHP.

Je n’ai pas ajouté PHP Fast-CGI (qui accélère de beaucoup le traitement PHP) parce que Fever ne le supporte pas et qu’Observium n’en a pas besoin. Mais ce sera dans le billet sur NewzNAB.

Comment se passer de Google Reader ?

Si comme moi, vous pratiquez la veille la disparition de Google Reader sonne comme une tragédie (ou une libération c’est au choix).

Il existe aujourd’hui plusieurs solution digne d’attention :
– Fever° parce qu’il s’installe sur votre propre serveur web et que son cout est un one shot de 30$
– Tiny Tiny RSS parce qu’il s’installe, lui aussi, sur votre propre serveur web et qu’il est gratuit
– Newsblur qui n’est ni gratuit (2$ par mois tout de même) et qu’il ne s’installe pas (quoi que sa version open source le permet mais pour une complexité forte).

A part Fever° aucun n’est pour l’instant compatible avec une bonne app pour iOS (perso je suis sous Feever mais Mr Reader est un excellent candidat). La situation devrait évoluer (et l’intégration de TTRSS voir le jour).

Il faut pour s’amuser un peu déployer une VM sous Linux (ou physique mais bon là c’est une question de philosophie et de moyen).
Installer LAMP :
sudo apt-get install apache2 php5 mysql-server mysql-client libapache2-mod-php5 php5-mysql

Dans le répertoire d’Apache /var/www, il faut créer 2 dossiers : Fever et ttrss (en tout cas ce seront les dossiers dont je parlerais dans la suite du tuto).

J’installe webmin (ça aide beaucoup) :
nano /etc/apt/sources.list

On ajoute :

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib

wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc
sudo apt-get update

sudo apt-get install webmin

 

Fever : il faut télécharger le logiciel, le décompresser dans le dossier Fever et se laisser guider dans l’install (ok il faut créer un DB dans MySQL, mais avec PHPmyAdmin c’est du gâteau).
Après j’ajoute un petit cron (toutes les 5 minutes pour 367 flux) :
curl -L -s http://urldemonsite/fever/?refresh
Tout fonctionne nickel et il suffit d’importer le XML d’export de Google Reader.

TTRSS : il faut télécharger le logiciel, le décompresser dans le dossier ttrss et se laisser guider dans l’install (ok il faut créer un DB dans MySQL, mais avec PHPmyAdmin encore).
MAIS gros problème, TTRSS a besoin d’un démon pour mettre à jour les flux RSS et je dois avouer que j’ai eu du mal.
J’ai contourné avec upstart :
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install upstart

Après :
sudo gedit /etc/init/ttrssdaemon.conf   (oui je prefere gedit sous ubuntu à nano et j’assume)
Vous collez ca :
description « TT-RSS Feed Daemon »
author « Sean Payne <@zero_divide_1 on Twitter> »

start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]
respawn

script
cd /var/www-ttrss
exec su www-data -c « php ./update_daemon2.php »
end script

sudo ln -s /lib/init/upstart-job /etc/init.d/ttrssdaemon

sudo start ttrssdaemon

Avec cette méthode, même après un reboot , le daemon TTRSS se lancera pour mettre à jour les flux.

Si comme moi, vous pratiquez la veille la disparition de Google Reader sonne comme une tragédie (ou une libération c’est au choix).

Il existe aujourd’hui plusieurs solution digne d’attention :
– Fever° parce qu’il s’installe sur votre propre serveur web et que son cout est un one shot de 30$
– Tiny Tiny RSS parce qu’il s’installe, lui aussi, sur votre propre serveur web et qu’il est gratuit
– Newsblur qui n’est ni gratuit (2$ par mois tout de même) et qu’il ne s’installe pas (quoi que sa version open source le permet mais pour une complexité forte).

A part Fever° aucun n’est pour l’instant compatible avec une bonne app pour iOS (perso je suis sous Feever mais Mr Reader est un excellent candidat). La situation devrait évoluer (et l’intégration de TTRSS voir le jour).

Il faut pour s’amuser un peu déployer une VM sous Linux (ou physique mais bon là c’est une question de philosophie et de moyen).
Installer LAMP :
sudo apt-get install apache2 php5 mysql-server mysql-client libapache2-mod-php5 php5-mysql

Dans le répertoire d’Apache /var/www, il faut créer 2 dossiers : Fever et ttrss (en tout cas ce seront les dossiers dont je parlerais dans la suite du tuto).

J’installe webmin (ça aide beaucoup) :
nano /etc/apt/sources.list

On ajoute :

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib

wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc
sudo apt-get update

sudo apt-get install webmin

Fever : il faut télécharger le logiciel, le décompresser dans le dossier Fever et se laisser guider dans l’install (ok il faut créer un DB dans MySQL, mais avec PHPmyAdmin c’est du gâteau).
Après j’ajoute un petit cron (toutes les 5 minutes pour 367 flux) :
curl -L -s http://urldemonsite/fever/?refresh
Tout fonctionne nickel et il suffit d’importer le XML d’export de Google Reader.

TTRSS : il faut télécharger le logiciel, le décompresser dans le dossier ttrss et se laisser guider dans l’install (ok il faut créer un DB dans MySQL, mais avec PHPmyAdmin encore).
MAIS gros problème, TTRSS a besoin d’un démon pour mettre à jour les flux RSS et je dois avouer que j’ai eu du mal.

J’ai contourné avec upstart :
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install upstart

Après :
sudo gedit /etc/init/ttrssdaemon.conf   (oui je prefere gedit sous ubuntu à nano et j’assume)
Vous collez ca :
description « TT-RSS Feed Daemon »
author « Sean Payne <@zero_divide_1 on Twitter> »

start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]
respawn

script
        cd /var/www-ttrss
        exec su www-data -c « php ./update_daemon2.php »
end script

sudo ln -s /lib/init/upstart-job /etc/init.d/ttrssdaemon

sudo start ttrssdaemon

Avec cette méthode, même après un reboot , le daemon TTRSS se lancera pour mettre à jour les flux.