我只是 Ubuntu 的新手,但我试图运行一个使用 ssh2_connect() 函数的 PHP 脚本,但一直出现错误;
PHP Warning: ssh2_connect(): Unable to connect to ftp.xxx.co.uk on port 22 in /var/www/clients/client1/web1/web/distcheck/xxx.php on line 2
我阅读了几个关于如何在 Ubuntu 中启用 ssh2 的教程,并改编了一个看起来可行的教程;
sudo apt-get install php8.1-ssh2
然后
sudo service apache2 restart
但我仍然遇到同样的错误。
如果我只需在命令行中输入;
SSH2
我明白了;
Command 'ssh2' not found, did you mean:
command 'sshd' from deb openssh-server (1:8.9p1-3ubuntu0.4)
command 'ss2' from deb python3-pyroute2.core (0.6.4-3ubuntu2)
command 'ssh1' from deb openssh-client-ssh1 (1:7.5p1-13)
command 'ssh' from deb openssh-client (1:8.9p1-3ubuntu0.4)
Try: sudo apt install <deb name>
所以,我尝试过了;
sudo apt install ssh2
但要明白这一点;
Package ssh2 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'ssh2' has no installation candidate
我看到很多其他人也问过类似的问题......但我还没有找到适合我的答案......所以希望有人可以提供一些详细的帮助。
谢谢
答案1
首先安装 php ssh2 包:
sudo apt install php8.1-ssh2
找出你使用的 php.ini:
php --ini
应该类似于 /etc/php/php.ini
打开该文件并检查扩展部分是否有条目:
extension=ssh2.so
如果没有,请在扩展部分添加此行。
重新启动Apache:
sudo service apache2 restart
我没有测试过,但是那应该可以完成工作。