# 安装ssh2扩展
**SSH2**是PHP中常用的扩展之一,它允许使用PHP与SSH-2兼容的远程服务器进行安全通信。本文将介绍如何在Ubuntu系统下使用命令行安装ssh2扩展,并进行简单的配置过程。
## 1. 准备工作
### 1.1 确认扩展需要的依赖已安装
ssh2扩展需要libssh2库的支持,因此在安装ssh2之前需要先确认已经安装libssh2:
```bash
sudo apt-get install libssh2-1-dev libssh2-1
```
### 1.2 确认已经安装PHP
确认已经安装PHP,可用以下命令验证:
```bash
php -v
```
如果未安装,请使用以下命令安装:
```bash
sudo apt-get install php
```
### 1.3 确认PECL已经安装
PHP中的许多扩展都需要使用PECL来下载,因此需要确认已经安装PECL:
```bash
sudo apt-get install php-pear
```
## 2. 安装ssh2扩展
### 2.1 下载ssh2扩展
使用以下命令从PECL下载安装ssh2扩展:
```bash
sudo pecl install ssh2
```
如果提示 librarry not found,可使用以下命令安装:
```bash
sudo apt-get install autoconf libtool pkg-config libssh2-1 libssh2-1-dev libssl-dev
```
### 2.2 启用ssh2扩展
使用以下命令打开php.ini文件并将ssh2扩展添加到其中:
```bash
sudo nano /etc/php/7.4/cli/php.ini
```
在文件中找到"extension="这一行,在后面添加以下内容:
```
extension=ssh2.so
```
保存并退出文件,重启PHP,命令如下:
```bash
sudo systemctl restart php7.4-fpm
```
## 3. 验证ssh2扩展
### 3.1 使用PHP脚本验证ssh2扩展
新建一个名为test_ssh2.php的文件,输入以下内容保存:
```php
if (!extension_loaded('ssh2')) {
die('SSH2 extension not found.');
}
$connection = ssh2_connect('example.com', 22);
if (!$connection) {
die('Connection failed.');
}
if (!ssh2_auth_password($connection, 'username', 'password')) {
die('Authentication failed.');
}
$stream = ssh2_exec($connection, 'ls -al');
echo stream_get_contents($stream);
ssh2_exec($connection, 'exit');
?>
```
其中example.com、username、password需要替换成实际使用的值。保存文件并运行:
```bash
php test_ssh2.php
```
### 3.2 使用命令行验证ssh2扩展
执行以下命令,列出远程服务器上的文件:
```bash
ssh2_sftp example.com "username" "password" "ls /"
```
如果成功列出文件,则说明ssh2扩展已经成功安装和启用。
## 结语
本文介绍了ssh2扩展的安装和配置以及验证方法,希望能对您有所帮助。