Guide d'installation de SLIM v2.x Rev du 02.02.2006 Ce document décrit la procédure à suivre pour installer SLIM v2 sur une debian. Vous pouvez installer SLIM sur n'importe quelle autre distribution tant qu'elle supporte les packages nécessaires au fonctionnement de l'application. Debian fourni des scripts qui permettent par example d'ajouter un site au serveur apache. Ces script sont propres à debian (ou clone), vous devrez donc, dans le cas d'une installation sur une autre distribution, vous reporter aux documentations de celle ci ainsi qu'aux documents des packages. Les liens vers les sites officiel sont disponnibles en annexe. 1 Installation des packages nécessaires apache2 postgresql ( 7.4.7) php4 ( 4.1.2) curl ( 7.13.2) libapache2 mod auth pgsql libapache2 mod php4 php4 pgsql php4 curl php4 gd cracklib runtime wfrench wenglish Sur debian, l'installation des packages se fait grace à la commande apt get slim test:~/tmp# apt get install <package name> Installez tous les packages nécessaires et passez à la partie configuration. 2 Configuration des packages 2.1 Apache v2 SLIM contenant des données sensible, il est plus que commandé de faire tourner cette application sur un serveur web securisé. Le mode SSL d'apache nécessite un certificat pour chiffrer les données. Si vous en possédez un, placez le directement dans /etc/apache2/ssl/ Sinon vous pouvez en créer un 'auto signé par méthose suivante: Dans ~root, créez un repertoir temporaire tmp, et placez vous dedans.
slim test:~/tmp# openssl req new > new.cert.csr Generating a 1024 bit RSA private key...++++++...++++++ writing new private key to 'privkey.pem' Enter PEM pass phrase: Verifying Enter PEM pass phrase: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some State]:Isere Locality Name (eg, city) []:Grenoble Organization Name (eg, company) [Internet Widgits Pty Ltd]:CARMI Organizational Unit Name (eg, section) []:Internet Common Name (eg, YOUR name) []:slim test.ac grenoble.fr Email Address []:admin@ac grenoble.fr Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: slim test:~/tmp# openssl rsa in privkey.pem out new.cert.key Enter pass phrase for privkey.pem: writing RSA key slim test:~/tmp# ls new.cert.csr new.cert.key privkey.pem Pour éviter d'avoir à entrer la PEM pass phrase à chaque démarrage du serveur Apache, il est possible de la désactiver par la commande: slim test:~/tmp# openssl rsa in privkey.pem out new.cert.key Enter pass phrase for privkey.pem: writing RSA key La dernière étape consiste à signer la demande de certificat. slim test:~/tmp# openssl x509 in new.cert.csr out new.cert.cert req signkey new.cert.key days 365 Signature ok subject=/c=fr/st=isere/l=grenoble/o=carmi/ou=internet/cn=slim test.acgrenoble.fr/emailaddress=xav@ac grenoble.fr Getting Private key slim test:~/tmp# Une fois crée, déplacez le certificat dans /etc/apache2/ssl/ Renommez le en slim.cert Dézippez le fichier /usr/share/doc/apache2/examples/ssl.conf.gz dans /etc/apache2/sites available avec la commande
slim test:~/tmp# zcat /usr/share/doc/apache2/examples/ssl.conf.gz > /etc/apache2/sitesavailable/slim.conf slim test:~/tmp# Modifiez ensuite le fichier slim.conf nouvellement crée et adaptez le à vous besoins. Commencez par commentez la ligne commençant par: SSLCertificateKeyFile. Il peut contenir par exemple:... NamevirtualHost *:443 <VirtualHost *:443> # General setup for the virtual host DocumentRoot "/var/www/slim" ServerAdmin admin@ac grenoble.fr ErrorLog /var/log/apache2/slim_error_log TransferLog /var/log/apache2/slim_access_log... SSLCertificateFile /etc/apache2/ssl/slim.cert SSLCertificateKeyFile /etc/apache2/ssl/slim.key... Créez le répertoire contenant les scripts de SLIM (en fonction du fichier slim.conf) Par ex: /var/www/slim Puis lancez slim test:~/tmp# a2enmod ssl slim test:~/tmp# a2enmod auth_pgsql slim test:~/tmp# a2ensite slim.conf # La première ligne indique à Apache de charger le module SSL. # La deuxième ligne indique à Apache de charger le module d'authentification postgresql # La dernière ajoute le site 'slim' aux sites actifs. Ajoutez ces deux lignes au fichier de configuration d'apache ou dans /etc/apache2/conf.d/slim.conf Alias /slimg/ /var/www/slim/include/themes/ php_value include_path /var/www/slim/include Lancez le service Apache par : slim test:~/tmp# /etc/init.d/apache2 start ou si Apache est déja lancé slim test:~/tmp# /etc/init.d/apache2 restart Vérifiez que le service est bien lancé avec netstat par ex. slim test:~/tmp# netstat a grep https tcp 0 0 *:https *:* LISTEN Si ce n'est pas la cas, consultez les log dans /var/log/messages et /var/log/apache2/*
2.2 PostgreSQL 2.2.1 Le serveur La configuration par defaut de postgresql est opérationelle. 2.2.2 La base SLIM Assurez vous que le serveur postgres est lancé. Nous allons modifier le mot de passe de d'utilisateur postgres, et créer l'utilisateur slim. slim test:/etc/postgresql# su postgres postgres@slim test:~$ psql template1 Welcome to psql 7.4.7, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit template1=# alter user postgres with password 'postpass'; ALTER USER template1=# create user slim with password 'slimpass' createdb nocreateuser; CREATE USER template1=# \q postgres@slim test:~$ Editez maintenant le fichier /etc/postgresql/pg_hba.conf pour changer les droits d'accès à la base SLIM. local slim all password host slim all 127.0.0.1 255.255.255.255 password Redémarrez le serveur PostgreSQL avec la commande /etc/init.d/postgresql reload Reconnectez vous à la base 'template1' pour créer le base 'slim' en tant qu'utilisateur 'slim' # psql U slim template1 W Password: 'entrez ici le mdp slimpass défini plus haut' Welcome to psql 7.4.7, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit template1=> CREATE DATABASE slim; CREATE DATABASE template1=> \c slim Password: You are now connected to database "slim". slim=> \i
2.2.2 La base MONITOR (optionelle) Comme pour la base SLIM, il faut commencer par créer les utilisateurs qui vont se connecter à cette base. Pour le monitor, 2 utilisateurs sont nécessaires: L'utilisateur slimmonitor, qui sera utilisé par l'application SLIM, et l'utilisateur slismonitor qui sera utilisé par les slis pour inscrire leurs infos de supervision. slim test:/etc/postgresql# su postgres postgres@slim test:~$ psql template1 Welcome to psql 7.4.7, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit template1=# create user slimmonitor with password 'slimmonitorpass' createdb nocreateuser; CREATE USER template1=# create user slismonitor with password 'slismonitorpass' nocreateuser; CREATE USER template1=# \q postgres@slim test:~$ host monitor slismonitor 0.0.0.0 0.0.0.0 password local monitor slismonitor password host monitor slimmonitor 127.0.0.1 255.255.255.255 password local monitor slimmonitor password 2.3 PHP4 Le fichier /etc/php4/apache/php.ini doit contenir ces lignes ; désactivation de l'affichage des erreurs display_errors = Off register_globals = On ; Autoriser l'upload de fichiers file_uploads = On ; Taille maxi des fichiers upload_max_filesize = 2M ; Pour la supervision: On obligatoire allow_url_fopen = On ; Les modules extension=curl.so extension=gd.so extension=pgsql.so 2.4 CRACK LIB Pour la sécurité du système, slim utilise la cracklib pour valider le changement de mot de passe.
Il faut donc créer un dico pour l'utiliser. Si vous avez installé les liste de mots wfrench et wenglish, créez le dico avec la commande suivante: slim test:/root# crack_mkdict /usr/share/dict/french /usr/share/dict/american english crack_packer /var/cache/cracklib/cracklib_dict Modifiez cette commande en fonction des listes de mots installées. 2.5 SLIM Récupérez l'archive slim 2.x.x.tar.gz contentant les scripts sur ftp://ftp.ac grenoble.fr/pub/slis/slim. Dézippez la dans /var/www/ slim test:/root# tar xzf slim 2.0.2.tar.gz C /var/www/ Vérifiez que le répertoire /var/www/slim/download/ existe et que l'utilisateur faisant tourner le serveur apache a bien le droit d'y écrire. Editez le fichier de configuration de SLIM : /var/www/slim/include/config.php
// Slis Management configuration file $slim_debug= false; $slim_name = "SLIM TEST"; $slim_msg = ""; $slim_db_host = "localhost"; $slim_db_port = "5432"; $slim_db_name = "slimdb"; $slim_db_user = "slim"; $slim_db_pass = "slimpass"; $html_base_dir = "/var/www"; $base_dir = $html_base_dir."/slim"; $download_dir = $base_dir."/download"; // must be writable by httpd // and must be /slim/download into // your http server tree. $upload_dir = $base_dir."/upload"; // must be writable by httpd $def_domain = "ac academie.fr"; $slis_mx = "pop_smtp"; // maybe "pop_mailhost" $mail_admin = "admin@ac academie.fr"; $mail_tickets = "tickets@ac academie.fr"; $mail_from = "slim@ac academie.fr"; $mail_notified_migrations = "migrations@ac academie.fr"; $slim_theme_path="/var/www/slim/include/themes"; // You also may customize the following files: # include/slisexport.php : This defines the function that is making the # output file that is sent when you check the "export" box from the slis # search form. $suffix_adsl_login= "@rra gre.ipadsl"; $suffix_isdn_login= "@rra p gre.fr.ft"; // External reference in a ticket $ecare=false; $ecare_ticket_url="http://serveur/page.php?inst=%ticket_number%"; Si vous voulez activer la supervision, vous devez tout d'abord créer la clé de SLIM qui permettra de signer les scripts de supervision. Editez ensuite le fichier /var/www/slim/include/config_monitor.php
// If you use the monitoring options // $monitor must be empty : "" not "no" neither "false" $monitor="yes"; // The time after log elements with status!=0 will be erased $monitor_log_history= "+1 Month"; // The time during which log elements with status 1 are ignored $monitor_timeout= "+1 Hour"; // Monitor database $monitor_db_host = "localhost"; $monitor_db_port = "5432"; $monitor_db_name = "monitor"; $monitor_db_user = "slim"; $monitor_db_pass = "monitorpass"; // SLIM private key $slim_privkey = "/etc/slimprivkey.pem"; // Hadmin superuser $hadmin_superuser = "slim"; $hadmin_url= "http%s%://%slisname%.ac academie.fr:1098"; $hadmin_domain= "ac academie.fr"; $hadmin_port= "1098"; Il faut initialiser la base SLIM avec la structure et quelques données. slim test:~# su postgres postgres@slim test:~$ cd /var/www/slim/install/sql/base postgres@slim test:/var/www/slim/install/sql/base$ psql slim Welcome to psql 7.4.7, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit slim=# \i slim.2.0.3.struct.sql Recommencez l'insertion (\i) pour tous les sql du repertoire 'base'. Pour le MONITOR, il faut inserer le fichier slismonitor_base_struct.sql de la même manière que pour la base SLIM mais sur votre serveur SQL de monitoring (qui peut être le même) et dans la base de monitoring (nommée: slismonitor). Il faut aussi créer deux utilisateurs: 1 L'utilisateur slimmonitor qui sera utlisé par SLIM pour se logger à la base MONITOR. Il faut donc configurer le fichier /var/www/slim/include/config_monitor.php en conséquence. 2 L'utilisateur slismonitor qui sera utlisé par les SLIS pour se logger à la base MONITOR. Il faut donc configurer les checks en conséquence. Les checks contiennent les scripts bash/perl stockés dans la table monitor_check qui seront exécutés par les SLIS, les scripts PHP que SLIM affichera dans les vues que vous pourez configurer pour les fiches des SLIS et dans l'accueil de supervision.
Les fichiers sql slismonitor_table_monitor_check.sql et slismonitor_table_monitor_global.sql contiennent les scripts utilisés dans l'académie de Grenoble. Insérez les dans votre base MONITOR et adaptez les à votre configuration (utilisateur/passwd sql, adresse des serveurs etc... cf le script nommé : header script). Enfin, pour avoir accès à ces check dans les vues de SLIM, vous devez après une insertion au niveau SQL, soit éditer chaque check et valider (même sans rien modifier) ou ajouter en SQL dans la base SLIM les éléments custom_view_item. Le fichier sql slim.2.0.3.table_custom_view_items.sql contient les éléments custom_view_item correspondant aux check contenus dans les fichiers slismonitor_table_monitor_check.sql et slismonitor_table_monitor_global.sql **** Ajout Par Bzizou le 02/02/2006 ***** Créez un fichier /var/www/slim/.htaccess afin de configurer l'authentification de SLIM: AuthName "SLIM" AuthType Basic Auth_PG_host localhost Auth_PG_port 5432 Auth_PG_user login Auth_PG_pwd password Auth_PG_database slim Auth_PG_pwd_table slim_user Auth_PG_uid_field login Auth_PG_pwd_field password <LIMIT GET POST> Require valid user </LIMIT> remplacez login et pawword par ceux que vous avez défini pour l'accès à la base slim. ***************************************** Pour terminer, au premier lancement de SLIM, je recommande une Réparation des séquences dans le menu Système. Bon courage et bonne installation. Mon mail au cas ou: xav@ac grenoble.fr.