Migration Drupal d’Apache vers Nginx

Qu’est-ce que Nginx?

Nginx est un logiciel qui allie serveur web et reverse-proxy écrit par Igor Sysoev, dont le développement a débuté en 2002 pour les besoins d’un site à très fort trafic.

Le point fort d’Nginx est d’être un serveur asynchrone par opposition aux serveurs synchrones où chaque requête est traitée par un processus dédié. Chaque requête est découpé en plusieurs tâches et permet de réaliser un multiplexage très efficace. Cette architecture permet des performances très élevées, ainsi qu’une empreinte mémoire particulièrement faible comparativement aux serveurs HTTP classiques, tels qu’Apache.

Installation et configuration d’Nginx

Nous partons du principe qu’une installation Drupal fonctionnelle a déjà été réalisé. Si ce n’est pas le cas, reportez-vous à l’article d’installation de Drupal. Installation facile de Drupal

# Tout d'abord le téléchargement des paquets nécessaires
apt-get install nginx php5 php5-fpm php5-apc
# Ensuite ouvrez le fichier de configuration FastCGI Process Manager PHP
nano /etc/php5/fpm/pool.d/www.conf
# Commentez l'écoute sur le port 9000 et créez une socket à la place
;listen = 127.0.0.1:9000
listen = /var/run/php5-fpm.sock
# Configurez la socket du manager
nano /etc/nginx/conf.d/php5-fpm.conf
upstream php5-fpm-sock { server unix:/var/run/php5-fpm.sock; }
# Ensuite modifiez la configuration d'APC pour PHP afin d'allouer 100Mo
nano /etc/php5/fpm/conf.d/apc.ini
extension=apc.so
apc.shm_size=100
# Redémarrez le manager
/etc/init.d/php5-fpm restart

Maintenant il reste à éditer le fichier de configuration de votre site. Malheureusement, Apache étant complètement différent, c’est un tout nouveau type de configuration qu’il vous faudra créer. Cependant, un utilitaire permet de convertir une configuration Apache vers Nginx. Conversion Apache vers Nginx

nano /etc/nginx/sites-available/monsite
server {
    # Nom de domaine
    server_name .monsite.fr;
    # Racine du site
    root /var/www/drupal;
    # Logs
    access_log /var/log/nginx/monsite.fr.access.log;
    error_log /var/log/nginx/monsite.fr.error.log;
    # Desactive le log sur le favicon
    location = /favicon.ico { log_not_found off; access_log off; }
    # Desactive le log sur le robots.txt
    location = /robots.txt { allow all; log_not_found off; access_log off; }
    # Desactive le log sur le sitemap.xml
    location = /sitemap.xml { allow all; log_not_found off; access_log off; }
    # Page d'index du site
    index index.html index.htm index.php;
    # Pas de PHP pour le contenu static
    location / { try_files $uri $uri/ @rewrites; }
    # Clean URLs
    location @rewrites { rewrite ^ /index.php last; }
    # Cache d'Image
    location ~ ^/sites/.*/files/imagecache/ { try_files $uri @rewrite; }
    # Cache d'ImageStyle
    location ~ ^/sites/.*/files/styles/ { try_files $uri @rewrite; }
    # Contenu static comme les images
    location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
        expires max;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }
    # Protège les fichiers privées
    location ~ ^/sites/.*/private/ { return 403; }
    # Evite les pages PHP
    location ~ \..*/.*\.php$ { return 403; }
    # Bloque l'acces aux fichiers cachées
    location ~ /\. { access_log off; log_not_found off; deny all; }
    # Scripts PHP
    location ~ \.php {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        try_files $uri =404;
        fastcgi_index index.php;
        fastcgi_pass php5-fpm-sock;
        fastcgi_intercept_errors on;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
}

Activez votre configuration, puis redémarrez votre nouveau serveur Nginx.

ln -s /etc/nginx/sites-available/monsite
/etc/nginx/sites-enabled/monsite /etc/init.d/nginx restart

Voilà, votre migration est terminée.

Installer Jenkins sur un Synology

Prérequis

Au préalable, quelques prérequis sont nécessaires.
– Un serveur Synology
DSM 5.x minimum
Java Manager avec Java 1.6.0 minimum
Tomcat

Installation

Connectez-vous en SSH avec l’utilisateur « root » sur le serveur Synology.
Modifier la configuration de Tomcat afin d’ajouter un utilisateur pour administrer Tomcat
/var/packages/Tomcat/target/apache-tomcat-6.0.36/conf/tomcat-users.xml

# Ouvrer le fichier de configuration
vi /var/packages/Tomcat/target/src/conf/tomcat-users.xml
# Modifier le fichier de configuration
<tomcat-users>
    <role rolename="manager"/>
    <user username="admin" password="admin" roles="manager"/>
</tomcat-users>
# Ajouter la variable d'environnement dans le contexte de Tomcat pour les données de Jenkins
vi /var/packages/Tomcat/target/src/conf/context.xml
<Context>
    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->
    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->
   <Environment name="JENKINS_HOME" value="/var/lib/jenkins" type="java.lang.String"/>
</Context>
# Maintenant il reste à créer le répertoire
mkdir /var/lib/jenkins
# Puis modifiez les droits
chown http:http /var/lib/jenkins

Maintenant, redémarrez. Il ne vous reste plus qu’à télécharger le fichier WAR pour Jenkins à l’adresse suivante : http://mirrors.jenkins-ci.org/war/latest/jenkins.war.

Ensuite, ouvrez le gestionnaire de Tomcat puis sélectionnez le WAR de Jenkins dans l’outil de déploiement. Par défaut l’URL est http://mon_serveur:7070.

Puis rendez-vous sur l’url de Jenkins http://mon_serveur:7070/jenkins.

Drupal, l’installation facile

Petit retour sur Drupal

Drupal est un CMS (Content Management System) open-source publié sous la licence publique générale GNU, et écrit en PHP. De part son aspect modulaire et programmable, il est considéré comme un CMF (Content Management Framework).

En 2010, Angela Byron annonce que Drupal est présent sur environ 1 % des sites internet.

Drupal est aussi flexible dans la gestion de base de données, il peut soit utiliser soit MySQL, soit PostgreSQL.

Toutefois vu sa complexité, il n’est pas forcément à la portée de débutants et nécessite une bonne compréhension de PHP et Linux dans la mise en place.

Installation

Nous suivrons pas à pas, l’installation de Drupal sur un serveur Linux via APT.
Les commandes suivantes seront à lancer à partir d’un compte root ou d’un compte en mode sudo bash.

A des fins de configuration avancée, nous utiliserons une base PostgreSQL.

# ajoute le repo postgresql
add-apt-repository ppa:pitti/postgresql
apt-get update
apt-get install postgresql
# configure postgresql
su - postgres
psql -d postgres -U postgres
# modifie le mot de passe de l'utilisateur par défaut postgres
alter user postgres with password 'mot_de_passe'; ALTER ROLE
\q
# crée un nouvel utilisateur
createuser --pwprompt --encrypted --no-adduser --no-createdb utilisateur_base_drupal
# crée une base de données pour l'utilisateur
createdb --encoding=UNICODE --owner=utilisateur_base_drupal nom_base_drupal
/etc/init.d/postgresql restart
exit

Ensuite, nous allons installer le serveur Apache.

# installation d’Apache, PHP et PECL

apt-get install php5-common libapache2-mod-php5 pecl
# ajoute l'host en local pour les tests
echo '127.0.0.1   monsite.fr' >> /etc/hosts
# url rewriting
a2enmod rewrite
# PECL
pecl install uploadprogress
# démarre le serveur
/etc/init.d/apache2 restart

Maintenant, passons à l’installation de Drupal.

# répertoire web du serveur
cd /var/www
# récupération de Drupal
wget http://ftp.drupal.org/files/projects/drupal-7.21.tar.gz
# décompresse l'archive
tar -xzvf drupal-7.21.tar.gz
# renomme le répertoire en drupal
mv drupal-7.21 drupal
# réglages par défaut
cp ./drupal/sites/default/default.settings.php ./drupal/sites/default/settings.php
# modifie les droits
chmod 666 ./drupal/sites/default/settings.php
# ajoute la traduction française
wget http://ftp.drupal.org/files/translations/7.x/drupal/drupal-7.21.fr.po
cp ./drupal-7.21.fr.po ./drupal/profiles/standard/translations/
# droits temporaire pour l'installation
chmod -R 777 ./drupal/sites/default/
# suppression de l'archive drupal
rm drupal-7.21.tar.gz

Ensuite sur votre navigateur, aller à l’adresse suivante: http://monsite.fr/drupal/install.php.
Il ne reste plus que quelques étapes.

Sélectionner l’installation standard de Drupal.

Ensuite choisisser la langue d’installation. Par défaut, l’anglais. Des autres localisations peuvent être installés. Cependant, les traductions ne sont pas disponibles sur la majorité des modules.

Configurer la base de données. Il reste à sélectionner le type de base, son nom, le mot de passe ainsi que le login.

Drupal poursuit en installant les modules compris dans le choix d’installation.

Maintenant, il faut configurer le site. Entrer les informations nécessaires au site:
– Le nom du site
– L’adresse email de l’administration du site
– Login et mot de passe pour la gestion du site

Il ne reste plus qu’à finir les réglages de Drupal.

Voilà votre site Drupal est opérationnel. Maintenant, il ne vous reste plus qu’à le personnaliser, rajouter des modules ainsi que du contenu.

Wandboard

Qu’est ce que la Wandboard

La Wandboard est une carte lowcost basée sur une architecture ARM Cortex-A9 développée par une organisation à but non lucratif.

L’idée de départ qui a conduit à sa création est que la plupart des cartes embarquées que nous voyons aujourd’hui (comme le Raspberry PI) sont intéressantes, mais restent limitées.

La Wandboard est basée sur un système de modules qui permet de faire évoluer la solution.

Les spécifications

La Wandboard est disponible en plusieurs versions, Solo et Dual, qui possédent plus ou moins de fonctions.

Liste des fonctionnalités
Fonctionnalités  SoloDual 
 Processeur Freescale i.MX6 SoloFreescale i.MX6 Duallite
 CoeursCortex-A9 Single coreCortex-A9 Dual core
 Mémoire512 MB DDR31 GB DDR3
 Sortie audio S/PDIFXX
 Sortie HDMIXX
 Interface caméraXX
Lecteur carte MicroSD 22
Port sérieXX
Port d’extensionXX
Port USBXX
Port SATANon utiliséNon utilisé
Lan GigabitXX
WIFI (802.11n)X
BluetoothX

La version Solo est disponible au prix de 79$ (58€). Quant à la version Dual, elle est disponible à 99$ (74€). Il vous faudra rajouter quelques dizaines d’euros, afin d’avoir un boîtier, un adaptateur secteur ou une antenne Wifi. Car rappelons le, une board est avant tout destinée à faire de l’embarqué ou du développement.

Quelle utilisation alors?

Plusieurs, suivant votre besoin. Vous pourrez, au choix :
– Installer Android et transformer n’importe quelle TV en Smart TV avec un media center.
– Réaliser un kit de développement Android.
– Réaliser un serveur web Linux à faible consommation. (Comme pour ce site)
– Créer un centre de gestion domotique pour votre maison/appartement.
– Créer une machine sous Linux à faible coût pour des enfants

Pour ce faire, vous pourrez trouver sur le site de Wandboard, les distributions Android et Linux Linaro (Ubuntu) correspondantes.

Installation de Linux ou Android sur une Wandboard

Récupérer la version Android ou Linux correspondante à votre board sur la page de téléchargement : http://www.wandboard.org/index.php/downloads

Ensuite, suivant que vous soyez sur Linux ou sur Windows la procédure change.

Windows

Insérez la carte MicroSD qui servira de support au système d’exploitation sur votre machine. Utilisez Win32 Disk Imager afin de copier l’image sur votre carte SD. Il n’y a plus qu’à la placer dans le slot dédié au système d’exploitation. Et c’est parti!

Linux

Insérez la carte MicroSD qui servira de support au système d’exploitation sur votre machine. Puis lancez la commande permettant de copier l’image sur votre carte.

dd if=nom_image.img of=/dev/nom_lecteur_carte_sd bs=1M

UNetbootin, L’installation facile de Linux

Pour toute personne voulant installer Linux, une question se pose : Comment faire ça vite et propre ?

UNetbootin permet de créer des clés USB bootables Live USB pour Ubuntu, Fedora, et d’autres distributions Linux sans graver de CD.

Très utile, si vous êtes comme moi et avez renoncé aux CDs et DVDs (on ne va pas tout de même payer une taxe sur la copie privée pour installer un OS Open Source!!!).

Il fonctionne aussi sous Windows, Linux, et Mac OS X. UNetbootin peut soit télécharger automatiquement une des distributions supportées, soit utiliser un fichier .iso.

Avec cet outil vous n’aurez plus d’excuses pour ne pas installer un Linux sur votre vieux PC Windows XP qui mouline comme un fou.

Liste des distributions supportées :

  • Ubuntu (et dérivées officielles)
  • Debian
  • Linux Mint
  • openSUSE
  • Arch Linux
  • Damn Small Linux
  • SliTaz
  • Puppy Linux
  • FreeBSD
  • NetBSD
  • Fedora
  • PCLinuxOS
  • Gentoo
  • Zenwalk
  • Slax
  • Dreamlinux
  • Elive
  • CentOS
  • Mandriva
  • FaunOS
  • Frugalware Linux

Vous pouvez le télécharger ici : http://sourceforge.net/projects/unetbootin/

Continuer la lecture de « UNetbootin, L’installation facile de Linux »