CakePHP Deployment
Einleitung
Um PHP Anwendungen auf einem Web-Server bereitzustellen, gibt es einige Möglichkeiten. Die meisten dieser Tools sind recht aufwendig in der Konfiguration oder schwierig zu bedienen.
Eine einfache Alternative, speziell für CakePHP, möchte ich hier vorstellen.
Voraussetzungen
- CakePHP ab Version 1.3
- Remotezugang via FTP
- Eine Konsole am lokalen Rechner mit konfigurierter cake-shell
Los gehts..
1. Installation
git://github.com/sassman/deployment_shell.git
den Code in das Verzeichnis “app/vendors/shells/” entpacken.
2. Konfiguration erstellen
2.1 Konfiguration interaktiv erstellen
in cake bake shell -Art kann die Konfiugration interaktiv erstellt werden.
cake deploy create_deployment_config
2.2 Konfiguration manuell erstellen
/app/config/deployment.php:
<?php
class AppDeployment extends BasicDeployment
{
var $default = array(
'source' => 'File',
'destination' => array('Ftp' => array(
'host' => 'yourftp_hostname',
'login' => 'username',
'password' => 'password',
'port' => '21',
'timeout' => '60',
'path' => '/html/app/beta/your_app'
)),
'exclusions' => array(
'files/attachments*',
'core.php'
)
);
var $live = array(
'source' => 'File',
'destination' => array('Ftp' => array(
'host' => 'your_ftphostname',
'login' => 'username',
'password' => 'password',
'port' => '21',
'timeout' => '60',
'path' => '/html/apps/your_app'
)),
'exclusions' => array(
'files/attachments*',
'/cake/',
'core.php'
)
);
}
?>3. First Run
eine Konsole öffnen und in den /app Ordner ihrer Anwendung wechseln.
cake deploy
führt das Deployment mittels Default-Konfiguration aus.
und
cake deploy live
führt das Deployment mittels “live” Konfiguration aus.
auf diese Weise können, beliebig viele , Deployment-Konfigurationen angelegt werden.
4. Bemerkungen
Das Tracken der übertragenen Dateien, erfolgt über eine sha1 checksumme der Datei und wird im Kontext der Deployment-Konfiguration abgespeichert. Dadurch erhält jede Deployment-configuration ihre eingene Update-Datei-Liste.



August 3rd, 2011 at %H:%M
Are there any plans for further development (ssh/sftp)?