On centos 8 and rockylinux:
dnf install php-ssh2
安装此 PECL 扩展相关的信息可在手册中标题为 PECL 扩展的安装章节中找到。更多信息如新的发行版本、下载、源文件、 维护人员信息及变更日志等,都在此处: » https://pecl.php.net/package/ssh2.
此扩展在 Windows 平台的二进制扩展 (DLL 文件) PECL 可以在 PECL 官方网站上下载。
On centos 8 and rockylinux:
dnf install php-ssh2
on linux debian like (ubuntu) a simple install will also load 'libssh2-1'
$ sudo apt-get update && sudo apt-get install php-ssh2
$ sudo apache2ctl graceful
should make it usable
use phpinfo() function, some sections are now showing additional "ssh2" parts:
- Intro section with new items for "ssh2"
- - Additional .ini files parsed
- - Registered PHP Streams
- ssh2 (new section)
- - showing "SSH2 support - enabled"
The SSH2 binary for Windows (php_ssh2.dll) can be found here: http://pecl.php.net/package/ssh2/1.1.2/windows
Steps for installing on CentOS Linux 7
After having a full webserver running, install packages libssh2.x86_64 and php-pecl-ssh2.x86_64
1. yum install libssh2.x86_64 php-pecl-ssh2.x86_64
2. systemctl restart httpd.service
[Editor's note: unless you have special demands, use the appropriate deps package from <http://windows.php.net/downloads/php-sdk/>.]
SSH2 for Windows is not available from the authors of the extension. But compiled binaries are available from the Apache Lounge (which is recommended by the php.net website too).
Link for PHP 5.3, 5.4, 5.5, 5.6 and 7.0:
https://www.apachelounge.com/viewtopic.php?t=6359
This binaries contain a lot (maybe even all?) for Windows compiled PHP extensions, like the SSH2 extension.
Please note that it is also highly recommended to use their Windows binary builds for the Apache HTTP server from here: https://www.apachelounge.com/download/
Older versions can be choosen from the left menu (VC11, VC10, etc.) if required.
php.net also recommends to use the binary builds from the Apache Lounge.
Maybe this helps developers, who work with Windows and can't find or compile some extensions themself.
On Ubuntu 16.04 LTS
- PHP 5.6.24-1+deb.sury.org~xenial+1
Using terminal as a root
apt install php-ssh2
service apache2 restart
Steps for installing the extension package on Ubuntu 14.04.
Very similar to dreadwestern at gmail dot com recipe, but enable ssh2 in PHP:
> sudo apt-get install libssh2-php
> php5enmod ssh2
> sudo /etc/init.d/apache2 restart
Since version 0.12 (released 2012-10-15) there is a binary version for Windows.
See here: http://pecl.php.net/package/ssh2/0.12/windows
I tested it with PHP 5.5.29 (32-bit, thread-safe) on my Windows 7 machine.
Installation For Centos 5.11 x86_64
1. Update your repo
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -K rpmforge-release-0.5.3-1.el5.rf.*.rpm
rpm -i rpmforge-release-0.5.3-1.el5.rf.*.rpm
2. yum install gcc php-devel php-pear libssh2 libssh2-devel
3. pecl install -f ssh2
4. Enable extension from php.ini configuration
extension=ssh2.so
5. Restart HTTPD
/etc/init.d/httpd restart
6. Chek PHP module
php -m
Good Luck
Steps to install "ssh2" on Debian Jessie 8
1. Using Terminal as Root. Run the following command to install the extension package.
apt-get install php5-ssh2
2. Restart Apache2 server
service apache2 restart
Installing on Ubuntu 14.0.4
sudo pecl channel-update pecl.php.net
sudo apt-get install libssh2-1-dev
sudo pecl install -a ssh2-0.12
echo 'extension=ssh2.so' | sudo tee /etc/php5/mods-available/ssh2.ini > /dev/null
sudo php5enmod ssh2
Installing this module for use with CentOS 5.?? or 6.?
1. Install your favorite PHP RPM packages. Make sure that one of your favorite packages is pear, so pecl gets installed in-tow.
2. Find and install *RPMS* of libssh2 of a version >= 1.2, get both the base lib package (libssh2-1.2.*.rpm) and the devel package that includes headers (libssh2-devel-1.2.*.rpm) of the EXACT SAME VERSION. Finding these packages took a few minutes of googling, and I invite an editor that has a trusted source for these to attach URLs as appropriate. (Yes, the version below is ancient)
# rpm -ivh libssh2-1.2.6-1.el5.rf.x86_64.rpm libssh2-devel-1.2.6-1.el5.rf.x86_64.rpm
3. Install the PHP module via pecl
# pecl install ssh2-0.12
4. Make PHP see the newly-installed extension
# echo "extension=ssh2.so" > /etc/php.d/ssh2.ini
5. Restart apache
CentOS 6.2 64bit Installation Steps:
1. download the libssh2 package from http://libssh2.org, command as following:
tar vxzf libssh2-1.4.2.tar.gz
cd libssh2-1.4.2
./configure
make
make install
2. download the php-ssh2 package from http://pecl.php.net/package/ssh2:
tar vxzf ssh2-0.11.3
cd ssh2-0.11.3
phpize
./configure --with-ssh2
make
make install
and the ssh2.so file will copy into /usr/lib64/php/modules
check it.
3. modify the php.ini
vi /etc/php.ini
add the "extension=ssh2.so" to the extension part of php.ini
4. check the environment of php, use phpinfo();
5. enjoy
Steps for installing the extension package on Debian systems:
> sudo apt-get install libssh2-php
> sudo /etc/init.d/apache2 restart
Using PECL it must be specified the channel, since the beta version has to be choosen instead of stable one:
$ pecl install ssh2 channel://pecl.php.net/ssh2-version
To help someone avoid the headaches I did for a week. SSH2 functions have problems with the ssh2-beta & libssh2-0.18 even after patching with said patches on the internet.
ssh_exec will work fine
ssh2_shell will not work
In order to use ssh2_shell I had to roll back to libssh2-0.14 in order to get ssh2_shell function to work properly
Just a little note: when compiling this package after modifying the ssh2.c, do not use pecl build as it will not create an ssh2.so file (although it says it succeeded), use:
phpize
./configure --with-ssh2
make
you then need to copy the ssh2.so file into your extension dir if it didn't do so already.