Mit der kontinuierlichen Weiterentwicklung der Internettechnologie nehmen Umfang und Komplexität von Projekten weiter zu, und die Methode der manuellen Bereitstellung von Projekten kann den Anforderungen einer schnellen Iteration nicht mehr gerecht werden. Um die Effizienz zu verbessern und menschliche Fehler zu reduzieren, sind automatisierte Bereitstellungstools nach und nach zu einem integralen Bestandteil des Entwicklungsprozesses geworden. In diesem Artikel wird erläutert, wie Sie mit Deployer die automatische Bereitstellung und Veröffentlichung von PHP-Projekten realisieren.
Deployer ist ein automatisiertes Open-Source-Bereitstellungstool auf Basis von PHP. Es bietet eine einfache und leistungsstarke Befehlszeilenbetriebsmethode, mit der Entwickler die Bereitstellung und Veröffentlichung von Projekten schnell abschließen können. Es unterstützt eine Vielzahl von Bereitstellungsmethoden, darunter Git, FTP, SFTP usw., und seine Funktionen können durch Plug-Ins erweitert werden, was es sehr flexibel macht.
Bevor Sie es verwenden, müssen Sie Deployer in Ihrer lokalen Umgebung installieren. Die Installationsmethode ist sehr einfach. Sie können Composer verwenden, um sie als Projektabhängigkeit zu installieren:
composer require deployer/deployer --dev
Erstellen Sie nach Abschluss der Installation eine Datei mit dem Namen „deploy.php“ im Stammverzeichnis des Projekts, um Bereitstellungskonfigurationsskripts zu schreiben.
Das folgende Beispiel zeigt eine grundlegende Bereitstellungskonfigurationsdatei:
require 'recipe/common.php';
// Projektname
set('application', 'my_project');
// Projektlageradresse
set('repository', 'git@github.com:username/my_project.git');
// Stellen Sie den Zielserver ein
server('production', 'production_server_ip')
->user('username')
->identityFile('~/.ssh/id_rsa')
->set('deploy_path', '/var/www/my_project');
// Aufgaben, die nach der Bereitstellung ausgeführt werden müssen
task('deploy:custom_task', function () {
run('php artisan migrate');
});
// Starten Sie den Dienst nach Abschluss der Bereitstellung neu
after('deploy', 'deploy:restart');
// Konfigurieren Sie die zu veröffentlichenden Dateien und Verzeichnisse
set('shared_files', ['.env']);
set('shared_dirs', ['storage']);
// Konfigurieren Sie Dateien und Verzeichnisse, um sie auszuschließen
set('exclude', ['.git', 'node_modules', 'tests']);
// Umgebungsvariablen festlegen
set('env', [
'APP_ENV' => 'production',
'APP_DEBUG' => 'false',
]);
// Konfigurieren Sie die Anzahl der Releases, die Sie aufbewahren sollen
set('keep_releases', 5);
In der obigen Konfiguration definieren wir die grundlegenden Informationen des Projekts, die Lageradresse, den Zielserver und die Aufgaben, die während des Bereitstellungsprozesses ausgeführt werden müssen. Durch diese Konfigurationen kann der Deployer den gesamten Prozess vom Code-Pulling bis zum Neustart des Dienstes automatisch abschließen.
Wenn die Konfigurationsdatei fertig ist, können Sie das von Deployer bereitgestellte Befehlszeilentool verwenden, um Bereitstellungsvorgänge durchzuführen. Zum Beispiel:
# Stellen Sie das Projekt auf dem Zielserver ein
dep deploy production
# Rollen Sie zur vorherigen Versionsversion zurück
dep rollback production
# Räumen Sie abgelaufene Veröffentlichungen auf
dep cleanup
Diese Befehle können uns dabei helfen, gängige Bereitstellungsvorgänge schnell abzuschließen, z. B. die Freigabe des neuesten Codes für die Produktionsumgebung, die Durchführung einer Datenbankmigration, das Zurücksetzen historischer Versionen und das Bereinigen alter Versionsdateien.
Mit Deployer können wir den automatisierten Bereitstellungs- und Freigabeprozess von PHP-Projekten problemlos realisieren. Dies verkürzt nicht nur die Bereitstellungszeit erheblich, sondern verringert auch die mit manuellen Vorgängen verbundenen Risiken. Für Projekte, die häufige Updates und Releases erfordern, ist Deployer zweifellos eine effiziente und stabile Lösung. Es wird empfohlen, dass Entwickler versuchen, Deployer in tatsächlichen Projekten zu verwenden, um die Entwicklungs-, Betriebs- und Wartungseffizienz des Teams weiter zu verbessern.