Aller au menu - Aller au contenu

Icône Installation et configuration

Avatar
Mise à jour : 14/04/2011
Difficulté : Facile Facile Durée d'étude : 1 heure Creative Commons BY-NC-SA
2 496 visites depuis 7 jours, dont 296 sur ce chapitre classé 59/786
Voici enfin venu le moment où vous allez pouvoir télécharger CodeIgniter et ouvrir votre éditeur de texte.

Au menu : téléchargement, installation, découverte de l'arborescence et configuration. À table !

Nous ne toucherons pas à toutes les clés de configuration. Vous comprendrez davantage d'éléments lorsque vous serez habitués au framework.
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Téléchargement et installation

Téléchargement


Rendez-vous sur le site officiel de CodeIgniter pour pouvoir télécharger le framework, et plus exactement dans la rubrique downloads. Vous devriez normalement voir un gros bouton Download CodeIgniter. À l'heure où j'écris ces lignes, la version actuelle est la 2.0.2. Bien entendu, prenez la dernière version.

Pendant que j'y suis, j'en profite aussi pour vous donner le lien de la documentation. S'il y a bien un lien qu'il faut mettre dans vos favoris, c'est celui-ci.

Une fois qu'elle sera téléchargée, il faudra décompresser l'archive et placer le dossier portant le même nom que la version dans votre répertoire web. Vous pouvez le placer où vous voulez. Pour les besoins du tutoriel, j'ai renommé le dossier en codeIgniter et je l'ai placé dans mon répertoire www.

Installation


Vous allez voir, l'installation va être très rapide.

Quelques modifications


Dans votre dossier (que j'ai appelé codeIgniter), vous avez normalement deux fichiers : index.php et licence.txt. Vous pouvez faire ce que bon vous semble de la licence.
Ensuite, vous avez la documentation dans le dossier user_guid. Vous pouvez aussi en faire ce que bon vous semble.

Image utilisateur


index.php


Maintenant, vous allez ouvrir le fichier index.php. La première chose à configurer est de définir si le framework est actuellement en période de développement, de test ou de production. La conséquence immédiate est l'affichage ou non des erreurs. Normalement, la constante est déjà sur development.

Code : PHP - ./index.php
1
2
3
<?php

define('ENVIRONMENT', 'development');			//  (development | testing | production)


Une fois cela fait, vous pouvez modifier les deux variables suivantes : system_path et application_folder. Le premier est le chemin vers le dossier system et le second est celui vers le dossier application.
La configuration par défaut est fonctionnelle. On pourra par la suite les changer sans problème.

Code : PHP - ./index.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<?php

/*
|---------------------------------------------------------------
| SYSTEM FOLDER NAME
|---------------------------------------------------------------
*/
	$system_path = "system";

/*
|---------------------------------------------------------------
| APPLICATION FOLDER NAME
|---------------------------------------------------------------
*/
	$application_folder = "application";


La documentation de CodeIgniter recommande de renommer ces dossiers pour éviter à un visiteur mal intentionné de connaître leur emplacement. Je pense que vous pouvez vous en passer dans un premier temps.


Vous avez fini d'installer CodeIgniter. Vous avez normalement accès à la page d'accueil du framework (chez moi, c'est http://localhost/codeIgniter/) et celui-ci vous souhaite la bienvenue.

Image utilisateur


Si vous ne voyez pas ce message, reprenez bien les étapes dans l'ordre et assurez-vous de bien avoir les prérequis de votre version téléchargée (version minimale de PHP, droits de lecture...).

Mise en place de l'arborescence

Maintenant que le framework est installé, attardons-nous sur l'arborescence de CodeIgniter.

Les dossiers application et system


À côté de votre index.php, vous avez deux dossiers : application et system. Le dossier system contient tous les codes natifs de CodeIgniter alors que le dossier application va contenir tous vos codes. Vous ne devrez donc jamais modifier les fichiers présents dans le dossier system, et je vais vous en expliquer la raison tout de suite.

Imaginons que vous n'aimez pas le nom d'une méthode. Vous allez donc lancer une petite recherche et modifier le nom de cette méthode. Sauf que vous allez avoir de gros problèmes maintenant. En voici trois qui méritent d'être cités.
  • Si une nouvelle version de CodeIgniter sort, vous allez devoir refaire vos manipulations. Et ne dites pas que vous ne ferez pas la mise à jour, car vous risquez des problèmes de sécurité.
  • En modifiant les sources, vous êtes susceptibles de laisser passer des failles, car il y a de fortes chances que vous ne connaissiez que l'aspect « utilisateur » du framework.
  • Un des avantages de l'utilisation d'un framework est la facilité de travailler à plusieurs, car chacun sait comment le système fonctionne. Mais si vous modifiez les sources de CodeIgniter, son comportement ne sera plus le même.
Nous verrons par la suite comment effectuer ces changements sans toucher à ce dossier.

Le dossier assets


Avant de décrire précisément le contenu du dossier application, vous allez créer un dossier assets, toujours dans le même dossier que le fichier index.php. Et à l'intérieur de celui-ci, créez aussi les dossiers css, javascript et images.

Vous disposez maintenant d'une arborescence très claire.
  • assets contiendra toutes les ressources qui vont être téléchargées par les visiteurs. Par exemple, les feuilles de style externes (CSS), les fichiers JavaScript et les images. Cependant, vous pouvez aussi ajouter des dossiers tels que musiques, videos, xml (pour les flux RSS, les animations flash). C'est comme si vous alliez faire un copier-coller de ce dossier dans l'ordinateur de vos visiteurs. Rien ne doit être confidentiel.
  • system contient les sources de CodeIgniter, vous ne devez pas y toucher.
  • application contiendra tous vos scripts, qu'il faudra placer dans les bons dossiers. C'est ce que nous allons voir tout de suite.


Le dossier application


Voici l'arborescence du dossier application avec les explications des dossiers dont nous nous servirons dans la prochaine partie.

Image utilisateur

  • config : ce sont des fichiers permettant de configurer CodeIgniter ou une bibliothèque. Certains sont inclus automatiquement, d'autres seulement lorsque vous les demandez.
  • controllers : ce dossier contiendra tous nos contrôleurs.
  • errors : ce sont les pages d'erreurs. Libre à vous de les personnaliser selon votre design.
  • helpers : c'est le répertoire pour vos helpers. Les helpers fournis avec CodeIgniter sont situés dans le dossier system.
  • hooks : c'est un dossier qui contient des fichiers assez complexes. Ils permettent d'exécuter des scripts à différents moments du processus d'exécution de CodeIgniter.
  • language : ce répertoire contiendra tous vos fichiers de langue dans le cas où vous souhaitez un site internationalisé.
  • libraries : nous placerons nos bibliothèques dans ce dossier. Comme les helpers, les bibliothèques fournies par CodeIgniter sont situées dans un autre dossier.
  • models : le répertoire des modèles.
  • views : le répertoire des vues.



En respectant les emplacements des différents fichiers, vous gagnerez en clarté.

Configurons CodeIgniter

Certes, l'installation est terminée, mais il reste encore certains points à définir.

Le fichier config.php


Ce fichier de configuration est le cœur de la configuration du framework. Il se trouve dans le dossier ./application/config/. Je ne vais pas décrire tous les points mais sachez que nous allons aborder les plus importants.

base_url


C'est l'URL que vous devez taper pour accéder au fichier index.php. Dans mon cas, ce sera :

Code : PHP - ./application/config/config.php
1
2
3
4
5
6
7
8
<?php

/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
*/
$config['base_url'] = "http://localhost/codeIgniter/";


index_page


Par défaut, la valeur est index.php. Nous allons voir que CodeIgniter génère par défaut des URL de cette forme-là :
http://localhost/codeIgniter/index.php/classe_controleur/methode_controleur/.

Problème, ce « index.php » n'est pas des plus jolis. Pour le masquer, il y a une solution : l'URL rewriting. Si vous avez activé ce module, alors vous pouvez créer un fichier .htaccess à côté du index.php contenant ce code :

Code : Apache - ./.htaccess
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#   Empêche la visualisation de l'arborescence, n'a rien à voir avec le masquage du « index.php ».
Options -Indexes

#   Active le module de réécriture d'URL.
RewriteEngine on

#
#   Fixe les règles de réécriture d'URL. Ici, nous utilisons une liste blanche.
#

#   Toutes les URL qui ne correspondent pas à ces masques sont réécrites.
RewriteCond $1 !^(index\.php|assets/|robots\.txt)

#   Toutes les autres URL vont être redirigées vers le fichier index.php.
RewriteRule ^(.*)$ index.php/$1 [L]

Une fois cela fait, vous pouvez vider la variable index_page puisque les URL seront redirigées vers ce fameux fichier index.php.

Code : PHP - ./application/config/config.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php

/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
*/
//    Dans le cas où mod_rewrite est activé
$config['index_page'] = "";

//    Dans le cas contraire
$config['index_page'] = "index.php";

Maintenant, vos URL ne contiendront plus le « index.php ».

url_suffix


C'est le suffixe que vous voulez donner à vos URL. Vous pouvez donner n'importe quoi. CodeIgniter l'ignorera...
Dans mon cas, je vais choisir l'extension html. Vous pourrez tout aussi bien ne rien mettre. C'est facultatif.

Code : PHP - ./application/config/config.php
1
2
3
4
5
6
7
8
9
<?php

/*
|--------------------------------------------------------------------------
| URL suffix
|--------------------------------------------------------------------------
*/

$config['url_suffix'] = ".html";


language


Cette option permet de configurer la langue par défaut. C'est très utile si vous voulez afficher les erreurs en français et non en anglais.

Cette langue sera aussi utilisée pour les messages d'erreurs lorsque vos formulaires ne seront pas bien remplis. Si vous voulez faire un site en français, prenez le temps de faire cette manipulation.


Si c'est le cas, alors il va falloir modifier certaines choses. Dans un premier temps, passez cette variable à « french ».

Code : PHP - ./application/config/config.php
1
2
3
4
5
6
7
8
<?php

/*
|--------------------------------------------------------------------------
| Default Language
|--------------------------------------------------------------------------
*/
$config['language'] = "french";


Désormais, lorsqu'il y aura une erreur, CodeIgniter voudra l'afficher en français. Sauf que CodeIgniter ne propose qu'un jeu de langue anglais... Jetez un petit coup d'œil aux fichiers situés dans le répertoire ./system/language/. Il n'y a que le dossier english.

Vous avez donc deux solutions : traduire l'ensemble des fichiers de langue ou récupérer un fichier de langue sur le web.

Si vous voulez récupérer un fichier de langue, vous pourrez en trouver sur le wiki officiel ou bien dans les sources de PyroCMS. C'est un CMS qui a été développé avec CodeIgniter. Il vous suffit de télécharger ce CMS, de le décompresser et d'aller dans le répertoire ./codeigniter/language/. Dans ce dossier, vous avez accès à une panoplie de langages, dont le français (french). Il vous suffit donc de déplacer le dossier french de PyroCMS jusque dans votre répertoire ./system/language/.

Maintenant, CodeIgniter est en mesure d'afficher les erreurs en français.

session


Vous pouvez aussi configurer l'utilisation des sessions.

Voici ce que vous pouvez paramétrer :

Code : PHP - ./application/config/config.php
1
2
3
4
5
6
7
<?php

//    Le nom du cookie...
$config['sess_cookie_name'] = 'ci_session';

//    La date de péremption du cookie, en secondes...
$config['sess_expiration'] = 7200;


En plus de cela, CodeIgniter propose de stocker les sessions dans votre base de données au lieu de les stocker dans les cookies.

Si vous stockez souvent beaucoup de données dans les sessions, choisissez évidemment la base de données. Dans la plupart des cas, je vous conseille de prendre cette option car elle offre en plus une sécurité identique aux sessions natives de PHP.


Si vous êtes intéressés par cette fonctionnalité, alors vous devez dans un premier temps créer une table ci_sessions dans votre base de données.
Ce code vous permettra de générer la table. Il s'agit d'un simple code SQL.

Code : SQL - Création de la table ci_session
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
CREATE TABLE IF NOT EXISTS `ci_sessions` (
	session_id      varchar(40)    DEFAULT '0' NOT NULL,
	ip_address      varchar(16)    DEFAULT '0' NOT NULL,
	user_agent      varchar(120)   NOT NULL,
	last_activity   int(10)        unsigned DEFAULT 0 NOT NULL,
	user_data       text           NOT NULL,

	PRIMARY KEY (session_id),

	KEY `last_activity_idx` (`last_activity`)
);


Une fois ceci fait, vous devez lui dire d'utiliser la base de données.

Code : PHP - ./application/config/config.php
1
2
3
4
5
6
7
<?php

//    La valeur TRUE permet d'utiliser la base de données
$config['sess_use_database'] = TRUE;

//    Le nom de la table
$config['sess_table_name'] = 'ci_sessions';


compress_output


Cette clé permet d'activer la compression Gzip. Elle est désactivée par défaut car tous les hébergeurs ne supportent pas cette fonctionnalité. Pour rappel, cette compression permet de réduire la taille du contenu envoyé au navigateur. En théorie, les pages devraient se charger plus rapidement.

Lorsque que vous êtes en développement, désactivez cette fonctionnalité car si vous ne respectez pas les standards du MVC, votre page ne s'affichera pas. Il est courant d'utiliser la fonction var_dump un peu n'importe où. Cependant, si vous affichez des données à l'extérieur des vues, l'affichage de votre page plantera.


Maintenant que cela est fait, nous allons configurer notre base de données.

Le fichier database.php


Dans ce fichier, vous noterez vos identifiants et le mot de passe de connexion à votre base de données.

Code : PHP - ./application/config/database.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php

/*
| -------------------------------------------------------------------
| DATABASE CONNECTIVITY SETTINGS
| -------------------------------------------------------------------
*/

$db['default']['hostname'] = "nom_d_hote";
$db['default']['username'] = "nom_d_utilisateur";
$db['default']['password'] = "mot_de_passe";
$db['default']['database'] = "base_de_donnees";


Maintenant, votre base de données est opérationnelle.

Vous avez la possibilité d'inscrire plusieurs bases de données. En effet, la base de données d'exemple utilise la ligne « default ». Vous pouvez ajouter d'autres lignes dans la tableau $db pour gérer tous vos identifiants.


Le fichier autoload.php


Ce fichier vous permet d'inclure dès le lancement de CodeIgniter des bibliothèques, des helpers, ainsi que des modèles et fichiers de langue.

Bibliothèque


Je vous propose de charger au démarrage du framework deux bibliothèques : les sessions et les bases de données. Je trouve que ce sont des fonctionnalités « élémentaires » qui nécessitent d'être constamment utilisées ou presque.

Pour faire cela, vous devez ajouter dans le tableau les bibliothèques que vous voulez charger.

Code : PHP - ./application/config/autoload.php
1
2
3
4
5
6
7
8
<?php

/*
| -------------------------------------------------------------------
|  Auto-load Libraries
| -------------------------------------------------------------------
*/
$autoload['libraries'] = array('database', 'session');

Lorsque vous connaîtrez plus de bibliothèques, ou que vous aurez besoin d'inclure les vôtres, vous pourrez les ajouter à la suite.

Helpers


Nous allons aussi charger un helper : url. Il nous permettra d'écrire des URL en fonction des paramètres que vous aurez définis dans le fichier ./application/config/config.php. En utilisant ces fonctions, toutes vos URL seront instantanément modifiées si la valeur de $config['base_url'] est modifiée.

Code : PHP - ./application/config/autoload.php
1
2
3
4
5
6
7
8
9
<?php

/*
| -------------------------------------------------------------------
|  Auto-load Helper Files
| -------------------------------------------------------------------
*/

$autoload['helper'] = array('url');


Nous en avons fini avec la configuration de CodeIgniter.

Q.C.M.

Vous êtes dans une équipe de développeurs et vous venez de finir votre partie.
Quel dossier allez-vous leur envoyer ?
Quel est le rôle du dossier application ?
Quelle est l'utilité du fichier de configuration autoload.php ?

Statistiques de réponses au QCM

Cette partie est terminée. Nous allons maintenant attaquer la deuxième partie.

Comme je vous l'ai dit dans la partie précédente, c'est le contrôleur qui est appelé en premier. Nous allons donc aborder celui-ci dès maintenant.
Chapitre précédent Sommaire Chapitre suivant

Partager

26 commentaires pour "Installation et configuration"
Note moyenne : 3.74 / 4 (92 votes)
Pseudo Commentaire
Hors ligne razily # Posté le 27/01/2012 à 20:54:09
Avatar

Avis : Mitigé

s'il vous plaît , je me perds sur l'URL rewriting !! comment faire ?? créer un nouveau fichier à côté d'index.php ??? et que faut il faire pour activer le module
Hors ligne arkangelus # Posté le 14/02/2012 à 10:51:18
Avatar

Citation : razily
s'il vous plaît , je me perds sur l'URL rewriting !! comment faire ?? créer un nouveau fichier à côté d'index.php ??? et que faut il faire pour activer le module


Non, il suffit juste de suivre pas à pas le tutoriel de Triviak. Si ça ne marche pas, vérifie juste que le module url_rewrite soit activé sur ton serveur apache (ce n'est pas la cas si tu utilises Linux)
Hors ligne nablex # Posté le 16/04/2012 à 23:18:57
Avatar

Salut,
Je recois le message d'erreur

An Error Was Encountered

In order to use the Session class you are required to set an encryption key in your config file.

quand j'ajoute la ligne suivante dans le fichier autoload.php

$autoload['libraries'] = array('database', 'session');
Hors ligne cartmandu77 # Posté le 03/05/2012 à 14:07:46
Pourquoi vouloir aller vite ?
Avatar

Tout est clair pourtant.
Tu dois déclarer une clé de cryptage pour utiliser la classe Session.

Va faire un tour sur le User_Guide ;)

..\application\config\config.php - vers la ligne 215

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<?
/*
|--------------------------------------------------------------------------
| Encryption Key
|--------------------------------------------------------------------------
|
| If you use the Encryption class or the Session class you
| MUST set an encryption key.  See the user guide for info.
|
*/
$config['encryption_key'] = '7r0626LzvY1XtSxpS53VhC3j7j94CP'; // Ma clé de cryptage

Image utilisateur

^_^
"Partages ce que tu sais, apprends le reste..." - SdZ
irc://irc.epiknet.org/3D le salon des 3déiste du SdZ !
 
Hors ligne kilak # Posté aujourd'hui à 00:25:09
Avatar

Études : IUT Havre

Bonjour,

j'ai suivi le tuto, je suis avec la version 2.1 et je n'arrive pas à mettre en français.

j'ai pourtant mis $config['language'] = 'french'; et j'ai récupérer le dossier french que j'ai placé dans system/language.

j'ai l'erreur suivante :

Citation

An Error Was Encountered

Unable to load the requested language file: language/french/french_lang.php


Merci

Cordialement, Kilak.
 

Voir tous les commentaires
Ce tutoriel a été corrigé par les zCorrecteurs.