Artikel ini telah dikemas kini untuk versi Deployer terkini (pada 26 Mac, 2017).
Automasi aliran kerja pembangunan, termasuk ujian, gaya kod, dan pemeriksaan sistem, adalah amalan biasa. Automasi penempatan, memindahkan versi aplikasi baru ke pengeluaran, sama pentingnya. Kaedah terdiri daripada muat naik FTP manual ke alat yang canggih seperti PHING dan UNDANG -UNDANG LARELV. Artikel ini memperkenalkan Deployer, alat penempatan PHP yang kuat.
Ciri -ciri utama Deployer:
dep
current
rollback
Aplikasi Contoh:
Pemasangan:
Deployer diedarkan sebagai fail phar. Muat turunnya dan beralih ke direktori bin sistem anda untuk akses global (lihat dokumentasi untuk butiran):
mv deployer.phar /usr/local/bin/dep chmod +x /usr/local/bin/dep
Selepas mengkloning repositori demo, buat
untuk menentukan langkah -langkah penempatan. Mulakan dengan menentukan pelayan. Pengesahan Nama Pengguna/Kata Laluan Asas:
deploy.php
// deploy.php server('digitalocean', '104.131.27.106') ->user($_ENV['staging_server_user']) ->password($_ENV['staging_server_password']);
// deploy.php use function Deployer\set; use function Deployer\server; set('default_stage', 'staging'); server('digitalocean', '104.131.27.106') ->user($_ENV['staging_server_user']) ->password($_ENV['staging_server_password']) ->stage('staging') ->env('deploy_path', '/var/www');
pernyataan (default_stage
use
use function Deployer{set, server};
Pengesahan SSH:
Pengesahan Utama SSH disyorkan untuk pengeluaran. (Rujuk panduan persediaan utama SSH jika diperlukan.)
Defaults to
// deploy.php use function Deployer\{set, server}; set('default_stage', 'staging'); server('digitalocean', '104.131.27.106') ->identityFile() ->user($_ENV['staging_server_user']) ->password($_ENV['staging_server_password']) ->stage('staging');
identityFile()
~/.ssh/id_rsa
Deployer menyokong pelbagai kaedah sambungan SSH, memungkiri perintah sistem asli.
// deploy.php ->identityFile('path/to/id_rsa', 'path/to/id_rsa.pub', 'pass phrase')
SSH2 Extension:
PHP SSH2 Extension menawarkan alternatif. Pasang dan aktifkannya, kemudian memerlukan pakej herzult/php-ssh
dan tetapkan ssh_type
:
mv deployer.phar /usr/local/bin/dep chmod +x /usr/local/bin/dep
(nota: herzult/php-ssh
tidak termasuk dalam phar deployer; anda mungkin perlu membina phar tersuai.)
konfigurasi yaml:
pelayan boleh ditakrifkan dalam fail yaml (servers.yml
: serverList()
// deploy.php server('digitalocean', '104.131.27.106') ->user($_ENV['staging_server_user']) ->password($_ENV['staging_server_password']);
// deploy.php use function Deployer\set; use function Deployer\server; set('default_stage', 'staging'); server('digitalocean', '104.131.27.106') ->user($_ENV['staging_server_user']) ->password($_ENV['staging_server_password']) ->stage('staging') ->env('deploy_path', '/var/www');
Definisi Tugas:
tugas dilaksanakan melalui perintah (mis., dep
). dep deploy:staging
// deploy.php use function Deployer\{set, server}; set('default_stage', 'staging'); server('digitalocean', '104.131.27.106') ->identityFile() ->user($_ENV['staging_server_user']) ->password($_ENV['staging_server_password']) ->stage('staging');
// deploy.php ->identityFile('path/to/id_rsa', 'path/to/id_rsa.pub', 'pass phrase')
menambah teks bantuan kepada tugas: desc()
// deploy.php set('ssh_type', 'ext-ssh2'); // ...
Organisasi tugas:
memecahkan tugas besar ke dalam yang lebih kecil, yang boleh diguna semula menggunakan dan before
cangkuk: after
# servers.yml digitalocean: host: 104.131.27.106 user: root identity_file: ~ stage: staging deploy_path: /var/www/
penyebaran sifar-downtime:
Gunakan symlink menunjuk kepada pelepasan terkini dalam direktori current
untuk mengelakkan downtime: releases
serverList('servers.yml');
Tugas dan Resipi Biasa:
Deployer menyediakan tugas-tugas biasa dan resipi khusus rangka kerja (Laravel, Symfony, dan lain-lain). Contoh Menggunakan Tugas Biasa:
// deploy.php use function Deployer\{server, task, run, set, get, add, before, after, upload}; task('deploy:staging', function() { // ... deployment tasks ... });
Atas ialah kandungan terperinci Penggunaan aplikasi PHP yang mudah dengan Deployer. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!