Bereitstellen von CakePHP -Anwendungen auf Appfog: Eine umfassende Anleitung
Dieser Leitfaden, der ursprünglich auf Cloudspring veröffentlicht wurde, werden Details mit einer CakePHP -Anwendung auf Appfog, einer Plattform als Dienst (PAAs), bereitgestellt und dabei die besten Praktiken für die PHP -Anwendungsstruktur betonen. Wir erstellen eine einfache Notizanwendung und organisieren sie dann für eine optimale Bereitstellung und Wartung.
Schlüsselkonzepte:
Erste Schritte mit Appfog:
Appfog, basierend auf Cloud Foundry, unterstützt mehrere Programmiersprachen und ermöglicht die Bereitstellung über verschiedene Infrastrukturanbieter. Melden Sie sich für ein kostenloses Konto an (erfordert E -Mail und Passwort), das 2 GB RAM, 10 Dienste (jeweils 100 MB) und ein Datenübertragungslimit von 50 GB anbietet. Sie können Ihre App auch auf jeden Cloud-Gießerei-kompatiblen Dienst migrieren.
Erstellen der lokalen Anwendung:
http://fognotes.local
) zugänglich und setzen Sie das Dokument -Root auf app/webroot
. fognotes_local
). data
Verzeichnis mit Unterverzeichnissen config
und logs
. Bewegen Sie app/tmp
in data
. Stellen Sie sicher, dass das Verzeichnis data/logs
vom Webserver beschreibbar ist. ln -s lib/Cake/Console/cake cake
Ihre Verzeichnisstruktur sollte Folgendes ähneln:
<code>FogNotes/ app/ data/ config/ logs/ tmp/ cache/ logs/ sessions/ tests/ lib/ Cake/ plugins/ vendors/ cake index.php</code>
Diese Struktur trennt den Anwendungscode (app
), Framework (lib/Cake
), Bibliotheken (plugins
, vendors
) und Daten/Einstellungen (data/*
).
modifizieren Sie app/webroot/index.php
, um das benutzerdefinierte temporäre Verzeichnis zu definieren:
<?php // Custom TMP directory if (!defined('TMP')) { define('TMP', ROOT . DS . 'data' . DS . 'tmp' . DS); } ?>
Passen Sie als nächstes die Datenbankkonfiguration an. Kopieren Sie app/Config/database.php.default
nach app/Config/database.php
und ersetzen Sie DATABASE_CONFIG
durch:
<code>FogNotes/ app/ data/ config/ logs/ tmp/ cache/ logs/ sessions/ tests/ lib/ Cake/ plugins/ vendors/ cake index.php</code>
In app/Config/bootstrap.php
fügen Sie folgende Zeilen hinzu (nach Configure::write('Dispatcher.filters'...
), um den data/config
Pfad zu registrieren:
<?php // Custom TMP directory if (!defined('TMP')) { define('TMP', ROOT . DS . 'data' . DS . 'tmp' . DS); } ?>
und am Ende von 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()
sucht data/config
nach einer Datei, die der Umgebung entspricht (z. B. local.php
, prod.php
). Im ursprünglichen Artikel wird ein Beispiel local.php
angegeben.
Bereitstellung für Appfog:
fognotes_prod
). APP_ENV
auf "prodieren" fest. data/config/prod.php
, Datenbankeinstellungen aus der Umgebungsvariablen VCAP_SERVICES
(wie im ursprünglichen Artikel beschrieben). af
(installieren Sie Anweisungen in Appfog), um Ihren lokalen Code (af update FogNotes
) zu drücken. Importieren Sie nach der Bereitstellung das Datenbankschema (data/config/notes.sql
) mit einem Tunnel (af tunnel
) in Ihre Remote -Datenbank. Verwenden Sie dann den Bake -Befehl cakePhp, um die Modelle, Ansichten und Controller der Anwendung zu generieren. Aktualisieren Sie schließlich das Routing, um die Startseite auf Ihre Notizen zu verweisen. Wiedererlangung von af update FogNotes
.
Der ursprüngliche Artikel enthält auch FAQs, die verschiedene Aspekte der CakePHP -Bereitstellung auf Appfog abdecken, einschließlich Fehlerbehebung, Skalierung, Sicherheit und Überwachung.
Das obige ist der detaillierte Inhalt vonPHP Master | Stellen Sie CakePhp -Apps auf Appfog richtig ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!