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
If the server has the ssh2 extension installed, the output should look like this:
ssh2
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
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
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/
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
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
After completion, add the following lines to the PHP configuration file php.ini:
extension=ssh2.so
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
Use the following command to restart the Nginx service:
nginx -s reload
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
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!