jluc

Articles reli´s: «:serveur»

Installation de tiny tiny rss

Posté par jluc le 6 novembre 2008

Suite de l’installation du serveur (cf mon précédent article)…

Après avoir installé le système, on va installer tiny tiny rss, un lecteur de flux rss en php.

Préparation

Pour commencer, on va créer la base de donnée.

Tout d’abord, on se connecte à MySQL :

mysql -u root -p

On crée ensuite un utilisateur avec les droits nécessaires et la base de données :

CREATE USER ‘ttrss’@'localhost’ IDENTIFIED BY ‘XXXXXX’;
CREATE DATABASE ttrss;
GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,DROP,CREATE ON ttrss.* TO ‘ttrss’@'localhost’;
FLUSH PRIVILEGES;

Installation

On peut maintenant passer à l’installation proprement dite.

On récupère l’archive de la dernière version de tiny tiny rss (la 1.2.28 au moment où j’écris ceci) et on l’extrait :

wget http://tt-rss.org/download/tt-rss-1.2.28.tar.gz
tar -xvf tt-rss-1.2.28.tar.gz

On le met ensuite en place :

mv tt-rss-1.2.28 /var/www/tt-rss

Puis on alimente la base de donnée :

mysql -u ttrss -p ttrss < /var/www/tt-rss/schema/ttrss_schema_mysql.sql

On peut maintenant se reconnecter à MySQL pour limiter les droits de l’utilisateur ttrss :

REVOKE INDEX,DROP,CREATE ON ttrss.* FROM ‘ttrss’@'localhost’;
FLUSH PRIVILEGES;

Pour finir, il faut configurer lighttpd en ajoutant ceci au fichier /etc/lighttpd/lighttpd.conf :

# active mod_cgi si ce n’est pas déjà fait.
server.modules  += ( “mod_cgi” )
# redirige /rss/ vers le bon répertoire
alias.url += ( “/rss/” => “/var/www/tt-rss/” )
# configure la gestion du cgi
$HTTP["url"] =~ “^/rss/” {
cgi.assign = ( “.php” => “/usr/lib/cgi-bin/php5″)
}
# redirection (rajoute le slash final au lieu de faire une erreur)
url.redirect                = ( “^/rss$” => “/rss/” )

Pour la redirection, il ne faut pas oublier de décommenter la ligne “mod_redirect”, dans les server.modules

Il ne reste plus qu’à recharger la configuration de lighttpd :

/etc/init.d/lighttpd force-reload

Mise à jour des flux

On a maintenant un lecteur de flux opérationnel, mais on doit encore paramétrer la mise à jour automatique des flux.

Avant tout, on récupère les scripts nécessaires :

wget http://tt-rss.org/trac/attachment/wiki/UpdatingFeeds/tt-rss.default?format=raw
wget http://tt-rss.org/trac/attachment/wiki/UpdatingFeeds/tt-rss.initd?format=raw

On les place ensuite au bon endroit :

mv tt-rss.default\?format\=raw /etc/default/tt-rss
mv tt-rss.initd\?format\=raw /etc/init.d/tt-rss

On rend le script exécutable et on active le démon au démarrage du système :

chmod +x /etc/init.d/tt-rss
update-rc.d tt-rss defaults

Il faut aussi activer le démon dans le fichier config.php :

define(‘ENABLE_UPDATE_DAEMON’, true);

Et voilà, on peut maintenant lancer le démon :

/etc/init.d/tt-rss start

Si comme moi, vous avez un problème avec la fonction pcntl_signal, vous pouvez commenter les lignes suivantes dans le fichier update_daemon.php :

pcntl_signal(SIGINT, sigint_handler);
pcntl_signal(SIGALRM, sigalrm_handler);

Contrôle d’accès

Pour ajouter un contrôle d’accès, il y a deux solutions :

  • soit gérer les accès au niveau de tiny tiny rss, via l’option ‘SINGLE_USER_MODE’ du fichier config.php
  • soit gérer les accès au niveau de lighttpd. C’est cette solution que je vais détailler.

Nous allons utiliser htdigest. Pour cela nous devons installer le paquet apache2-utils :

aptitude install apache2-utils

Afin de faciliter la gestion des mots de passes, nous allons utiliser le script suivant :

#!/bin/sh
user=$1
realm=$2
pass=$3
hash=`echo -n “$user:$realm:$pass” | md5sum | cut -b -32`
echo “$user:$realm:$hash”

Ce script s’utilise comme ceci :

htdigest.sh jluc ttrss xxxxxx >> /etc/lighttpd/users.htdigest

Il ne reste plus qu’à modifier le fichier /etc/lighttpd/lighttpd.conf en ajoutant la ligne “mod_redirect”, dans les server.modules puis en complétant la configuration pour tiny tiny rss :

# contrôle d’accès
auth.debug      = 2
auth.backend    = “htdigest”
auth.backend.htdigest.userfile = “/etc/lighttpd/users.htdigest”
auth.require = ( “/rss/” =>
( “method” => “digest”,
“realm” => “ttrss”,
“require” => “valid-user”
)
)

Et voilà, plus qu’à recharger la configuration et c’est parti !

Publié dans Linux | Taggé: , | 3 Commentaires »

Installation serveur

Posté par jluc le 29 octobre 2008

Je suis en train de m’installer un petit serveur à la maison en attendant d’avoir un jour un serveur privé, ça me permet de tester la conf…

Le but de ce post est de lister les différentes manips que je fais pour l’installation.

Pour l’occasion, j’ai ressorti mon “ordinausaure” du placard.

Installation du système

J’ai choisi d’installer une debian (bien sûr ;) ), mais pas en stable. Lenny étant sensée sortir prochainement, je me suis dit que ça valait le coup d’éviter un upgrade, et en plus, ce sera aussi l’occasion de tester et éventuellement de rapporter un ou deux bugs.

Rien de spécial concernant l’installation, à part une petite galère avec le wifi (et oui, je n’ai pas de carte réseau filaire sur cette machine, juste une carte pcmcia BCM4318…), mais ça s’est réglé assez rapidement à l’aide de cette page.

Pour compléter, j’ai juste installé openssh et shorewall (je suis allergique à la syntaxe IPTable…)

aptitude install openssh-server shorewall

Pour ssh, je me suis contenté d’interdire la connexion de root en modifiant le fichier /etc/ssh/sshd_config :

PermitRootLogin no

Pour shorewall, j’ai repris l’exemple fourni à l’installation :

cp /usr/share/doc/shorewall-common/examples/one-interface/* /etc/shorewall/

puis je l’ai adapté à mes besoins. Au final, voici les fichiers de conf que j’ai modifiés :

  • /etc/shorewall/interfaces

#ZONE INTERFACE BROADCAST OPTIONS
net wlan0 detect tcpflags,logmartians,nosmurfs

  • /etc/shorewall/policy

#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
fw net ACCEPT
net fw DROP info
# The FOLLOWING POLICY MUST BE LAST
all all REJECT info

  • /etc/shorewall/rules

#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK
# PORT PORT(S) DEST LIMIT GROUP
ACCEPT net fw tcp ssh
ACCEPT net fw tcp http
ACCEPT net fw tcp https

Il reste à indiquer au système qu’on a terminé la configuration.

Pour cela, il faut modifier le fichier /etc/shorewall/shorewall.conf :

STARTUP_ENABLED=Yes

et le fichier /etc/default/shorewall :

startup=1

On peut enfin démarrer shorewall :

/etc/init.d/shorewall start

Installation du serveur web

Plutôt que le classique apache, j’ai choisi d’installer lighttpd, et de le compléter avec php5 et mysql :

aptitude install lighttpd php5-cgi php5-mysql mysql-server mysql-client php5-xmlrpc

Ensuite, il faut créer une configuration pour PHP 5 en mode Fast CGI et l’activer dans lighttp :

cp /etc/lighttpd/conf-available/10-fastcgi.conf /etc/lighttpd/conf-available/10-fastcgi-php5.conf
sed -i -e ’s/php4/php5/g’ /etc/lighttpd/conf-available/10-fastcgi-php5.conf
/usr/sbin/lighty-enable-mod fastcgi-php5
/etc/init.d/lighttpd force-reload

Concernant MySQL, je me suis contenté de mettre un mot de passe pour l’utilisateur root :

mysqladmin -u root password “xxxxxxxx”

À suivre…

C’est tout pour le moment.

Dans le prochain épisode, nous verrons l’installation d’un aggrégateur de flux rss (tiny tiny rss) et d’une gallerie photos (gallery2).

Publié dans Linux | Taggé: , | 1 commentaire »