Automatisierung Deployment für PHP Projekte

alex's picture

Grundlegende Gedanken zum Deployment

  • Fehler in PHP lassen sich einfach isolieren
  • Deployment findet über einfache Dateien statt: einfach aufspielen und die Anwendung läuft
  • minimale globale Abhängigkeiten
  • einfache Vervielfältigung der Anwendung durch Kopieren von Dateien
  • keine Notwendigkeit Administratoren zu involvieren
  • Funktionierende Anwendungen funktionieren

Welche Funktionalität benötigt man für ein Deployment?

  • Version Control System Unterstützung
  • Komprimierung
  • Protokollierung
  • Datenübertragung
  • Verschlüsselung für die Sicherheit
  • Schreiben/Änderung von Dateien (Konfigurationsdateien)
  • Paketmanager (deb, rpm, ebuild, pear, ...)/li>
  • Webservices (um Informationen abzufragen)

Mögliche Skripte, Techniken, die für das Deployment eingesetzt werden können:

  • PEAR Channels / PHP_Archive
  • Linux Paket Mananger (RPM, APT, ebuild)
  • Capistrano
  • eigene Shell Skripte (Bash, PHP, Python, ruby, ...)
  • Ant
  • SVN, GIT
  • Anwendungsspezifische Deployment Mechanismen
  • manueller Weg (FTP, SSH) - nicht wirklich empfehlenswert, aber dennoch sehr häufig verwendet.
  • Phar (ab PHP 5.3)

PEAR Channels

  • Stabile und effektive Möglichkeit zur Verteilung/ Verwaltung von Paketen
  • PEAR kommt mit der Standardinstallation von PHP
  • Standartisiert durch das PHP PEAR Projekt
  • einfache Anwendung
  • erlaubt komplexe Abhängigkeiten

Unsere Buchempfehlung

Das folgende Buch befasst sich ausführlicher mit dem hier genannten Thema. Wenn Du mehr über Kundenorientierung durch Quality Function Deployment: Systematisches Entwickeln von Produkten und Dienstleistungen erfahren willst, empfehlen wir Dir diesen Artikel.

Linux Paket Manager

Für die Auslieferung von PHP Projekten eignen sich auch Linux Paket Manager, wie Deb Pakete (Debian, Ubuntu), RPMs (Redhat, Centos, SuSE) oder ebuilds (Gentoo). Alle Paketmanager sind in der Lage Abhängigkeiten unter den einzelnen Paketen zu überprüfen. Mit den Einsatz von Repositories, mit deren man die Pakete zentral verteilen kann, eignet sich deren Einsatz auch besonders gut dafür, wenn das PHP Projekt mehrere Installationen benötigt (z.B. in einem Cluster).
Vorteile

  • Paket Manager ist vorinstalliert
  • mächtiger Funktionsumfang

Nachteile

  • Nicht für Windows geeignet
  • Distributionsabhängig

Capistrano

Capistrano ist in und für Ruby geschrieben, eignet sich aber auch für das Deployment von PHP Anwendungen.

Phar (ab PHP 5.3)

Ein Phar Archiv ist ein ausführbarer PHP Code, der mit einer Archivdatei (mit den Projektdataien) ergänzt werden kann. Dieses Konzept ist aus der Java Welt schon längst im Einsatz (dort werden diese Dateien JAR-Dateien genannt).
Phar-Arichive lassen sich ab PHP Version 5.3 erzeugen, wenn in der php.ini die Einstellung:

phar.readonly = off

gesetzt wird (standardmäßig steht sie auf "on").

Alle hier aufgeführten Informationen / Dokumentationen sind nur als Denkanstoß gedacht und wurden mit großer Sorgfalt erarbeitet. Es besteht jedoch kein Anrecht auf Vollständigkeit / Richtigkeit. Der Autor kann für eventuell verbliebene fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Gleiches gilt für entstandene Schäden bei unsachgemäßer Ausführung! Im Zweifelsfall immer einen Fachmann mit der Durchführung beauftragen!

Gerne bieten wir Ihnen hierfür unsere Consulting Dienste an. © Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten.