Bagi pembangun yang menggunakan PHP untuk sambungan SSH, mungkin sangat biasa untuk menghadapi ralat "PHP Fatal error: Call to undefined function ssh2_sftp()". Ralat ini biasanya disebabkan oleh sambungan yang tiada, dan artikel ini akan menunjukkan kepada anda cara untuk membetulkannya.
Pertama, kita perlu menyemak sama ada sambungan SSH2 sudah dipasang pada pelayan. Jalankan arahan berikut dalam terminal untuk menyemak sama ada ia dipasang:
php -m | grep ssh2
Jika hasil pulangan kosong, maka sambungan SSH2 tidak dipasang. Kita perlu memasangnya dengan mengikut langkah:
Libssh2 ialah perpustakaan pelanggan berdasarkan protokol SSH2 untuk menyambung ke pelayan SSH. Kami perlu memuat turun perpustakaan Libssh2 dari laman web rasmi. Kod sumber Libssh2 terkini boleh didapati di pautan berikut:
https://www.libssh2.org/download/libssh2-1.9.0.tar.gz
Selepas muat turun selesai, selesaikan Zip fail dan pergi ke folder unzip, jalankan arahan berikut dalam terminal untuk memasang Libssh2:
./configure make sudo make install
PECL ialah pusat perpustakaan sambungan PHP , yang menyediakan kod sumber untuk banyak sambungan PHP. Jika kami ingin menggunakan PECL untuk memasang sambungan SSH2, kami perlu menjalankan arahan berikut dalam terminal:
sudo pecl install ssh2
Semasa proses pemasangan, anda mungkin digesa untuk mengisi laluan ke konfigurasi php.ini fail. Anda boleh menggunakan arahan berikut untuk mencari laluan ke fail php.ini:
php -i | grep php.ini
Selepas pemasangan, anda perlu menambah maklumat konfigurasi berikut pada fail php.ini:
extension=ssh2.so
Selepas melengkapkan dua langkah di atas, kita perlu memulakan semula pelayan PHP-FPM atau Apache. PHP-FPM boleh dimulakan semula dengan menjalankan arahan berikut dalam terminal:
sudo service php-fpm restart
Jika menggunakan pelayan Apache, anda boleh menggunakan arahan berikut untuk memulakan semula:
sudo service apache2 restart
Kami boleh menyemak semula jika sambungan SSH2 dipasang. Jalankan arahan berikut dalam terminal:
php -m | grep ssh2
Jika perkataan "ssh2" dikembalikan, ia membuktikan bahawa sambungan SSH2 telah berjaya dipasang.
Jika masalah masih tidak dapat diselesaikan selepas langkah di atas, anda boleh cuba memasang perpustakaan bergantung lain atau menaik taraf versi PHP.
Ringkasnya, menyelesaikan ralat "PHP Fatal: Call to undefined function ssh2_sftp()" memerlukan kami menyelesaikan masalah dengan teliti dan mengikut langkah di atas untuk menyemak satu persatu. Selamat menyelesaikan masalah semua!
Atas ialah kandungan terperinci Penyelesaian kepada ralat Fatal PHP: Panggilan ke fungsi yang tidak ditentukan ssh2_sftp(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!