Une fois que votre application est terminée, ou même avant que vous souhaitiez la déployer. Il y a quelques choses que vous devriez faire quand vous déployez une application CakePHP.
Si vous sortez votre application dans la nature, il est bon de vous assurer
qu’elle n’a pas de fuites. Allez voir
Security (Sécurité) pour vous sécuriser contre
les attaques CSRF, la falsification de champ de formulaire, etc… Utiliser
Validation des Données, et/ou Assainissement des Données (Data Sanitization)
est aussi une bonne idée, pour protéger votre base de données et aussi contre
les attaques XSS. Vérifiez que seul votre répertoire webroot
est visible
publiquement, et que vos secrets (comme le salt de votre app, et les clés de
sécurité) sont privés et uniques aussi!
Configurer le document root correctement dans votre application est aussi
une étape importante pour garder votre code sécurisé et votre application
plus sûre. Les applications CakePHP devraient avoir le document root configuré
au répertoire app/webroot
de l’application. Cela rend les fichiers de
l’application et de configuration inaccessibles via une URL.
Configurer le document root est différent selon les webserveurs. Regardez
la documentation URL Rewriting pour une
information sur la spécificité de chaque webserveur.
Dans tous les cas, vous devez définir le document de l’hôte/domaine virtuel
pour qu’il soit app/webroot/
. Cela retire la possibilité que des fichiers
soient exécutés en-dehors du répertoire webroot.
Mettre à jour core.php, spécialement la valeur de debug
est extrêmement
important. Mettre debug = 0 désactive un certain nombre de fonctionnalités de
développement qui ne devraient jamais être exposées sur internet. Désactiver
le debug change les types de choses suivantes:
Les messages de Debug, créés avec pr()
et debug()
sont désactivés.
Les caches du Coeur de CakePHP sont flushés tous les 999 jours, au lieu de toutes les 10 secondes en développement.
Les vues d’Erreur sont moins informatives, et renvoient des messages génériques d’erreur à la place.
Les Erreurs ne sont pas affichées.
Les traces de pile d’Exception sont désactivées.
En plus des éléments ci-dessus, beaucoup de plugins et d’extensions
d’application utilisent debug
pour modifier leur comportement.
Vous pouvez créer une variable d’environnement pour définir le niveau de debug dynamiquement entre plusieurs environnements. Cela va éviter de déployer une application avec debug > 0 et vous permet de ne pas avoir à changer de niveau de debug chaque fois avant de déployer vers un environnement de production.
Par exemple, vous pouvez définir une variable d’environnement dans votre configuration Apache:
SetEnv CAKEPHP_DEBUG 2
Et ensuite vous pouvez définir le niveau de debug dynamiquement dans
core.php
:
if (getenv('CAKEPHP_DEBUG')) {
Configure::write('debug', 2);
} else {
Configure::write('debug', 0);
}
Comme la gestion des éléments statiques, comme les images, le Javascript et les fichiers CSS des plugins à travers le Dispatcher est incroyablement inefficace, il est chaudement recommandé de les symlinker pour la production. Par exemple comme ceci:
ln -s app/Plugin/YourPlugin/webroot/css/yourplugin.css app/webroot/css/yourplugin.css