我已经超出了我的专业领域,我已经在互联网和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:
- 在我的主目录下创建了一个名为"php"的文件夹,然后在其中创建了名为"ext"的文件夹和另一个名"ssh2"的文件夹
cd /<myhome>/php/ssh2
- 将libssh2.org中的libssh2包下载到php/sh2文件夹中
tar vxzf libssh2-1.4.3.tar.gz
cd libssh2-1.4.3
./configure --prefix=$HOME
make
make install
创建ssh2:
cd /<myhome>/php/ssh2
- 从pecl.php.net/package/ssh2下载php-ssh2包
tar vxzf ssh2-0.11.3
cd ssh2-0.11.3
phpize
./configure --prefix=$HOME --with-ssh2=$HOME
make
已将/<myhome>/ssh2-0.11.3/modules/ssh2.so
复制到/<myhome>/php/ext/ssh2.so
修改了我的php.ini以包含extension=/<myhome>/php/ext/ssh2.so
现在,我在共享服务器上为脚本提供了ssh2。希望有人觉得这很有帮助。