Logiciels libres, linux, le web...

Aller au contenu | Aller au menu | Aller à la recherche

Sys-admin

Fil des billets

lundi, juin 28 2010

Souci d'accès interdit (403) aux pages php après la mise à jour de lighttpd

J'ai mis à jour lighttpd l'autre jour sans remplacer le fichier de configuration par celui du paquet, je ne sais pas si cela vient de la mais je préfère le préciser. Suite à cette mise à jour je ne pouvais plus accéder au pages php hébergés sur le serveur. Je ne m'en sers qu'en local pour développer sur mon eeepc donc l'impact n'est pas énorme mais c'est quand même désagréable.

Après quelques recherches sur le web je suis arrivé sur les forums d'Ubuntu et plus particulièrement sur un post qui m'a permis de résoudre le problème, c'est en anglais donc pour ceux qui ne recherchent pas sur les forums en anglais ce billet leur permettra certainement de résoudre leur problème. Même si j'utilise Debian, la solution fonctionne très bien.

Si vous avez systématiquement des erreurs 403 lorsque vous voulez accéder à des scripts php sur votre serveur lighttpd, que vous soyez sur Debian ou Ubuntu (cela doit fonctionner aussi sur d'autres dérivées de Ubuntu mais je n'ai pas testé), vous pouvez ajouter les lignes suivantes au fichier "/etc/lighttpd/lighttpd.conf" et tout devrait rentrer dans l'ordre.
fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/bin/php5-cgi",
"socket" => "/tmp/php.socket"
)))

mercredi, mai 26 2010

Préparer une clé usb bootable avec un espace de stockage

L'objectif de ce billet de montrer comment faire pour partitionner une clé usb afin de disposer d'une partition bootable et d'une ou plusieurs autres qui serviront à stocker des données. Cela peut être utile pour installer linux sur un un netbook sans utiliser la totalité de l'espace disponible sur une clé usb de grande taille.

Nous allons créer les partitions à l'aide l'outil fdisk. "/dev/sdb" correspond à ma clé usb veillez à remplacer le chemin par celui de votre clé usb.
# fdisk /dev/sdb
Commande (m pour l'aide): o
Création d'une nouvelle étiquette DOS avec id de disque 0xfd9ba5ca.
Les modifications restent en mémoire jusqu'à ce que vous les écriviez.
Après quoi, bien sûr, le contenu précédent sera irrécupérable.

Nous allons ensuite créer une première partition qui sera destinée à accueillir le contenu d'un live cd. Commande (m pour l'aide): n
Commande d'action
e étendue
p partition primaire (1-4)
p
Numéro de partition (1-4): 1
Premier cylindre (1-15283, par défaut 1):
Utilisation de la valeur par défaut 1
Dernier cylindre, +cylindres or +taille{K,M,G} (1-15283, par défaut 15283): +800M
Sur la clé usb je vais ensuite créer deux partitions l'une sera ensuite formatée en NTFS pour les systèmes Fenêtre, l'autre sera formatée en ext4. Elles seront placées dans une partitions étendue.

Création de la partition étendue :
Commande (m pour l'aide): n
Commande d'action
e étendue
p partition primaire (1-4)
e
Numéro de partition (1-4): 2
Premier cylindre (802-15283, par défaut 802):
Utilisation de la valeur par défaut 802
Dernier cylindre, +cylindres or +taille{K,M,G} (802-15283, par défaut 15283):
Utilisation de la valeur par défaut 15283
Il suffit de laisser vide lorsque fdisk demande le premier et le dernier cylindre.

Création des deux partions logiques de données :
Commande (m pour l'aide): n
Commande d'action
l logique (5 ou plus)
p partition primaire (1-4)
l
Premier cylindre (802-15283, par défaut 802):
Utilisation de la valeur par défaut 802
Dernier cylindre, +cylindres or +taille{K,M,G} (802-15283, par défaut 15283): +5G

Commande (m pour l'aide): n
Commande d'action
l logique (5 ou plus)
p partition primaire (1-4)
l
Premier cylindre (5923-15283, par défaut 5923):
Utilisation de la valeur par défaut 5923
Dernier cylindre, +cylindres or +taille{K,M,G} (5923-15283, par défaut 15283):
Utilisation de la valeur par défaut 15283
La première partition de données aura une taille de 5Gb et l'autre occupera tout l'espace restant.

Enfin il faut rentre bootable la première partition, celle destinée à accueillir le système d'exploitation. Il faut aussi rendre visible la partition de donnée destinée aux systèmes Fenêtre.

Changer le type de partition de la partition 5 :
Commande (m pour l'aide): t
Numéro de partition (1-6): 5
Code Hexa (taper L pour lister les codes): c
Type système de partition modifié de 5 à c (W95 FAT32 (LBA))
Rendre bootable la première partition :
Commande (m pour l'aide): a
Numéro de partition (1-6): 1
On peut enfin valider les changements effectués sur la clé usb :
Commande (m pour l'aide): w
La table de partitions a été altérée!

Nous allons maintenant formater les partitions :
# mkfs.ext4 -L ubuntu /dev/sdb1
# mkfs.ntfs -L sylvain /dev/sdb5
# mkfs.ext4 -L datas /dev/sdb6

Nous pouvons maintenant copier le contenu du live cd sur la première partition :
# dd if=ubuntu-10.04-desktop-i386.iso of=/dev/sdb1


Source : GNU Linux Magazine n°118

lundi, mai 4 2009

Gestion de bibliothèque libre avec PMB

PMB est un logiciel de gestion de bibliothèque libre, il permet de gérer le fond des livres et la consultation pour les lecteurs. Ce billet a pour but de présenter le logiciel PMB. Comment mettre en place PMB sur Debian Lenny.

Présentation de PMB


Sur le site de PMB, le logiciel est présenté de la manière suivante :

* PMB est conforme aux règles de la bibliothéconomie.

* Il respecte la norme UNIMARC, la recommandation 995 et permet l’import de notices issues de BDP et de toutes bases de données.

* PMB fonctionne en multipostes comme en monoposte, la machine fait office de serveur et de poste de travail.

* PMB est taillé et adapté pour les réseaux de centres de documentation ou de bibliothèques. La possibilité d’héberger la base de données à l’extérieur fait de PMB l’outil idéal pour un catalogage commun pour un réseau de bibliothèques.

* Aucun coût supplémentaire en cas d’ajout d’un poste ou d’un site : seule une connexion réseau suffit

* PMB est portable et tourne sur toutes les plate-formes courantes du marché, Windows, MacOs, Linux et plus généralement tout UNIX.

* PMB est adaptable et durable : vous disposez des sources du programme et pouvez les modifier, l’interface graphique est entièrement paramétrable.

* PMB est ouvert : Outre le code source, vous disposez du modèle conceptuel de la base de données. ... Source : Page de Présentation de PMB


Ce qu'il faut retenir c'est que PMB est conformes aux normes bien connues des bibliothécaires et documentalistes. C'est une application web donc PMB peut être installé sur beaucoup de plateformes et n'importe quel poste du réseau peut y accéder. L'interaction avec des Webservices utiles pour obtenir des informations sur les livres est intégrés, ainsi que les flux RSS bi-directionnels. Il fournit une interface de consultation du fond des livres très complets permettant des recherches précises.
Le logiciel est très largement utilisé ce qui permet de trouver beaucoup de ressources sur internet, notamment en ce qui concerne la formation des utilisateurs.



PMB sur debian Lenny


Le but de l'article n'étant pas d'expliquer l'installation de Apache et Mysql, je vous laisse découvrir ici ou la marche à suivre.

Configuration de la base données


Une fois l'installation de Apache et Mysql terminée, vous pouvez (c'est mieux) créer un utilisateur Mysql pour PMB :

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 43

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> CREATE DATABASE pmb;
Query OK, 1 row affected (0.00 sec)

mysql> use pmb
Database changed

mysql> grant all on pmb.* to pmb@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)


Il est vivement conseillé de remplacer password par le mot de passe de votre choix, surtout si le serveur est accessible depuis d'autres machines.

Installation de pmb sur le serveur


Vous pouvez maintenant télécharger l'archive contenant pmb : Page de téléchargement de pmb
Au moment ou j'écris ces ligne, la dernière version est la 3.2.6

Extraire le contenu de l'archive dans le répertoire du serveur web (en général /var/www/) :
# cd /var/www/
# unzip /repertoire/ou/se/trouve/pmb3.2.6.zip
# chown -R www-data:www-data pmb/

La dernière ligne permet de donner les permissions nécessaire pour l'exécution de pmb par le serveur web : utilisateur et groupe www-data pour Debian.

Il faut ensuite copier deux fichiers :

  • répertoire ./includes : db_param.inc.php_exemple en db_param.inc.php
  • répertoire ./opac_css/includes : opac_db_param.inc.php_exemple en opac_db_param.inc.php


Et leur donner les permissions nécessaires.
# cp pmb/includes/db_param.inc.php_exemple pmb/includes/db_param.inc.php
# cp pmb/opac_css/includes/opac_db_param.inc.php_exemple pmb/opac_css/includes/opac_db_param.inc.php
# chown www-data:www-data pmb/includes/db_param.inc.php
# chown www-data:www-data pmb/opac_css/includes/opac_db_param.inc.php
# chmod a+w pmb/includes/db_param.inc.php

Rendez-vous ensuite à l'adresse http://localhost/pmb/tables/install.php si vous êtes sur la machine qui héberge pmb, sinon remplacez localhost par le nom de la machine ou son adresse ip.
Choisissez ensuite l'encodage de la base de données - de préférence utf8 - et la langue. Puis entrez les paramètres de base de donnée définis précédemment :
Base de donnée PMB
Les paramètres suivant sont à choisir selon vos préférences.

Mise à jour de la base de données


Une fois que l'installation s'est bien déroulée, il ne reste plus qu'à mettre à jour la base de données.
La mise à jour consiste à passer aux versions successivement pour attendre la version à jour.
Pour effectuer cette mise à jour il faut se rendre à l'adresse http://localhost/pmb/ (remplacez localhost par le nom de machine ou l'ip si vous n'accédez pas à pmb du poste ou il est installé). Ensuite connectez vous au compte administrateur, allez dans Administration > Outils > M. à J. base. Ensuite il faut cliquer sur Cliquer ici pour poursuivre... jusqu'à ce que la version de la base de données soit la bonne.

Conclusion


PMB est un logiciel de bibliothèque qui propose beaucoup de fonctionnalités intéressantes mais son installation n'est pas totalement automatisée et c'est dommage. Les besoins matériels ne sont pas très importants. La plupart des bibliothèques disposent déjà de ce qu'il faut.

lundi, mars 16 2009

Script bash pour gérer des services sous linux

Pour faire développement web sur un eeepc, comme sur n'importe quel ordinateur, il faut disposer d'un serveur web. Et éventuellement, mais c'est quand même très pratique, d'un serveur de base de données.

Le eeepc est facilement transportable, donc c'est bien de conserver un maximum de batterie. Surtout si on est pas du genre à faire que du développement web dessus.

Après avoir supprimé les liens symboliques des services pour qu'ils ne démarrent pas au démarrage. J'ai créé un petit script bash qui permet de démarrer ou de stopper un service ou groupe de services :

# Manage services (Myql and lighttpd)
#
#
# Services to manage (space separated) :
services_name="mysql lighttpd"

SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
#
# service funtion
# params : 1 -> action ( start | stop | status ... )
# 2 -> service name (lighttpd | mysql | ...)
#
service() {
    action=$1
    service=$2
    /etc/init.d/$service $action }

#
# main()
#
case "${1:-''}" in
    'start')
        for serv_name in $services_name
do
        service start $serv_name; done ;;
    'stop')
        for serv_name in $services_name do
        service stop $serv_name; done ;;
    'status')
        for serv_name in $services_name do
        echo "Status : $serv_name" service status $serv_name; done ;;
    *) echo "Usage: $SELF start|stop|status (As root)" exit 1 ;;
esac

Il suffit de remplacer les services dans la liste en haut du script. test.