Articles plus anciens

Firefox 4 s’installe très facilement sous Ubuntu 10.10 :

sudo add-apt-repository ppa:mozillateam/firefox-stable
sudo apt-get update
sudo apt-get upgrade

Les principales (pour plus de détail voir Les nouveautés de Firefox 4) nouveautés sont :

  • Amélioration de la rapidité de lancement et d’affichage des pages
  • Groupe d’onglets (panorama)
  • Onglets applicatifs
  • Changement d’interface

C’est ce dernier point qui m’a poussé à écrire ce billet, en effet même si les gouts et les couleurs ne se discutent pas, quand sous Windows XP on a le droit à cela :

Sous Ubuntu 10.10 on a cela :

Pas d’icônes monochrome (que se soit les icône par défauts de FF ou celle de all-in-one sidebar), les onglet d’arrière plan sont noirs, le bouton Firefox n’est pas dans la barre de titre et n’est pas orange, les onglets ne sont pas dans la barre de titre….

Edit 20/04/2011 : pour remédier aux 2 premiers problèmes voir :Comment rendre rendre Firefox 4 sous Ubuntu aussi beau que sous XP

 

Le menu du bouton Firefox n’échappe pas à la règle :

XP :

Ubuntu :

Comme indiqué dans l’article Installer et configurer Mysql sur le Dockstar, MySQL est un peut trop gourmand en ressource pour un plug computer tel que le Dockstar.

Cependant pour certains usages (description à venir) du Dockstar j’ai besoin d’une base de donnée, c’est là qu’intervient SQLite, une base de donnée atypique puisque :

« Contrairement aux serveurs de bases de données traditionnels, comme MySQL ou PostgreSQL, sa particularité est de ne pas reproduire le schéma habituel client-serveur mais d’être directement intégrée aux programmes. L’intégralité de la base de données (déclarations, tables, index et données) est stockée dans un fichier indépendant de la plateforme. » (source Wikipedia)

Voici comment installer la base SQLite et comment l’intégrer à php :

sudo aptitude install libsqlite0 php5-sqlite

(594 ko utilisés)

Voila pour l’installation pour la configuration ce n’est pas beaucoup plus compliqué, il faut éditer le fichier php.ini (qui sous ma Debian Squeeze se trouve dans /etc/php5/cgi/).

Trouver la section suivante :

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

Et y ajouter la ligne :

extension=sqlite.so

Pour finir re-démarrer le serveur Web ou le serveur php (sudo /etc/init.d/php5-fcgi restart)

J’ai déjà traité comment Importer des fichiers vCard sous Evolution voici comment faire de même sous Thunderbird.

Il y a moins d’étape sous Thunderbird que sous Evolution en effet il n’est pas nécessaire de supprimer l’encodage quoted-printable ni d’effectuer la conversion en UTF8

 

Concaténation des fichiers vcard

Le concaténation se fait par un simple :

cat *.vcf > All_in_One.vcf

Import dans évolution

Nativement Thunderbird (au moins jusqu’en version 3.1) ne sait pas importer les fichiers vCard, mais heureusement il existe un extension qui le fait (et bien).

Cette extension nommée MoreFunctionForAdressBook n’est pas sur le site des Modules pour Thunderbird mais il faut la télécharger directement sur le site de l’auteur (avec évidemment le risque que cette extension soit frauduleuse)

Télécharger le fichier xpi de l’extension et l’installer.

Sous Thunderbird, ouvrir le carnet d’adresses (outils > carnet d’adresses) et aller dans  Fichier > Nouveau > Carnet d’adresses pour créer un nouveau carnet d’adresse (pour ne pas polluer celui existant)

Se placer sur le carnet créé et aller dans Outils > Action pour les contacts > Importer une vCard/vcf

Sélectionner le fichier vCard (All_in_One.vcf) et sans plus de questions ni conversion (quoted-printable ou UTF8) les contacts sont importés.

Vous pouvez ensuite désinstaller/désactiver l’extension MoreFunctionForAdressBook si vous le souhaitez.

 

Sources :

Importer le Carnet d’Adresses vCard d’un téléphone vers une autre application (Linux) : conversion vCard → .ldif

Après l’installation et la configuration de Debian sur le Seagate Dockstar, voici venu l’installation de ce qu’il faut pour qu’il remplisse son premier rôle : Serveur Web.

J’ai déjà fait un article sur l’installation d’un serveur Web Cherokee et Lighttpd, mais ces 2 serveurs web sont soit trop gourmand en ressource soit trop gros.

Il reste un autre challenger à Apache, il s’agit de nginx (se prononce engine X).

Ce serveur web en plus d’être incroyablement performant est incroyablement sobre en ressources, il est quasiment systématiquement installé sur les machines de faible puissance que sont les plug computer.

Contrairement aux articles précédemment cités sur l’installation de Cherokee et Lihttpd je ne détaillerais pas l’installation de MySQL ici, pour la simple et bonne raison que je ne l’ai pas installé sur mon Dockstar (cf. Installer et configurer Mysql sur le Dockstar)

 

Installation de nginx

L’installation peut se faire simplement avec aptitude/apt-get car il existe un paquet nginx mais ce dernier est en version 0.7.x dans les dépôt Debian Squeeze, c’est à dire la version « legacy » (que l’on peut traduire par dépassé).

Un paquet de la version 0.8.54 est disponible sur dotdeb mais ce dernier est disponible que pour les architectures i386 et amd64 mais pas pour l’architecture ARM

On va donc installer la version 0.8.54 à partir des sources, ce qui est tout de même un peu « touchy ».

Heureusement pour nous / moi Nicolargo a publié un script automatisant le process. Ce script installe nginx depuis les sources, le configure et installe php 5.x en mode FPM depuis les dépôts dotdeb, il faut donc l’adapter pour supprimer toute la partie installation de php-fpm qui n’est pas disponible non plus sur dotdeb pour les machines ARM.

Voici le script modifié :

#!/bin/bash
# Mon script d'installation automatique de NGinx (depuis les sources)
#
# Nicolargo - 01/2011
# Modifié VoidAndAny - 03/2011
# GPL
#
# Syntaxe: # su - -c "./nginxautoinstall.sh"
# Syntaxe: or # sudo ./nginxautoinstall.sh
VERSION="2.0"
 
##############################
# Version de NGinx a installer
 
NGINX_VERSION="0.8.54"
 
##############################
# Debut de l'installation
 
# Test que le script est lance en root
if [ $EUID -ne 0 ]; then
echo "Le script doit être lancé en root: # sudo $0" 1>&2
exit 1
fi
 
# Pre-requis
aptitude install build-essential libpcre3-dev libssl-dev zlib1g-dev
 
# Telechargement des fichiers
wget http://sysoev.ru/nginx/nginx-$NGINX_VERSION.tar.gz
 
# Extract
tar zxvf nginx-$NGINX_VERSION.tar.gz
 
# Configure
cd nginx-$NGINX_VERSION
./configure   --conf-path=/etc/nginx/nginx.conf   --error-log-path=/var/log/nginx/error.log   --pid-path=/var/run/nginx.pid   --lock-path=/var/lock/nginx.lock   --http-log-path=/var/log/nginx/access.log   --with-http_dav_module   --http-client-body-temp-path=/var/lib/nginx/body   --with-http_ssl_module   --http-proxy-temp-path=/var/lib/nginx/proxy   --with-http_stub_status_module   --http-fastcgi-temp-path=/var/lib/nginx/fastcgi   --with-debug   --with-http_flv_module
 
# Compile
make
 
# Install
make install
 
# Post installation
cd ..
mkdir /var/lib/nginx
mkdir /etc/nginx/conf.d
mkdir /etc/nginx/sites-enabled
mkdir /var/www
chown -R www-data:www-data /var/www
 
# Download the init script
wget http://svn.nicolargo.com/debianpostinstall/trunk/nginx
mv nginx /etc/init.d/
chmod 755 /etc/init.d/nginx
/usr/sbin/update-rc.d -f nginx defaults
 
# Download the default configuration file
# Nginx + default site
wget http://svn.nicolargo.com/debianpostinstall/trunk/nginx.conf
wget http://svn.nicolargo.com/debianpostinstall/trunk/default-site
mv nginx.conf /etc/nginx/
mv default-site /etc/nginx/sites-enabled/
 
# Start NGinx
/etc/init.d/nginx start
 
# Summary
echo ""
echo "--------------------------------------"
echo "NGinx installation finished"
echo "--------------------------------------"
echo "NGinx configuration folder:       /etc/nginx"
echo "NGinx default site configuration: /etc/nginx/sites-enabled/default-site"
echo "NGinx default HTML root:          /var/www"
echo ""
echo "If you use IpTables add the following rules:"
echo "iptables -A INPUT -i lo -s localhost -d localhost -j ACCEPT"
echo "iptables -A OUTPUT -o lo -s localhost -d localhost -j ACCEPT"
echo "iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT"
echo "iptables -A INPUT  -p tcp --dport http -j ACCEPT"
echo "--------------------------------------"
echo ""
 
# Fin du script

 

A l’issu de ce script si on va à l’adresse IP du Dockstar avec un navigateur web, on doit avoir la page suivante qui s’affiche :

Pour être sûr que nginx peut nous restituer une page HTML on peut lancer les commandes suivante (sur la Dockstar)

 

echo "test" > index.html
sudo chown www-data:www-data index.html
sudo mv index.html /var/www

 

En allant sur l’adresse IP du Dockstar, on devrait désormais avoir test qui s’affiche.

 

Installation de PHP

Il existe de plusieurs façon pour un serveur web d’interagir avec le « moteur » d’interprétation de php  :

  • module  : php est interprété directement par le serveur Web (avec apache par exemple)
  • CGI : le serveur Web laisse l’interprétation de php au module cgi php
  • fastCGI : évolution de CGI pour le rendre plus performant
  • spawn-fcgi : une implémentation de fastCGI initialement faite pour le serveur web lighttpd
  • FPM : implémentation de fastCGI remplaçant de spawn-fcgi plus rapide et stable

Malheureusement il n’existe pas de paquet Debian de l’implémentation FPM de fastCGI (php-fpm) pour l’architecture ARM, donc à moins de vouloir le compiler depuis les sources on utilisera l’implémentation spawn-fcgi de php.

Pour l’installation on fera :

sudo aptitude install php5-cgi spawn-fcgi

(20,3 Mo utilisés)

 

Il faut ensuite faire un script init.d (/etc/init.d/php5-fcgi) pour que le serveur php démarre :

 

#!/bin/sh
 
### BEGIN INIT INFO
# Provides:       php5-fcgi
# Required-Start: $remote_fs $syslog
# Required-Stop:  $remote_fs $syslog
# Default-Start:  2 3 4 5
# Default-Stop:   0 1 6
# Short-Description: PHP5 FastCgi Spawned processes
### END INIT INFO
 
COMMAND=/usr/bin/spawn-fcgi
ADDRESS=127.0.0.1
PORT=9000
USER=www-data
GROUP=www-data
PHPCGI=/usr/bin/php5-cgi
PIDFILE=/var/run/fastcgi-php.pid
RETVAL=0
 
PHP_FCGI_MAX_REQUESTS=500
PHP_FCGI_CHILDREN=2
 
start() {
 export PHP_FCGI_MAX_REQUESTS PHP_FCGI_CHILDREN
 $COMMAND -a $ADDRESS -p $PORT -u $USER -g $GROUP -f $PHPCGI -P $PIDFILE
}
 
stop() {
 /usr/bin/killall -9 php5-cgi
}
 
case "$1" in
 start)
 start
 RETVAL=$?
 ;;
 stop)
 stop
 RETVAL=$?
 ;;
 restart|reload)
 stop
 start
 RETVAL=$?
 ;;
 *)
 echo "Usage: fastcgi {start|stop|restart}"
 exit 1
 ;;
esac
exit $RETVAL

 

Et on le démarre :

sudo /etc/init.d/php5-fcgi start

Il faut ensuite en théorie indiquer à nginx comment interpréter les fichiers php en ajouter ce genre de directives dans le fichier /etc/nginx/sites-enabled/default-site

 

location ~ \.php$ {
 include /etc/nginx/fastcgi_params;
 fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
 fastcgi_pass    127.0.0.1:9000;
 }

 

J’ai marqué en théorie car l’installation de nginx faite par le script de Nicolargo créé un fichier default-site qui contient déjà cette directive.

 

Pour tester php, on crée un fichier php contenant la directive phpinfo :

echo "<?php phpinfo(); ?>" > phpinfo.php
sudo chown www-data:www-data phpinfo.php
sudo mv phpinfo.php /var/www

 

Et en allant sur l’adresse IP du Dockstar, sur la page phpinfo.php on doit voir cette page s’afficher :

 

PS : Quelques information concernant l’espace disque utilisé par les différents serveur web (sur une Debian de base)

  • nginx : 1.6 MB
  • apache2 : 44.4 MB
  • lighttpd : 35.8 MB

 

Sources :

Nicolargo : Installation automatique de NGinx, PHP-FPM, MemCached sous Debian

IT Wars : Seagate DockStar un plug computer green

Blog slucas : Installation de nginx sous Debian

Ici & Ailleurs : Un serveur web avec Nginx, PHP et MySQL

Linode library : Nginx and PHP-FastCGI on Debian 5 (Lenny)

Linode library : Basic Nginx Configuration

Linode Library : Nginx Configuration

Papy Geek : Optimiser son serveur Web avec Nginx

Lorsque j’étais sous Windows j’utilisais le logiciel Mira de SoftChris dans lequel j’avais saisie les adresses et coordonnées personnelles de beaucoup de mes connaissances (amis, famille, etc).

Lors de mon passage sous Ubuntu j’ai exporté l’ensemble des ces contacts sous forme de fichiers vcard (1 par contact).

A défaut de trouver un logiciel équivalent à Mira sous Linux j’ai voulu importer les vCards sous le logiciel de messagerie par défaut de Gnome/Ubuntu : Evolution (que je n’utilise pas en fin de compte).

Voici la procédure suivie.


Concaténation des fichiers vcard

Le concaténation se fait par un simple :

cat *.vcf > All_in_One.vcf

 

Suppression de l’encodage Quoted-printable

Les vCards utilisent l’encodage quoted-printable qui ne plait pas du tout à Evolution (l’import plante sauvagement), il faut donc le convertir. Pour en savoir plus consulter mon article Décoder du texte Quoted-printable

perl -pe 's/\=([0-9A-Fa-f]{2})/chr(hex($1))/ge; s/\=\n//;' All_in_One.vcf > All_in_One_deQuoted.vcf

 

Conversion des accents

Windows utilise un encodage différent d’Ubuntu, il en résulte un problème avec les accents si on importe le fichier tel quel sous Evolution, on réalise donc la conversion d’encodage. Pour en savoir plus consulter mon article Convertir un fichier texte issu de Windows

iconv -f iso-8859-1 -t utf8 All_in_One_deQuoted.vcf > All_in_One_deQuoted_utf8.vcf

 


Import dans évolution

Ouvrir Evolution, aller dans la section Contacts puis dans  Fichier > Nouveau > Carnet d’adresses pour créer un nouveau carnet d’adresse (pour ne pas polluer celui existant)

Sélectionner le type « Sur cet ordinateur » et nommer le nouveau carnet d’adresse :

Aller dans Fichier > importer, sélectionner « importer un seul fichier »

Sélectionner le fichier précédent et son format :

Sélectionner le carnet d’adresses nouvellement créé pour la destination de l’import

Cliquer sur suivant, l’import devrait se dérouler sans problème.