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.