Pour sa configuration, Indefero repose sur deux fichiers de configuration. Ils se trouvent dans le répertoire indefero-1.0/src/IDF/conf/. Placez-vous dans ce répertoire. Vous pouvez remarque qu'il contient 3 fichiers. Seulement deux nous intéressent, ce sont les deux finissant par -dist. Les fichiers -dist contiennent une configuration par défaut qu'il va falloir modifier. Pour les mettre en service, il faut créer une copie de chaque fichier en supprimant l'extension -dist.
idf.php
Pour mettre en place ce fichier, tapez la commande :
Code : Console
Maintenant il va falloir éditer ce fichier de façon à ce qu'il corresponde à votre système. Si vous regardez vous-même les variables, vous comprendrez vite lesquelles il faut modifier mais je vais quand même vous aider et vous dire lesquelles j'ai modifiées dans l'ordre d'apparition. Je ne mets ici que les variables qui ne concernent pas un système de gestion de version particulier. La configuration de chaque système sera décrite plus tard dans la section appropriée.
Code : PHP - idf.php | <?php
$cfg['debug'] = false; // A mettre à faux pour la mise en production
?>
|
Vous pouvez ensuite commenter toutes les lignes concernant git, svn ou mercurial. Nous les mettrons en place dans leurs parties respectives.
Mails
La partie suivante est la configuration de l'e-mail et serveur smtp. il est possible de désactiver cette option en définissant la variable $cfg['send_emails'] à false. Cependant les mails sont utiles notamment pour vérifier la validité d'un utilisateur lors de son inscription, un mail lui est envoyé automatiquement avec un code de vérification. Si vous n'avez pas de serveur SMTP, pas de panique, google est là !
Pour configurer Indefero avec votre adresse gmail, c'est très simple, il suffit d'avoir une adresse valide et de définir la configuration comme cela :
Code : PHP - idf.php 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | <?php
// Cette variable contient la liste des administrateurs avec leur adresse mail
// Un mail leur sera envoyé si une erreur survient en non débug mode
// Mettez donc votre adresse mail
$cfg['admins'] = array(
array('Admin', 'VOTRE_ADRESSE@gmail.com'),
);
$cfg['send_emails'] = true;
$cfg['mail_backend'] = 'smtp';
$cfg['mail_auth'] = true;
$cfg['mail_host'] = 'ssl://smtp.gmail.com';
$cfg['mail_port'] = 465;
$cfg['mail_username'] = 'VOTRE_ADRESSE@gmail.com';
$cfg['mail_password'] = 'MOT_DE_PASSE';
?>
|
Allé, je fais un peu de zèle, si vous avez déjà une adresse gmail et que vous ne voulez pas avoir à vous connecter à l'une puis l'autre, il est non seulement possible de recevoir une copie des mails reçu sur votre adresse personnelle mais en plus de pouvoir choisir l'expéditeur lors de l'envoi d'un mail. Donc quand vous envoyez un mail, en un clic vous pouvez l'envoyer à partir de votre adresse d'administration. Pour cela, allez dans votre compte personnel puis dans paramètres->"Comptes et importations"->"Vérifier les messages avec le protocole POP3". Ici cliquez sur "Ajouter un compte de messagerie POP3" et suivez les instructions.
Revenons maintenant à notre configuration :
Code : PHP - idf.php 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | <?php
// Ces deux variables dépendent de votre configuration apache
// Nous reviendrons dessus plus tard
// Par défaut mettes-les comme tel :
$cfg['idf_base'] = '/index.php';
$cfg['url_base'] = 'http://NOM_DE_DOMAINE';
// Pour accéder au répertoire media et upload. On ne l'a pas déplacé
// Donc il suffit de mettre à jour le nom de domaine
$cfg['url_media'] = 'http://NOM_DE_DOMAINE/media';
$cfg['url_upload'] = 'http://NOM_DE_DOMAINE/media/upload';
$cfg['upload_path'] = '/www/indefero/www/media/upload';// chemin absolu
$cfg['upload_issue_path'] = '/www/indefero/attachments';
// Je ne sais pas trop à quoi ça sert mais ils conseillent qu'elle fasse
// plus de 40 caractères, faites-vous plaisir
$cfg['secret_key'] = 'jhkfg2s4h1rss56g21j564dd21b56rf2s2k52mioi5d2s6zs';
// Mettez votre adresse que vous voulez. La deuxième est une adresse no-reply
$cfg['from_email'] = 'ADRESSE@gmail.com';
$cfg['bounce_email'] = 'ADRESSE@gmail.com';
?>
|
Base de données
Bien entendu, Indefero utilise une base de données. Vous pouvez choisir la basse de données que vous voulez utiliser entre MySQL et PostgreSQL. Les variables permettent la connexion à la base de données, les noms sont assez explicites. Je compte sur vous pour créer la base et initialiser les utilisateurs de la manière qu'il vous convient. Si vous ne savez pas comment faire, la documentation d'Ubuntu devrait vous aider.
http://doc.ubuntu-fr.org/mysqllien>
Code : PHP 1
2
3
4
5
6
7
8
9
10
11
12
13
14 | <?php
$cfg['db_login'] = 'LOGIN';
$cfg['db_password'] = 'MOT_DE_PASSE';
$cfg['db_server'] = '';// Probablement localhost
// Utile seulement pour mySQL, à commenter pour PstgreSQL
$cfg['db_version'] = '5.0';// Connectez-vous à mysql, elle sera affichée
// Cette chaine sera préfixée à chaque nom de table. ça permet de faire tourner
// plusieurs Indefero sur une même table.
$cfg['db_table_prefix'] = 'indefero_';
$cfg['db_engine'] = 'MySQL'; // Ou PostgreSQL selon votre besoin
$cfg['db_database'] = 'NOM_DATABASE';
?>
|
Autre
Voici les trois dernières variables à modifier :
Code : PHP | <?php
$cfg['pear_path'] = '/usr/share/php5';// Moi c'est php5 au lieu de php, vérifiez
// Celle-ci n'est pas obligatoire mais c'est plus rigoureux je trouve
$cfg['cache_file_folder'] = $cfg['tmp_folder'].'/cache_indefero';
// J'ai mis Paris mais vous pouvez adapter
// (cf liste http://www.php.net/manual/fr/timezones.php)
$cfg['time_zone'] = 'Europe/Paris';
?>
|
Pour ce qui est du reste, vous pouvez regarder mais il n'est a pas nécessaire d'y toucher pour que ça marche.
path.php
Ce fichier contient les path de l'application. Il sera beaucoup plus rapide à éditer. Comme idf, il faut commencer par le copier :
Code : Console | cp path.php-dist path.php |
Étant donné qu'on n'a pas installé Pluf au même endroit que ce que demande la documentation, il faut changer son path, soit pour moi :
Code : PHP | <?php
define('PLUF_PATH', dirname(__FILE__).'/../../pluf/src');
?>
|
Base de données
Il va maintenant falloir initialiser la base de données. Ne vous inquiétez pas, Indefero s'occupe de tout. Nous allons utiliser un script qui a été mis en place. Ce script propose une option permettant de tout vérifier. Donc de faire comme s'il initialisais tout mais en fait il ne fait rien. Si le script fonctionne avec cette option, vous pouvez ensuite l'enlever et réellement exécuter le script qui cette fois initialisera tout pour de bon. Voici la fameuse commande :
Code : Console | cd /www/indefero/src/
php pluf/src/migrate.php --conf=IDF/conf/idf.php -a -i -d -u |
Tant que ce code renvoie des erreurs, corrigez-les et continuez à exécuter le script jusqu'à ce qu'il n'y en ait plus. Les premières erreurs peuvent venir d'un problème dans le fichier path (s'il ne trouve pas le fichier Pluf.php ou autre), ensuite sinon c'est dans le fichier idf.php. Et enfin, si c'est une erreur dans la base de données c'est que vous avez du oublier de créer la base ou l'utilisateur ou tout simplement que les informations que vous avez rentrées dans le fichier idf.php à propos de la base de données ne sont pas correctes.
Une fois qu'il n'y a plus d'erreurs, la sortie devrait être la suivante :
Code : Console | PHP include path: .:/usr/share/php:/usr/share/pear:/www/indefero_tuto/src/pluf/src
Install all the apps
Pluf_Migrations_Install_setup
IDF_Migrations_Install_setup |
Vous pouvez maintenant exécuter le script sans l'option -u qui initialisera réellement Indefero cette fois. La sortie devrait être exactement la même qu'avec l'option -u.
Code : Console | php pluf/src/migrate.php --conf=IDF/conf/idf.php -a -i -d |
Ce code a donc créé toutes les tables dans la base de données dont indefero a besoin pour son fonctionnement. On va maintenant créer un administrateur pour le site. Soit votre compte administrateur. Pour cela, nous allons créer une script dans le répertoire src nommé init_user.php dans lequel vous allez copier ce code et modifier les parties personnelles.
Code : PHP - init_user.php 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | <?php
require '/www/indefero/src/IDF/conf/path.php';
require 'Pluf.php';
Pluf::start('/www/indefero/src/IDF/conf/idf.php');
Pluf_Dispatcher::loadControllers(Pluf::f('idf_views'));
$user = new Pluf_User();
$user->first_name = 'VOTRE_PRENOM';// Prénom
$user->last_name = 'VOTRE_NOM'; // Nom (obligatoire
$user->login = 'LOGIN'; // Login en minuscule
$user->email = 'VOTRE_EMAIL@gmail.com';
// Le mot de passe sera crypté dans la base de données
$user->password = 'yourpassword';
$user->administrator = true;
$user->active = true;
$user->create();
print "Utilisateur créé\n";
?>
|
Exécutez ensuite le code avec php. Une fois exécuté, le fichier peut être supprimé.
Code : Console | php init_user.php
rm init_user.php |
Indefero est maintenant configuré. Il ne reste plus qu'à configurer apache pour pouvoir y accéder.
Apache
Pour cela on va créer un nouveau vhost dans /etc/apache2/sites-available/ nommé indefero et y mettre le contenu suivant à adapter bien évidemment :
Code : Apache - /etc/apache2/sites-available/indefero 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | <VirtualHost *:80>
# ServerName définie le nom utilisé pour le vhost. Mettez le nom de l'hôte du domaine
ServerName VOTRE_FQDN
# ServerAlias définie les autres sous domaines pour lesquels le serveur répondra.
ServerAlias www.VOTRE_FQDN
# DocumentRoot définit le dossier racine dans lequel seront stockés les fichiers du site.
DocumentRoot /www/indefero/www
# Directory définit les options par défaut du répertoire
<Directory /www/indefero/www >
Options FollowSymLinks MultiViews
AllowOverride All
# Droits par defaut
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.indefero.log
CustomLog /var/log/apache2/access.indefero.log combined
</VirtualHost>
|
Modifiez la configuration si elle ne vous convient pas, j'utilise celle-ci et ça marche. Libre à vous de la modifier.
Il faut ensuite activer le site et recharger apache avec la nouvelle configuration.
Code : Console | a2ensite indefero
/etc/init.d/apache2 reload |
Il faut maintenant donner un accès en lecture au serveur apache mais aussi un accès en écriture au répertoire upload. Nous savons bien qu'un "chmod 777" n'est pas une bonne solution du tout. Lorsque Apache est démarré, par défaut il tourne sous l'utilisateur www-data et le groupe www-data. Il suffit donc de définir comme groupe à tous les fichiers et répertoires le groupe www-data et de mettre à jour les permissions.
Code : Console | chgrp www-data /www/indefero/ -R
chmod 750/www/indefero/ -R
chmod 770 /www/indefero/www/media/upload |
Il aurait également été possible d'ajouter l'utilisateur www-data au groupe du titulaire des fichiers mais j'ai choisi cette solution car l'utilisateur est root et que j'estime qu'il n'est pas trop bon d'ajouter un utilisateur au groupe root.
Et enfin, pour finir, si vous avez le mod_rewrite sur votre serveur, pour avoir de belles url, ajoutez le fichier .htaccess dans le répertoire /www/indefero/www avec le contenu suivant :
Code : Apache - /www/indefero/www/.htaccess | RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /index.php/$1
|
Et modifiez dans le fichier de configuration idf.php les deux variables suivantes :
Code : PHP | <?php
$cfg['idf_base'] = '';
$cfg['url_base'] = 'http://VOTRE_FQDN';
?>
|
Si en revanche, vous n'avez pas le mod_rewrite, il va vous falloir utiliser le fichier index.php dans l'url systématiquement avec la configuration du fichier idf.php suivante :
Code : PHP | <?php
$cfg['idf_base'] = 'index.php';
$cfg['url_base'] = 'http://VOTRE_FQDN';
?>
|
Et voila, votre interface est enfin accessible à partir de l'url http://VOTRE_FQDN. Vous pouvez vous connecter avec le compte administrateur que vous avez créé auparavant. Vous pouvez également tester la connexion, si vous avec bien configuré cotre serveur smtp (avec gmail par exemple, vous devriez recevoir un e-mail de confirmation de votre adresse mail lors de l'inscription. Vous pouvez également gérer les utilisateurs sur le site. Si l'interface est en anglais, vous pouvez le modifier dans votre profil pour mettre la langue en français.
Cependant, vous ne pouvez pas encore créer de projet car nous n'avons ni configuré Svn ni git. Ce sera le sujet de la partie suivant, vous y êtes presque !