我已经超出了我的专业领域,并且在互联网和 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:
- 在我的主目录下创建一个名为“php”的文件夹,然后在其中创建一个名为“ext”的文件夹和另一个名为“ssh2”的文件夹。
-
cd /<myhome>/php/ssh2
- 从 libssh2.org 下载 libssh2 软件包进入 php/ssh2 文件夹
-
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。希望有人觉得这有帮助。
关于php - 如何在没有 root 访问权限的 Linux 上的非标准文件夹中安装 PHP SSH2 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23303968/