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

Penggunaan aplikasi PHP yang mudah dengan Deployer

Joseph Gordon-Levitt
Lepaskan: 2025-02-15 08:54:12
asal
937 orang telah melayarinya

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):

mv deployer.phar /usr/local/bin/dep
chmod +x /usr/local/bin/dep
Salin selepas log masuk
Salin selepas log masuk
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:
// deploy.php

server('digitalocean', '104.131.27.106')
    ->user($_ENV['staging_server_user'])
    ->password($_ENV['staging_server_password']);
Salin selepas log masuk
Salin selepas log masuk

// 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');
Salin selepas log masuk
Salin selepas log masuk
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
// 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');
Salin selepas log masuk
Salin selepas log masuk
. Sesuaikan jalan jika perlu:

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')
Salin selepas log masuk
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk

(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()

// deploy.php

server('digitalocean', '104.131.27.106')
    ->user($_ENV['staging_server_user'])
    ->password($_ENV['staging_server_password']);
Salin selepas log masuk
Salin selepas log masuk
// 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');
Salin selepas log masuk
Salin selepas log masuk

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');
Salin selepas log masuk
Salin selepas log masuk
Tugas sampel mungkin memuat naik fail, menjalankan arahan pelayan, dan lain -lain:

// deploy.php
    ->identityFile('path/to/id_rsa', 'path/to/id_rsa.pub', 'pass phrase')
Salin selepas log masuk
Salin selepas log masuk
kaedah

menambah teks bantuan kepada tugas: desc()

// deploy.php
set('ssh_type', 'ext-ssh2');
// ...
Salin selepas log masuk

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/
Salin selepas log masuk

penyebaran sifar-downtime:

Gunakan

symlink menunjuk kepada pelepasan terkini dalam direktori current untuk mengelakkan downtime: releases

serverList('servers.yml');
Salin selepas log masuk

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 ...
});
Salin selepas log masuk
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 Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan