php - 如何在没有 root 访问权限的 Linux 上的非标准文件夹中安装 PHP SSH2 扩展

标签 php linux

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

我能够使用以下命令在私有(private)文件夹中成功创建 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/ssh2 文件夹
  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。希望有人觉得这有帮助。

关于php - 如何在没有 root 访问权限的 Linux 上的非标准文件夹中安装 PHP SSH2 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23303968/

相关文章:

javascript - AJAX 返回的字符串未验证

php - 样式数组到常规 CSS

php - 在 PHP 中通过 SSL 连接到 AWS mysql?

javascript - 数据未发布在全日历中?

linux - 如果文件在 linux bash 中为空,我如何获得回显输出?

php - wordpress 管理员中没有自定义字段表单

regex - 期望正则表达式数字模式

linux - 如何将 sysenter 用于链接到 SystemⅤ 库的 64 位用户态程序?

linux - arm-linux-gnueabihf-ld : unrecognized option '-Wl,--gc-sections'

c++ - 通过成员函数保持来自 fstream 的流打开