Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penyelesaian kepada ralat Fatal PHP: Panggilan ke fungsi yang tidak ditentukan ssh2_sftp()

Penyelesaian kepada ralat Fatal PHP: Panggilan ke fungsi yang tidak ditentukan ssh2_sftp()

WBOY
WBOYasal
2023-06-23 11:12:131335semak imbas

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:

  1. Pasang Libssh2

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
  1. Pasang sambungan PECL SSH2

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
  1. Mulakan semula PHP- pelayan FPM atau Apache

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
  1. Semak sama ada Sambungan SSH2 dipasang

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!

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