Solution to PHP Fatal error: Call to undefined function ssh2_connect()

王林
Release: 2023-06-22 14:32:01
Original
1286 people have browsed it

When using SSH2 to connect to a remote server, some users often encounter the error message "PHP Fatal error: Call to undefined function ssh2_connect()", causing the connection to fail. This is caused by the server not having the ssh2 extension installed. This article explains how to resolve this issue.

1. Check whether the SSH2 extension is installed

First, you need to check whether the ssh2 extension has been installed on the server. Use the following command to check:

php -m | grep ssh2
Copy after login

If the server has the ssh2 extension installed, the output should look like this:

ssh2
Copy after login
Copy after login

If the output is empty, you need to install the ssh2 extension.

2. Install SSH2 extension

There are two ways to install the ssh2 extension, namely using the yum command and manual compilation.

Use yum command

Use the following command to install:

yum install php-pecl-ssh2 -y
Copy after login

After the installation is complete, restart the Apache or Nginx service.

Manual compilation method

If the server does not have the yum package manager installed, you can use the following steps to manually compile the ssh2 extension.

2.1 Download ssh2 source code

Go to the PECL website to download the ssh2 extension source code:

http://pecl.php.net/package/ssh2
Copy after login

Select the latest version to download, such as ssh2-1.3.tgz. After the download is completed, enter the ssh2 source code directory and execute the following command:

tar zxvf ssh2-1.3.tgz
cd ssh2-1.3/
Copy after login

2.2 Install dependencies

Use the following command to install the dependencies required to compile the ssh2 extension:

yum install php-devel libssh2 libssh2-devel -y
Copy after login

2.3 Compile and install

Execute the following command to compile and install:

phpize
./configure --with-php-config=/usr/bin/php-config
make && make install
Copy after login

After completion, add the following lines to the PHP configuration file php.ini:

extension=ssh2.so
Copy after login

3. Restart the Apache or Nginx service

After installing or compiling the ssh2 extension, you need to restart the Apache or Nginx service for the configuration to take effect.

Use the following command to restart the Apache service:

apachectl -k restart
Copy after login

Use the following command to restart the Nginx service:

nginx -s reload
Copy after login

4. Check whether the SSH2 extension is enabled

Finally, use Command php -m | grep ssh2 to recheck whether the ssh2 extension has been enabled. The output should be as follows:

ssh2
Copy after login
Copy after login

If the output is empty, you need to check again whether the SSH2 extension is installed correctly and confirm that it is in the PHP configuration file php The .ini contains the extension=ssh2.so line.

Summary

Through the above steps, you can solve the error message "PHP Fatal error: Call to undefined function ssh2_connect()". In order to avoid this error, it is recommended to install the ssh2 extension when installing the server to make it easier to connect to the remote server.

The above is the detailed content of Solution to PHP Fatal error: Call to undefined function ssh2_connect(). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!