CakePHP est rapide et facile à installer. Les conditions minimum requises sont un serveur web et une copie de CakePHP, c’est tout! Bien que ce manuel se focalise principalement sur la configuration avec Apache (parce que c’est le plus utilisé couramment), vous pouvez configurer CakePHP pour lancer une diversité de serveurs web tels que lighttpd ou Microsoft IIS.
HTTP Server. Par exemple: Apache. mod_rewrite est préférable, mais en aucun cas nécessaire.
PHP 5.3.0 ou supérieur (La version 2.6 de CakePHP et les versions inférieures supportent PHP 5.2.8 et supérieur). La version 2.8.0 de CakePHP et les versions supérieures supportent PHP 7. Pour utiliser une version PHP supérieure à 7.1, vous aurez sans doute besoin d’installer mcrypt avec PECL. Consultez Security pour plus d’informations.
Techniquement, un moteur de base de données n’est pas nécessaire, mais nous imaginons que la plupart des applications vont en utiliser un. CakePHP supporte une diversité de moteurs de stockage de données:
MySQL (4 ou plus)
PostgreSQL
Microsoft SQL Server
SQLite
Note
Tous les drivers intégrés requièrent PDO. Vous devez vous assurer que vous avez les bonnes extensions PDO installées.
CakePHP est licencié sous la licence MIT. Cela signifie que vous êtes libre de modifier, distribuer et reproduire le code source sous la condition que les informations de copyright restent intactes. Vous êtes aussi libres d’incorporer CakePHP dans toute code source d’application commerciale ou fermée.
Il y a deux façons d’obtenir une copie récente de CakePHP. Vous pouvez soit télécharger une copie archivée de (zip/tar.gz/tar.bz2) à partir du site web principal, soit faire un check out du code sur dépôt de git.
Pour télécharger la dernière version majeure de CakePHP, visitez le site web principal https://cakephp.org et suivez le lien « Télécharger maintenant ».
Toutes les versions actuelles de CakePHP sont hébergées sur Github. Github héberge CakePHP lui-même ainsi que plusieurs autres plugins pour CakePHP. Les versions de CakePHP sont disponibles sur Téléchargements Github.
Sinon, vous pouvez obtenir du code frais avec tous les correctifs de bug et à jour des améliorations de dernière minute. Celui-ci peut être accessible à partir de GitHub en clonant le répertoire de Github
git clone -b 2.x git://github.com/cakephp/cakephp.git
CakePHP utilise le répertoire app/tmp
pour un certain nombre d’opérations.
Les descriptions de Model, les vues mises en cache, et les informations de
session en sont juste quelques exemples.
De même, assurez-vous que le répertoire app/tmp
et tous ses sous-répertoires
dans votre installation cake sont en écriture pour l’utilisateur du serveur web.
Un problème habituel est que les répertoires app/tmp et les sous-répertoires doivent être accessible en écriture à la fois pour le serveur web et et pour l’utilisateur des lignes de commande. Sur un système UNIX, si votre serveur web est différent à partir de l’utilisateur en ligne de commande, vous pouvez lancer les commandes suivantes juste une fois dans votre projet pour vous assurer que les permissions sont bien configurées:
HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1`
setfacl -R -m u:${HTTPDUSER}:rwx app/tmp
setfacl -R -d -m u:${HTTPDUSER}:rwx app/tmp
Configurer CakePHP est aussi simple que de le flanquer dans le document root de votre serveur web, ou aussi complexe et flexible que vous le souhaitez. Cette section couvrira les trois types principaux d’installation de CakePHP: développement, production, et avancé.
Développement: Facile à mettre en oeuvre, mais les URLs de l’application contiennent le nom du répertoire d’installation de CakePHP et c’est moins sécurisé.
Production: Nécessite d’être habilité à configurer le Document Root du serveur, URLs propres, très sécurisé.
Avancé: Avec un peu de configuration, vous permet de placer les répertoires clés de CakePHP à différents endroits du système de fichiers, avec la possibilité de partager un seul répertoire de la librairie centrale CakePHP entre plusieurs applications.
Une installation « développement » est la méthode la plus rapide pour lancer
CakePHP. Cet exemple vous aidera à installer une application CakePHP et à la
rendre disponible à l’adresse http://www.example.com/cake_2_0/. Nous
considérons pour les besoins de cet exemple que votre document root pointe sur
/var/www/html
.
Décompressez le contenu de l’archive CakePHP dans /var/www/html
. Vous avez
maintenant un dossier dans votre document root, nommé d’après la version que
vous avez téléchargée (par exemple : cake_2.0.0). Renommez ce dossier en
« cake_2_0 ». Votre installation « développement » devrait ressembler à quelque
chose comme cela dans votre système de fichiers:
/var/www/html/
cake_2_0/
app/
lib/
plugins/
vendors/
.htaccess
index.php
README
Si votre serveur web est configuré correctement, vous devriez trouver maintenant votre application CakePHP accessible à l’adresse http://www.exemple.com/cake_2_0/.
Si vous développez un certain nombre d’applications il peut sembler être sensé
de partager le même coeur de CakePHP. Il y a peu de façon d’accomplir cela.
Souvent, le plus facile est d’utiliser le include_path
de PHP. Pour
commencer, copiez CakePHP dans un répertoire. Pour cet exemple, nous utiliserons
/home/mark/projects
:
git clone -b 2.x git://github.com/cakephp/cakephp.git /home/mark/projects/cakephp
Cela copiera CakePHP dans votre répertoire /home/mark/projects
. Si vous ne
voulez pas utiliser git, vous pouvez télécharger un zipball et les étapes
restantes seront les mêmes. Ensuite, vous devrez localiser et modifier votre
php.ini
. Sur les systèmes *nix, il se trouve souvent dans
/etc/php.ini
, mais en utilisant php -i
et en regardant “Loaded
Configuration File” (Fichier de Configuration Chargé). Une fois que
vous avez trouvé le bon fichier ini, modifier la configuration de
include_path
pour inclure /home/mark/projects/cakephp/lib
. Un exemple
ressemblerait à cela:
include_path = .:/home/mark/projects/cakephp/lib:/usr/local/php/lib/php
Après avoir redémarré votre serveur web, vous devriez voir les changements dans
phpinfo()
.
Note
Si vous êtes sur Windows, les chemins d’inclusion sont séparés par des ; au lieu de :
Une fois que vous avez configuré votre include_path
, vos applications
devraient être capable de trouver automatiquement CakePHP.
Une installation « production » est une façon plus flexible de lancer CakePHP.
Utiliser cette méthode permet à tout un domaine d’agir comme une seule
application CakePHP. Cet exemple vous aidera à installer CakePHP n’importe où
dans votre système de fichiers et à le rendre disponible à l’adresse :
http://www.exemple.com. Notez que cette installation demande d’avoir les droits
pour modifier le DocumentRoot
sur le serveur web Apache.
Décompressez les contenus de l’archive CakePHP dans un répertoire de votre choix. Pour les besoins de cet exemple, nous considérons que vous avez choisi d’installer CakePHP dans /cake_install. Votre installation de production devrait ressembler à quelque chose comme ceci dans votre système de fichiers:
/cake_install/
app/
webroot/ (ce répertoire est défini comme répertoire
``DocumentRoot``)
lib/
plugins/
vendors/
.htaccess
index.php
README
Les développeurs utilisant Apache devraient régler la directive
DocumentRoot
pour le domaine à:
DocumentRoot /cake_install/app/webroot
Si votre serveur web est configuré correctement, vous devriez maintenant accéder à votre application CakePHP accessible à l’adresse : http://www.exemple.com.
Ok, voyons voir CakePHP en action. Selon la configuration que vous utilisez, vous pouvez pointer votre navigateur vers http://exemple.com/ ou http://exemple.com/cake_install/. A ce niveau, vous serez sur la page home par défaut de CakePHP, et un message qui vous donnera le statut de la connexion de votre base de données courante.
Félicitations! Vous êtes prêt à créer votre première application CakePHP.
Cela ne fonctionne pas? Si vous avez une erreur liée au timezone de PHP,
décommentez la ligne dans app/Config/core.php
:
/**
* Décommentez cette ligne et corrigez votre serveur de timezone pour régler
* toute erreur liée à la date & au temps.
*/
date_default_timezone_set('UTC');