Déployer des applications CakePHP sur AppFog: un guide complet
Ce guide, initialement publié sur CloudSpring, de détails déploiement d'une application CakePHP à AppFog, une plate-forme en tant que service (PaaS), tout en mettant l'accent sur les meilleures pratiques pour la structure des applications PHP. Nous allons créer une application simple de prise de notes, puis l'organiser pour un déploiement et une maintenance optimaux.
Concepts clés:
Pour commencer avec appfog:
AppFog, basé sur Cloud Foundry, prend en charge plusieurs langages de programmation et permet le déploiement entre divers fournisseurs d'infrastructures. Inscrivez-vous à un compte gratuit (nécessite un e-mail et un mot de passe) offrant 2 Go de RAM, 10 services (100 Mo chacun) et une limite de transfert de données de 50 Go. Vous pouvez également migrer votre application vers n'importe quel service compatible avec une fonderie cloud.
Création de l'application locale:
http://fognotes.local
), en définissant la racine du document sur app/webroot
. fognotes_local
). data
avec des sous-répertoires config
et logs
. Déplacer app/tmp
dans data
. Assurez-vous que le répertoire data/logs
est écrite par le serveur Web. ln -s lib/Cake/Console/cake cake
Votre structure de répertoire devrait ressembler à ceci:
<code>FogNotes/ app/ data/ config/ logs/ tmp/ cache/ logs/ sessions/ tests/ lib/ Cake/ plugins/ vendors/ cake index.php</code>
Cette structure sépare le code d'application (app
), le framework (lib/Cake
), les bibliothèques (plugins
, vendors
) et les données / paramètres (data/*
).
Modifier app/webroot/index.php
pour définir le répertoire temporaire personnalisé:
<?php // Custom TMP directory if (!defined('TMP')) { define('TMP', ROOT . DS . 'data' . DS . 'tmp' . DS); } ?>
Ensuite, ajustez la configuration de la base de données. Copier app/Config/database.php.default
à app/Config/database.php
et remplacer DATABASE_CONFIG
par:
<code>FogNotes/ app/ data/ config/ logs/ tmp/ cache/ logs/ sessions/ tests/ lib/ Cake/ plugins/ vendors/ cake index.php</code>
dans app/Config/bootstrap.php
, ajoutez ces lignes (après Configure::write('Dispatcher.filters'...
) pour enregistrer le chemin data/config
:
<?php // Custom TMP directory if (!defined('TMP')) { define('TMP', ROOT . DS . 'data' . DS . 'tmp' . DS); } ?>
et à la fin de app/Config/bootstrap.php
:
<?php class DATABASE_CONFIG { public $default = null; public $test = null; public $env = null; function __construct() { if (!defined('APP_ENV')) return false; $this->env = APP_ENV; $config = Configure::read('Database.config'); if (!is_array($config)) return false; foreach ($config as $name => $data) $this->$name = $data; if (empty($config['default']) || empty($this->default)) return false; } } ?>
Configure::load()
Recherche data/config
pour un fichier correspondant à l'environnement (par exemple, local.php
, prod.php
). Un échantillon local.php
est fourni dans l'article d'origine.
Déploiement sur appfog:
fognotes_prod
). APP_ENV
sur "prod". data/config/prod.php
, Extraire les paramètres de la base de données à partir de la variable d'environnement VCAP_SERVICES
(comme détaillé dans l'article d'origine). af
(installer les instructions fournies dans AppFog) pour pousser votre code local (af update FogNotes
). Après le déploiement, importez le schéma de base de données (data/config/notes.sql
) dans votre base de données distante à l'aide d'un tunnel (af tunnel
). Ensuite, utilisez la commande Bake de CakePHP pour générer les modèles, les vues et les contrôleurs de l'application. Enfin, mettez à jour le routage pour pointer la page d'accueil vers vos notes. Redéployer en utilisant af update FogNotes
.
L'article d'origine comprend également les FAQ couvrant divers aspects du déploiement CakePHP sur AppFog, y compris le dépannage, la mise à l'échelle, la sécurité et la surveillance.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!