2009-02-18 179 views
10

我試圖在CentOS 5(RHEL 5的一個分支)上安裝此 http://fr2.php.net/manual/en/book.ssh2.php爲PHP安裝PECL SSH2擴展

我安裝libssh2(YUM安裝libssh2)至極位於/ usr/lib中,當我安裝SSH2擴展(通過PECL安裝-f SSH2)我得到這個消息

checking for ssh2 files in default path... not found configure: error: The required libssh2 library was not found. You can obtain that package from http://sourceforge.net/projects/libssh2/ ERROR: `/tmp/pear/download/ssh2-0.11.0/configure --with-ssh2=/usr' failed

如果我設置/ usr/lib,我得到相同的信息

ERROR: `/tmp/pear/download/ssh2-0.11.0/configure --with-ssh2=/usr/lib' failed

問題在哪裏?

回答

23

通過tar.gz從http://sourceforge.net/projects/libssh2/安裝libssh2有很多幫助(--with-ssh2 =/usr/local/include /)。

但是「yum install libssh2-devel」是個好主意。

+0

你從哪個版本庫中獲取?我在默認或Atomic中找不到它。 – 2012-01-19 18:18:04

+1

沒關係,我在http://repoforge.org/ – 2012-01-19 20:00:33

0

我有這個問題:

我在一個Pair.com「高級」託管帳戶,所以我什麼我被允許做一些有限的。我不認爲我可以yum也不​​也沒有任何其他預編譯的軟件包。

我已經下載並編譯了libssh2。在pecl過程中,它會詢問庫的位置。它在「〜/ usr/local/lib」中,我嘗試了幾種變體,包括完全限定。但我一直得到同樣的錯誤。

該錯誤消息沒有明確說明它正在尋找哪個文件。 libssh2.so在該目錄中。我知道輸出應該是ssh2.so.我想知道是否應該有一個ss2.something,或libssh.nothing?

因此我修正了它。在我的情況下,在編譯libssh2之後,我下載了PEAR tarball。技巧是:

./configure --with-ssh2=<libssh2 location> --prefix=<libssh2 location> 

另一個訣竅是,由於Pair.com運行FreeBSD,我必須做一個「CD」。在./configure命令之後。否則,make會產生「Permission denied」錯誤。顯然,這在所有* nix BSD口味中都是必需的。

6
$ 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 
2

yum install libssh2-devel並沒有爲我工作:

無包libssh2-devel的提供。

所以我從rpmfind下載的rpm包,並與rpm -ivh

安裝剛剛添加extension=ssh2.so/etc/php.d/ssh2.ini

1

我在CentOS運行後,所有這些答案對我來說整個解決方案。我跟着these instructions

$ sudo yum install -y gcc php-devel php-pear libssh2 libssh2-devel 

php-devel不會安裝,抱怨衝突。我搜索yum來查找PHP devel包我可

$> yum search php|grep devel 
... 
php55u-devel.x86_64 : Files needed for building PHP extensions 
php56u-devel.x86_64 : Files needed for building PHP extensions 
php70u-devel.x86_64 : Files needed for building PHP extensions 
... 

於是我就

$> sudo yum install -y php56u-devel 

它乾淨安裝。然後,繼續說明,我跑

$ pecl install -f ssh2 

然後編譯。然後,我添加擴展到PHP

$ touch /etc/php.d/ssh2.ini 
$ echo extension=ssh2.so > /etc/php.d/ssh2.ini 

而且我的系統上,而不是

$ /etc/init.d/httpd restart 

我不得不這樣做

$ sudo /bin/systemctl restart php-fpm.service 

所以這是所有安裝步驟。最後再確認一下:

$> php -m|grep ssh2 
ssh2