Rumah >pembangunan bahagian belakang >tutorial php >Penggunaan aplikasi PHP yang mudah dengan Deployer
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):
<code class="language-bash">mv deployer.phar /usr/local/bin/dep chmod +x /usr/local/bin/dep</code>Konfigurasi pelayan:
Selepas mengkloning repositori demo, buat
untuk menentukan langkah -langkah penempatan. Mulakan dengan menentukan pelayan. Pengesahan Nama Pengguna/Kata Laluan Asas:
deploy.php
<code class="language-php">// deploy.php server('digitalocean', '104.131.27.106') ->user($_ENV['staging_server_user']) ->password($_ENV['staging_server_password']);</code>
<code class="language-php">// 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');</code>adalah penting apabila menggunakan peringkat; Jika tidak, ralat berlaku. Nota: Php 7 membolehkan menggabungkan
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
<code class="language-php">// 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');</code>. Sesuaikan jalan jika perlu:
identityFile()
~/.ssh/id_rsa
Deployer menyokong pelbagai kaedah sambungan SSH, memungkiri perintah sistem asli.
<code class="language-php">// deploy.php ->identityFile('path/to/id_rsa', 'path/to/id_rsa.pub', 'pass phrase')</code>
SSH2 Extension:
PHP SSH2 Extension menawarkan alternatif. Pasang dan aktifkannya, kemudian memerlukan pakej herzult/php-ssh
dan tetapkan ssh_type
:
<code class="language-bash">mv deployer.phar /usr/local/bin/dep chmod +x /usr/local/bin/dep</code>
(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()
<code class="language-php">// deploy.php server('digitalocean', '104.131.27.106') ->user($_ENV['staging_server_user']) ->password($_ENV['staging_server_password']);</code>
<code class="language-php">// 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');</code>
Definisi Tugas:
tugas dilaksanakan melalui perintah (mis., dep
). dep deploy:staging
<code class="language-php">// 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');</code>Tugas sampel mungkin memuat naik fail, menjalankan arahan pelayan, dan lain -lain:
<code class="language-php">// deploy.php ->identityFile('path/to/id_rsa', 'path/to/id_rsa.pub', 'pass phrase')</code>kaedah
menambah teks bantuan kepada tugas: desc()
<code class="language-php">// deploy.php set('ssh_type', 'ext-ssh2'); // ...</code>
Organisasi tugas:
memecahkan tugas besar ke dalam yang lebih kecil, yang boleh diguna semula menggunakan dan before
cangkuk: after
<code class="language-yaml"># servers.yml digitalocean: host: 104.131.27.106 user: root identity_file: ~ stage: staging deploy_path: /var/www/</code>
penyebaran sifar-downtime:
Gunakan symlink menunjuk kepada pelepasan terkini dalam direktori current
untuk mengelakkan downtime: releases
<code class="language-php">serverList('servers.yml');</code>
Tugas dan Resipi Biasa:
Deployer menyediakan tugas-tugas biasa dan resipi khusus rangka kerja (Laravel, Symfony, dan lain-lain). Contoh Menggunakan Tugas Biasa:
<code class="language-php">// deploy.php use function Deployer\{server, task, run, set, get, add, before, after, upload}; task('deploy:staging', function() { // ... deployment tasks ... });</code>Bahagian yang tinggal pada resipi dan Soalan Lazim yang ditempatkan diabaikan untuk keringkasan, kerana ia diliputi secukupnya dalam teks asal. Konsep utama dan contoh kod telah diuraikan dan disusun semula untuk kejelasan dan kesimpulan sambil mengekalkan makna dan struktur asal. Imej kekal dalam format dan kedudukan asalnya.
Atas ialah kandungan terperinci Penggunaan aplikasi PHP yang mudah dengan Deployer. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!