首先我运行PHP 5.3.3,CentOS 5.7(2.6.18-274.3.1.el5xen)
其次,我基本上不知道我在做什么......抱歉!
首先,我从http://www.libssh2.org/安装了libssh2。 Ran配置,make,make install。不太了解所有这些内容,但是按照在线说明似乎有效。
然后跑
pecl install ssh2
到目前为止一切顺利。
按照说明将相关的扩展行添加到php.ini。重启apache:
service httpd restart
一切都很好。
但是后来在phpInfo()中找不到对ssh的任何引用。
尝试
php -m | grep ssh2
并收到以下错误:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/ssh2.so' - /usr/lib64/php/modules/ssh2.so: undefined symbol: libssh2_sftp_readdir_ex in Unknown on line 0
我做错了什么/错过了什么,我该如何解决?
答案 0 :(得分:12)
我在CentOs 6.3中遇到了类似的问题,我对此guide的看法略有不同。
1)安装所需的包:
yum install automake make php-devel libtool openssl-devel gcc++ gcc
2)如果您有32位操作系统,请更改目录(/usr/lib/php
):
cd /usr/lib64/php
3)下载来源(最新截至2013/02/28,查看最新here):
wget http://pecl.php.net/get/ssh2-0.12.tgz
4)创建一个构建目录(我不喜欢在我的系统中弄乱)并解压缩包:
mkdir build-dir
mv ssh2-0.12.tgz build-dir
cd build-dir
tar xzvf ssh2-0.12.tgz
5)准备编译步骤并编译:
phpize
./configure –with-ssh2
make
6)复制系统中的模块(/usr/lib/php/modules/ssh2.so
如果你有32位操作系统):
cp modules/ssh2.so /usr/lib64/php/modules/ssh2.so
7)更改配置并将此行添加到/etc/php.d/ssh2.ini
(虽然我不需要在我的设置上执行此操作,可能是因为我之前已经这样做了):
extension=ssh2.so
8)如果需要,可以删除构建目录:
cd ../../
rm -f build-dir