Rumah >pembangunan bahagian belakang >tutorial php >Penggunaan aplikasi PHP yang mudah dengan Deployer

Penggunaan aplikasi PHP yang mudah dengan Deployer

Joseph Gordon-Levitt
Joseph Gordon-Levittasal
2025-02-15 08:54:12946semak imbas

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.

Easy Deployment of PHP Applications with Deployer

Ciri -ciri utama Deployer:

    Deployer adalah alat berasaskan PHP yang mengautomasikan aplikasi aplikasi PHP. Ia menyokong pengesahan SSH, membolehkan menetapkan pelayan penempatan, dan menggunakan arahan
  • untuk melaksanakan tugas yang ditetapkan. dep
  • penyebaran sifar-downtime dicapai dengan menguruskan siaran dan menghubungkan akar pelayan ke direktori
  • yang mewakili pelepasan terkini. Ini menghapuskan keperluan untuk mod penyelenggaraan pelayan semasa penyebaran. current
  • Tugas pra-dibina memenuhi keperluan aplikasi PHP yang biasa, dan resipi pra-konfigurasi wujud untuk kerangka popular (Laravel, Symfony, Yii, Zend).
  • Penyebaran atom memastikan konsistensi aplikasi, walaupun penggunaan terganggu. Tugas terbina dalam
  • membolehkan kembali kepada siaran terdahulu. rollback

Aplikasi Contoh: Demonstrasi menggunakan aplikasi dari artikel sebelumnya, yang dikerahkan ke titisan DigitalOcean. Kod sumber boleh didapati di GitHub (pautan yang ditinggalkan untuk keringkasan, kerana ia tidak disediakan dalam teks asal).

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

Tentukan jenis pelayan (pementasan, pengeluaran) untuk menyasarkan tugas ke persekitaran tertentu:
<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 () dan dimuat menggunakan 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn