Go to content Go to sidebar

Installation de cakePHP

CakePHP est vraiment facile à installer, en fait j’ai même pas à écrire ce post, mais je vais quand même le faire ;)

Avant qu’on commence on va se mettre d’accord sur quelques points:

Les Ingrédients (ou Pré-requis)

Vous devez avoir une plate forme LAMP de base qui fonctionne.
Vous pouvez ne pas avoir de base de données, pour des applications qui ne nécessitent pas de base de données tout simplement.

Serveur Web

Si vous avez un hébergement et vous voulez installer Cake dedans, cela ne vous concerne pas puisque vous avez déjà un serveur Web installé. En revanche si vous voulez développer en local, vous devez installer un serveur Web. Mais quel serveur Web choisir ? La question ne se pose pas: Apache . Mais j’ai Windows ? Apache. Ok bon si vous avez des contraintes et que vous devez utiliser IIS j’ai une bonne nouvelle pour vous, Cake marche sans problème sur ce serveur. Une autre alternative à apache est LightTPD

Notez que le but ici n’est pas d’apprendre à installer une plate forme LAMP tout(e) seul(e) comme un(e) grand(e), la sécurisé etc. En principe vous devez déjà avoir ça en place.
Cependant, Si vous êtes un débutant, et vous voulez avoir ça sous linux par exemple, je vous conseil la distribution Ubuntu qui est basée sur Debian très facile à utiliser et une bonne introduction au monde *nix.
Vous trouverez un tutoriel décrivant comment installer un serveur lamp sur ubuntu ici

Tout en un

Pour les utilisateurs de Windows, Il y a des solutions comme EasyPHP ou xampp qui sont des kits qui regroupent les outils nécessaires pour avoir un environnement LAMP prêt à l’emploi sans se casser la tête. Je préférerai xaamp parce qu’il offre la possibilité de changer entre PHP4 et PHP5 en un clic ce qui peut être extrêmement utile lorsqu’on teste des choses, surtout que cakePHP support les deux versions de PHP, 4 et 5.
Il y a une version de xampp pour linux et pour mac OS X aussi.

Mettre la main au Cake

Arrivant jusqu’ici, je considère que vous avez une plate forme LAMP qui marche. il reste à acquérir cakePHP.
Il y a différentes façons de l’avoir:

La dernière version stable

Vous pouvez la récupérer d’ici http://cakeforge.org/projects/cakephp/
à l’heure d‘écriture de ce post, la dernière version stable est 1.1.12.4205.
Vous cliquez donc sur Téléchargement et vous prenez l’archive adéquate ( .zip pour Windows, .tar.bz2 ou .tar.gz pour les *nix)

Nightly Build

Il faut aller ici pour récupérer cette version. C’est en fait une version qui est extraite du dépôt de Cake toutes les nuits à 11h CST (faites le calcule pour GMT). Cette version inclue souvent des corrections de bugs entre deux versions stables.
Après vous Sélectionnez l’archive adéquat ( .zip pour Windows, .tar.bz2 ou .tar.gz pour les *nix)

SVN

Pour gérer le code, les développeurs de cakePHP utilisent un outil de gestion des sources et de contrôle de versions, qui s’appelle Subversion ou communément dit SVN.
Un dépôt Subversion est l’emplacement central où sont stockées toutes les données relatives aux projets gérés. Le dépôt est accédé via une URL locale ou distante.

L’avantage qu’offre SVN et que vous pouvez traquer les mises à jour de Cake sans aller Télécharger la dernière version à chaque fois et écraser les fichiers déjà existant etc.
SVN rend les choses plus organisées. Avec un seul clic (ou une seule commande) vous pouvez garder votre copie de travail locale à jour avec le dépôt de cakePHP.

Vous devez donc avoir un client SVN installé.
Pour les utilisateurs Windows, il existe TortoiseSVN un client SVN qui s’intègre à l’explorateur de fichiers pour permettre une utilisation visuelle des commandes.

L’adresse du dépôt SVN de cakePHP est: https://svn.cakephp.org/repo/trunk/cake/1.1.x.x/

l’installation

Peu importe la méthode que vous avez utilisé pour récupérer CakePHP. L’essentiel est que vous ayez soit l’archive décompressé soit si vous optez pour SVN, un répertoire avec un “checkout” du dépôt.
Il y a en fait deux façon d’installer cakePHP: Développement et Production.

Page de presentation cakePHP

Mais avant de voir chaque type, on va faire un tour rapide de l’architecture des dossiers de cakePHP. Un tour rapide parce qu’on va détailler ça dans un prochain post. Maintenant on va juste voir les répertoires qui vont être impliqué dans l’installation.

Quand on décompresse l’archive téléchargé, on trouve 3 dossiers principaux:


vendors/
app/
cake/

Sous app, y a deux dossiers qui nous intéresse pour l’instant: tmp et webroot .

Développement

Page de presentation cakePHP

Y a vraiment rien à dire sur ce type d’installation, c’est très enfantin: Déposez le contenu de l’archive dans la racine de votre serveur Web, ou bien dans un sous répertoire cake par exemple.
Ouvrez votre navigateur sur http://localhost/ ou bien http://localhost/cake/
Si vous ne voyez rien, vérifier que votre serveur marche. Si la page apparaît, mais sans CSS, vous avez sûrement un problème de mod_rewrite. Si Vous Pouvez, installez/activez le (dépend de votre système). Si vous ne pouvez pas l’installer pour une raison quelconque, pas de panique, mod_rewrite est préférable mais pas obligatoire!
Cake Dispose d’un système de PrettyURLs qui permet d’avoir de jolies URLs. Jolies dans le sens où les URLs sont plus acceptables, par les humains et par les moteurs de recheche ( SEO). Seul bémole, vous aurez index.php dans l’URI.
Voilà ce que ça peut donner dans les trois cas:
mod_rewrite:
http://localhost/pages/home
PrettyURLs:
http://localhost/index.php/pages/home
Pas de mod_rewrite ni de PrettyURLs:
http://localhost/index.php?url=pages/home

Pour activer les PrettyURLs de Cake. Ouvrez le fichier core.php qui se trouve dans app/config/.
Trouvez la ligne:
// define('BASE_URL', env('SCRIPT_NAME'));
Et décommentez la (enlevez les // )
Sauvegarder le fichier.
Il n’est pas nécessaire d’enlever les fichiers .htaccess du répertoire de l’installation (Normalement y en a trois: dans le répertoire principale, dans app/ et dans app/webroot) sauf si on préfère utiliser les PrettyURLs de cake à mod_rewrite qui est activé.
Voilà ça doit marcher normalement.

Production

Ce mode offre plus de sécurité et d’organisation. Il est conseillé pour le déploiement final des applications. Ainsi que si vous développez plusieurs applications avec un même core de Cake, ce qui est possible.
On peut procéder de deux manières:


DocumentRoot /chemin/vers/app/webroot

Exemple d’une configuration

La racine de mon serveur Web est /home/oth/www.
Supposant que je veux installer une application bar. Dans un sous répertoire de mon serveur Web Je crée donc /home/oth/www/bar et je prends le contenu de mon webroot, je le mets dans ce répertoire.
Ensuite, je crée un répertoire foo dans /home/oth
Dans ce répertoire je mets le répertoire cake. Dans foo, je crée un autre répertoire apps (avec s ). Dans ce répertoire je mets mon répertoire app, cependant je le renomme, par exemple en app_bar.
J’aurais quelque chose qui ressemble à


/home/oth/
      foo/
          cake/
          apps/
             app_bar/
      www/
          bar/


Je dois maintenant renseigner dans mon index.php de bar (l’ancien webroot) qu’elle est mon application, et où il est le répertoire cake.
J’ouvre ce fichier donc pour le modifier.
On doit changer les valeurs des constantes ( defines) ROOT, _APP_DIR_ et _CAKE_CORE_INCLUDE_PATH_.
_ ROOT_ doit contenir le chemin absolu du répertoire qui contient le répertoire app (qu’on a renommé en app_bar).
Pour notre cas c’est:
define(‘ROOT’,’/home/oth/foo/apps’);
(N’ajoutez pas un ‘/’ à la fin)
_APP_DIR_ est le nom du répertoire app, on l’a changé donc:
define(‘APP_DIR’,‘app_bar’);
_CAKE_CORE_INCLUDE_PATH_ est le chemin absolu du répertoire qui contient le répertoire cake
dans notre cas:
define(‘CAKE_CORE_INCLUDE_PATH’,’/home/oth/foo’);

C’est tout !
Facile non?
Maintenant une devinette. Si on veut ajouter un autre site cat dans un sous répertoire de la racine du serveur Web, on fait comment ? Ai-je vraiment besoin de répondre ?
Bon, je donne un indice même si je sais que vous l’aviez sûrement deviné. Substituez bar par cat dans ce qui a précédé! Je ne dis pas plus!
Heh!

Conclusion

Ok, je sais, j’avais promis dans le post précédent que ça sera plus court, mais bon. Ça nous évitera de revenir sur des choses plus tard. Vaut mieux avoir des bases solides. Après on aura même pas besoin de la documentation, on se débrouillera tous seuls!
Voilà pour ce, post, billet, article, tutorial, ce que vous voulez! ça s’arrête là! N’oubliez pas, les commentaires sont fait, ben pour commenter! Donc n’hésitez pas si vous voulez plus de clarifications ou autre.

8h du matin! Oh ma! Hmm, je n’ai pas vu le temps passer.
Enfin, tant que c’est pour la bonne cause :)

Cake!

Comments:

  1. Tres bon debut.
    Peut etre quelques petits tuyaux sur le modeRewrite, il faut utiliser le RewriteBase chez certains providers (Ovh par exemple) :
    dans .htaccess de l’exemple de prod fourni, ajouter :
    RewriteBase /bar
    apres RewriteEngine On

    Merci

  2. Merci Franck, je pensait tout simplement que le modRewrite n‘était pas possible chez OVH avec un .htaccess.

  3. Oui, si l’installation est dans un sous répertoire. sinon on peut faire:
    RewriteRule ^(.*)$ /chemin/vers_dir_install_depuis_root_du_serveur_web/index.php?url=$1 [QSA,L]

    ça marche chez ovh comme ça aussi. sauf si vous accéder au site depuis http://XXXplan.ovh.net/~domain/foo/bar/
    petit souci. ovh n’utilise pas mod_rewrite de façon standard, ils l’ont même nommé mod_ort ou chépakoi. faut enlevé donc le <IfModule mod_rewrite.c>
    Personellement, je conseil pas ovh, ni support ni rien n’est bien chez eux.

  4. Oui c’est vrai que j’ai enleve le ifModule
    Autre tuyaux chez Ovh, pour faire marcher cake en php5, il faut enlever le mode gzip (peut etre qu’ils ont supprime ce bug depuis). En gros mon .htaccess sur www ressemble a ca :

    SetEnv PHP_VER 5
    mod_gzip_on No

    Mais le SetEnv ne marche pas pour toutes variables :-(. C“est vrai que OVH est penible mais un truc bien quand meme, ca ne rame pas (enfin pour moi).

  5. J’ai voulu poster en commentaire les url rewrites pour lighttpd mais Textile tranforme complétement le code a cause des asterixes et des chapeaux contenu dans les regexps.
    Les echappements ==notextile== ne fonctionnent pas non plus …

  6. Pour Lighttpd, voila la règle d’url rewrite (A mettre dans le vhost) :

    url.rewrite-once = ( “/(.E)\.(.E)” => “$0”, “/(css|files|img|js|stats)/” => “$0”, “C/([C.]+)$” => “/index.php?url=$1” )

    Il faut remplacer les E par * et les C par ^ dans le code précédent car textile les transformes…

  7. Bonjour à tous,

    après quelques lectures et relecture de tuto relatifs à l’installation de cake php (enfin j’en ai trouvé 2 pour ainsi dire), je ne pige toujours pas comment l’installer.

    Je bosse sous easyphp v1.8, http://127.0.0.1/ est mon répertoire (qui correspond donc à mon www\ avec tous mes _files/, _img/, _inc/, _css/ etc …).

    Ici je dézipe cake php, j’ai donc les dossiers app/, cake/, docs/ .htaccess qui se copient dans mon www/.

    Mais ici je fais quoi, le contenu de index.php fourni lors du dézipage de cake php je le colle dans mon index.php actuel ?

    C’est ce que j’ai fais, j’ai tout un tas d’info sur cake php qui s’affichent alors en haut de page (de ma page normale) et tous mes liens de type index.php?mod=exemple&=exemple aussi restent tels quel.

    Seule info que j’ai tout en haut avec toutes les infos de cake php c’est : Your database configuration file is not present.

    Est ce que quelqu’un pourrait m’aider à résoudre ce shmilblik, je pourrais alors jouir de mes liens au format /exemple/exemple.html

    Vous en remerciant par avance,

    Thomas

  8. @thomas: aïe! fallait pas dézipper sur www/ mais sur un sous répértoire de celui là, car tu vas dysfonctionner easyPHP( enfin du moins, sa page principal). crées un sous répértoire par exemple, mon_truc dans www/, et dézipes cake dedans. Je sais pas si mod_rewrite est activé par défaut dans easyPHP, mais si ce n’est pas le cas, il faut que tu l’active. Normalement dans le httpd.conf, recherches mod_rewrite dans le fichier (ctrl + f) tu vas trouver:

    #LoadModule rewrite_module modules/mod_rewrite.so
    #AddModule mod_rewrite.c

    décommentes ces deux lignes( enlèves les # )
    redémares apache et accèdes à 127.0.0.1/mon_truc/
    si c’est bon, normalement tu dois voir quelque chose qui ressemble à la capture d‘écran dans cet article.
    pour ce qui est de Your database file is not present , c’est normal. Lis l’article sur la configuration pour en savoir plus.

    Amicalement.

  9. Merci beaucoup,

    maintenant j’ai bien quelque chose qui ressemble au screen de cet article, mais concrètement, après je fais quoi ?

    Je mets le contenu du zip dans www/cake/, mon contenu web lui, je le laisse dans www/ ? ou je le met dans le dossier www ?

    Je suis désolé mais j’ai du mal à suivre :/

    Merci pour tout en tout cas

    Thomas

  10. Le contenu web qui était déjà dans le www de easyPHP reste dans www. il y a juste un répertoire de plus, tu l’as appelé cake. le contenu de www/cake/app/webroot/ reste dans www/cake/app/webroot/ y a rien a changé.

  11. bonjour,

    j’ai tenté l’installation de cakephp, mais j’ai qq soucis.

    lorsque j’insère dans mon navigateur l’adresse www.exemple.com/cake/index.php, j’obtiens une page qui m’indique que la connection à la base de données a été effectué correctement et que le fichier de configuration est présent.

    que dois-je faire après ?

    merci

  12. Et pourquoi c’est un problème? c’est normal. Si t’obtiens cette page avec un CSS correct ( comme dans l’image dans cet article ) ça veut dire que c’est bien. faut passer à la configuration maintenant.

  13. Bonjour,
    Je souhaite installé cakePHP sur free.fr. Quelqu’un a-t-il des pistes?

  14. Salut Xavier,
    J’ai réussi à mettre en ligne le blogtutorial de cakephp.org sur un de mes comptes free. Je me suis basé sur le forum suivant : http://groups.google.com/group/Cakephp-fra/browse_thread/thread/5847a06506ddfe17
    Par compte, j’ai des problèmes de CSS, :-(

  15. Bonjour, j’ai un problème sur OVH concernant la mise en ligne de mon site.
    D’une part, lorsque je souhaite afficher mon site :www.example.com, je tombe sur le webroot.
    D’autre part, si jamais je lance www.example.com/index.php, j’arrive sur la bonne page, mais mes liens ne sont pas correct… Pouvez vous m‘éclairer sur ce qu’il faut mettre exactement dans les .htaccess svp?

  16. tres bonnnnnnnnn cour, en attent de vous qlq chose de plus c’est nous expliqué l’utilisation de l’api cakephp et merci

Aide Textile