Viele PHP-Webanwendungen folgen bei Installation und Upgrade diesem Modell:
- Un-tar eine Quelle Teerball.
- Richten Sie Apache auf die Quelle.
- Navigieren Sie mit einem Webbrowser zur Homepage.
- Durchsuchen Sie mehrere Einrichtungswebseiten (z. B. Überprüfen, ob Bibliotheken vorhanden sind, Fragen nach Informationen zur Datenbankverbindung, Erstellen oder Aktualisieren des Datenbankschemas usw.).
- Der Benutzer benennt ein
install/
Verzeichnis in ein anderes um, damit die Anwendung weiß, dass es installiert wurde.
Ich sehe keine (einfache) Möglichkeit, daraus ein Debian-Paket zu erstellen, ohne dass der Benutzer, der das Paket installiert, viele der obigen manuellen Schritte durchläuft. Beachten Sie, dass ich kein Entwickler der Anwendung bin und daher keine direkten Änderungen an der Funktionsweise der Anwendungsinstallation vornehmen kann.
Was ist der typische Ansatz zum Verpacken einer solchen Anwendung?
web-applications
packages
rlandster
quelle
quelle
Antworten:
Ich habe mehrere PHP-Webanwendungen erstellt, die ich (intern) über Debian-Pakete verteile. Dies war dank Skripten (hier vereinfacht) zur Automatisierung des Prozesses unkompliziert:
create_package.sh :
finish_package.sh :
Kontrolle :
All dies ist ziemlich einfach und funktioniert gut für die interne Paketverteilung, die ich mache. Ich bin mir nicht sicher, ob es für die globale Distribution ausreicht, aber es könnte ähnlich sein, wie die Ubuntu- und Debian-Leute es machen, wenn sie Quellpakete (wahrscheinlich als Tarballs mit Installationsskripten verteilt) nehmen und .deb-Pakete für sie erstellen.
Ich denke, das kann Ihre fünf Punkte problemlos ansprechen:
Das Debian-Paket wird bei der Installation automatisch an der richtigen Stelle auf dem Zielsystem dekomprimiert.
Sie können das Debian-Paket Apache automatisch konfigurieren lassen. Einige Pakete wie MySQL und Apache haben "conf.d" -Verzeichnisse in / etc, in die Sie Konfigurationsdateien ablegen können. Das ist das Ideal. Ihr Paketskript kann ein Verzeichnis debian / etc / apache2 / conf.d erstellen und eine Konfigurationsdatei darin kopieren. Es wird auf dem Zielsystem installiert und Sie können Apache in einem Skript namens postinst neu starten, das Sie in debian / DEBIAN platzieren.
Dies ist wahrscheinlich unvermeidbar, wenn benutzerdefinierte Informationen eingegeben werden müssen. Viele bevorzugen jedoch Systeme, die ohne Konfiguration "out of the box" ausgeführt werden können.
Das Vorhandensein der Bibliothek kann gewährleistet werden, indem die entsprechenden Paketabhängigkeiten in die Steuerdatei aufgenommen werden. Informationen zur Datenbankverbindung können entweder standardmäßig installiert oder vom Administrator auf den Konfigurationsseiten abgefragt werden. Nach der Eingabe sollten die Konfigurationsseiten idempotente Datenbankmigrationsskripts aufrufen, um das Datenbankschema zu aktualisieren. Mehrere Web-Frameworks (wie Django) machen dies einfach.
Der Code hinter den Konfigurationsseiten sollte das System als konfiguriert markieren, nicht den Administrator.
Ein Ansatz, den ich manchmal verwende, besteht darin, die Installation der Konfiguration von der Installation der App zu trennen, indem sie separate Pakete erstellen. Ich kann dann mehrere verschiedene Konfigurationspakete (Release, Entwicklung usw.) haben, die ich nach Belieben installieren kann. Diese Entkopplung ist auch deshalb von Vorteil, weil Konfiguration und App separat weiterentwickelt werden können, ohne dass sie sich bei einer Neuinstallation gegenseitig stören.
quelle