如何在没有root访问权限的情况下在linux上的非标准文件夹中安装PHP SSH2扩展


How to install PHP SSH2 extension in a non-standard folder on linux without root access

我已经超出了我的专业领域,我已经在互联网和stackoverflow上搜索了这个问题的解决方案,但没有找到。我正试图在我没有root访问权限的linux(不知道是哪种风格)共享托管服务器上的帐户文件夹中安装PHP SSH2扩展。

我用以下命令成功地在一个私人文件夹中创建了libssh2-1.4.3:

./configure --prefix=/home/myaccnt/php/ssh2/install
make
make install

并最终在/home/myaccnt/php/ssh2/install/lib文件夹中得到以下文件:

libssh2.a
libssh2.la
libssh2.so
libssh2.so.1
libssh2.so.1.0.1

到目前为止,一切都很好(至少我觉得很好)。

接下来,我尝试构建ssh2-0.11.3,但无法通过配置步骤。我已经尝试了几种不同的方式来运行配置命令:

./configure --prefix=/home/myaccnt/php/ssh2/install --with-ssh2=/home/myaccnt/php/ssh2/install
./configure --prefix=/home/myaccnt/php/ssh2/install --with-ssh2=/home/myaccnt/php/ssh2/install/lib

但是配置脚本总是找不到libssh2,我得到以下消息:

checking for ssh2 support... yes, shared
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/

所以,问题是,我如何获得PHP SSH2扩展配置脚本来查找libssh2?

提前感谢你的帮助。真的很感激。

在浏览了几个小时的配置脚本,甚至在互联网上搜索了几个小时后,我找到了实现这一点的方法。对于那些可能有兴趣做类似事情的人,以下是我所做的。

我从www.php.net/manual/en/ssh2.installation.php上的说明开始,并做了以下操作:

创建libssh2:

  1. 在我的主目录下创建了一个名为"php"的文件夹,然后在其中创建了名为"ext"的文件夹和另一个名"ssh2"的文件夹
  2. cd /<myhome>/php/ssh2
  3. 将libssh2.org中的libssh2包下载到php/sh2文件夹中
  4. tar vxzf libssh2-1.4.3.tar.gz
  5. cd libssh2-1.4.3
  6. ./configure --prefix=$HOME
  7. make
  8. make install

创建ssh2:

  1. cd /<myhome>/php/ssh2
  2. 从pecl.php.net/package/ssh2下载php-ssh2包
  3. tar vxzf ssh2-0.11.3
  4. cd ssh2-0.11.3
  5. phpize
  6. ./configure --prefix=$HOME --with-ssh2=$HOME
  7. make

已将/<myhome>/ssh2-0.11.3/modules/ssh2.so复制到/<myhome>/php/ext/ssh2.so

修改了我的php.ini以包含extension=/<myhome>/php/ext/ssh2.so

现在,我在共享服务器上为脚本提供了ssh2。希望有人觉得这很有帮助。