Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penggunaan automatik dan keluaran projek PHP melalui Deployer

Penggunaan automatik dan keluaran projek PHP melalui Deployer

WBOY
WBOYasal
2023-07-13 09:43:361017semak imbas

Penyerahan dan pelepasan projek PHP secara automatik melalui Deployer

Dengan perkembangan teknologi Internet, skala pembangunan perisian sentiasa berkembang, dan penggunaan serta pelepasan projek juga telah menjadi proses yang sangat membosankan dan memakan masa. Untuk menyelesaikan masalah ini, pembangun secara beransur-ansur mula menggunakan alatan penggunaan automatik untuk memudahkan dan mempercepatkan proses penggunaan projek. Dalam artikel ini, saya akan memperkenalkan cara menggunakan Deployer untuk melaksanakan penggunaan automatik dan keluaran projek PHP.

Deployer ialah alat sumber terbuka berdasarkan PHP, yang menyediakan alatan baris perintah yang ringkas dan berkuasa untuk membantu pembangun menggunakan dan mengeluarkan projek mereka secara automatik. Deployer menyokong berbilang kaedah penggunaan, termasuk FTP, SFTP, Git, dsb., dan juga menyediakan banyak pemalam untuk melanjutkan fungsinya.

Pertama, kita perlu memasang Deployer secara setempat. Deployer boleh dipasang melalui Composer dan digunakan sebagai kebergantungan projek:

composer require deployer/deployer --dev

Selepas pemasangan selesai, kita perlu mencipta fail deploy.php dalam direktori akar projek sebagai fail konfigurasi skrip penempatan. Berikut ialah contoh konfigurasi mudah: deploy.php文件作为部署脚本的配置文件。以下是一个简单的配置示例:

require 'recipe/common.php';

// 项目名称
set('application', 'my_project');

// 项目仓库地址
set('repository', 'git@github.com:username/my_project.git');

// 部署目标服务器
server('production', 'production_server_ip')
    ->user('username')
    ->identityFile('~/.ssh/id_rsa')
    ->set('deploy_path', '/var/www/my_project');

// 部署后需要执行的任务
task('deploy:custom_task', function () {
    run('php artisan migrate');
});

// 部署完成后重启服务
after('deploy', 'deploy:restart');

// 配置要发布的文件和目录
set('shared_files', ['.env']);
set('shared_dirs', ['storage']);

// 配置要排除的文件和目录
set('exclude', ['.git', 'node_modules', 'tests']);

// 设置环境变量
set('env', [
    'APP_ENV' => 'production',
    'APP_DEBUG' => 'false',
]);

// 配置要保留的发布版本数量
set('keep_releases', 5);

上述配置文件中,我们设置了一些基本的参数,如项目名称、仓库地址、部署目标服务器等。同时,我们还定义了一些常用的任务,如自定义任务deploy:custom_task 和重启服务任务 after('deploy', 'deploy:restart')

# 部署项目到目标服务器
dep deploy production

# 回滚到上一个发布版本
dep rollback production

# 清理过期的发布版本
dep cleanup

Dalam fail konfigurasi di atas, kami menetapkan beberapa parameter asas, seperti nama projek, alamat gudang, pelayan sasaran penempatan, dsb. Pada masa yang sama, kami juga telah menentukan beberapa tugas yang biasa digunakan, seperti tugas tersuai deploy:custom_task dan mulakan semula tugas perkhidmatan after('deploy', 'deploy:restart'). Selain itu, kami juga boleh mengkonfigurasi fail dan direktori untuk diterbitkan, mengecualikan fail dan direktori, dan menetapkan pembolehubah persekitaran, dsb.

Apabila fail konfigurasi sudah sedia, kami boleh menggunakan Deployer untuk menggunakan dan menerbitkan secara automatik. Berikut ialah beberapa contoh arahan Deployer yang biasa digunakan:

rrreee

Dengan arahan mudah ini, kami boleh menggunakan dan menerbitkan projek PHP kami secara automatik. Penyebar akan membantu kami menyelesaikan penarikan kod automatik, muat naik fail dan kemas kini konfigurasi, yang sangat memudahkan keseluruhan proses penggunaan.

Ringkasnya, Deployer ialah alat penempatan automatik yang sangat mudah dan berkuasa untuk projek PHP. Menggunakan Deployer, kami boleh memudahkan dan mempercepatkan proses penempatan dan pelepasan projek serta meningkatkan kecekapan pembangunan. Saya harap artikel ini akan membantu semua orang Anda dialu-alukan untuk mencuba dan meneroka lebih banyak fungsi dan penggunaan Deployer. 🎜

Atas ialah kandungan terperinci Penggunaan automatik dan keluaran projek PHP melalui 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