Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan aplikasi web dengan betul melalui sftp dengan git

Cara menggunakan aplikasi web dengan betul melalui sftp dengan git

Jennifer Aniston
Jennifer Anistonasal
2025-02-10 14:27:12455semak imbas

Menggunakan Aplikasi Web melalui SFTP dengan Git: Aliran kerja yang selamat dan cekap

Artikel ini meneroka menggunakan phpseclib dan git untuk penyebaran SFTP yang diselaraskan dan selamat. Kami akan merangkumi ciri -ciri utama, kaedah pengesahan, dan teknik automasi untuk mengoptimumkan proses penempatan anda.

How to Properly Deploy Web Apps via SFTP with Git

Kaedah SFTP tradisional menggunakan pelanggan desktop sering rumit dan tidak cekap, memerlukan muat naik projek penuh walaupun untuk perubahan kecil. Phpseclib menawarkan penyelesaian yang mantap, memanfaatkan sambungan PHP pilihan atau jatuh ke atas pelaksanaan dalaman untuk fleksibiliti. Mengintegrasikan Git terus meningkatkan kecekapan dengan memindahkan hanya fail yang diubahsuai, menjimatkan masa dan jalur lebar.

Kelebihan utama:

  • pemindahan selamat: komunikasi yang disulitkan SFTP memastikan keselamatan data.
  • kemas kini yang cekap: kawalan versi git membolehkan memuat naik hanya berubah fail.
  • Penyebaran automatik: skrip membolehkan proses penempatan automatik.
  • Fungsi serba boleh:
pemasangan dan pengesahan phpseclib:

Pasang phpseclib menggunakan komposer:

<code class="language-bash">composer require phpseclib/phpseclib</code>

Kunci RSA:
    Pilihan yang paling selamat, menggunakan kunci peribadi untuk pengesahan.
  • Kata kunci yang dilindungi kata kunci RSA:
  • menyokong kekunci RSA dengan perlindungan kata laluan.
  • nama pengguna dan kata laluan:
  • kurang selamat dan umumnya tidak digalakkan.
  • Contohnya Menggunakan Pengesahan Utama RSA:

Pengurusan Fail (Muat naik dan penghapusan):

<code class="language-php">namespace App;

use phpseclib\Crypt\RSA;
use phpseclib\Net\SFTP;

$key = new RSA();
$key->loadKey(file_get_contents('privatekey'));
$sftp = new SFTP('192.168.0.1');

if (!$sftp->login('username', $key)) {
    exit('Login Failed');
}</code>
Memuat naik fail:

Menghapus fail dan direktori:

Automasi Penyebaran dengan Git:
<code class="language-php">$contents = file_get_contents('path/to/local/file');
$sftp->put('remote/path/file.txt', $contents);</code>

memanfaatkan keupayaan Git meminimumkan data yang dipindahkan. Kelas git tersuai boleh dibuat untuk menguruskan interaksi Git, seperti mengenal pasti fail yang berubah:
<code class="language-php">$sftp->delete('remote/path/file.txt'); // Single file
$sftp->delete('remote/directory', true); // Recursive directory deletion</code>

skrip penempatan kemudian menggunakan kelas git dan phpseclib ini untuk memuat naik/memadam fail dengan sewajarnya:

Pelaksanaan Perintah Jauh dan Pengurusan Kebenaran:
<code class="language-php">// (Simplified Git class example - error handling omitted for brevity)
class Git {
    public function getChangedFiles($startCommit, $endCommit) {
        // ... (Git command execution using Symfony Process component) ...
        return $changedFiles; // Array of added, modified, and deleted files
    }
    // ... (Other Git helper functions) ...
}</code>

phpseclib membolehkan melaksanakan arahan pada pelayan jauh:
<code class="language-php">$git = new Git();
$changedFiles = $git->getChangedFiles('HEAD~1', 'HEAD'); // Compare with previous commit

foreach ($changedFiles['added'] as $file) {
    // ... (Upload file using $sftp->put()) ...
}
foreach ($changedFiles['deleted'] as $file) {
    // ... (Delete file using $sftp->delete()) ...
}</code>

Menguruskan Kebenaran Fail:

Alternatif:
<code class="language-php">$sftp->exec('php artisan migrate');</code>

Beberapa alternatif wujud untuk penyebaran SFTP automatik:
<code class="language-php">$sftp->chmod(0755, 'remote/path/file.txt'); // Set permissions</code>

    (komersial)
  • git-deploy-php
  • Kesimpulan: PHPloy
  • Menggabungkan phpseclib dan git menyediakan penyelesaian yang mantap, selamat, dan cekap untuk penyebaran SFTP. Automasi proses ini dengan ketara menyelaraskan aliran kerja dan mengurangkan intervensi manual. Pertimbangkan implikasi keselamatan setiap kaedah pengesahan dan pilih yang paling sesuai untuk persekitaran anda. Ingatlah untuk menguji skrip penempatan anda dengan teliti sebelum melaksanakannya dalam persekitaran pengeluaran.

    How to Properly Deploy Web Apps via SFTP with Git

    (Nota: Coretan kod yang disediakan adalah contoh yang dipermudahkan dan mungkin memerlukan pelarasan berdasarkan persediaan dan persekitaran projek khusus anda. Pengendalian ralat dan logik yang lebih mantap harus ditambah untuk penggunaan pengeluaran.)

Atas ialah kandungan terperinci Cara menggunakan aplikasi web dengan betul melalui sftp dengan git. 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