新部署了一套服务器,在手动执行队列任务的时候,出现如下错误:
PHP Startup: Unable to load dynamic library 'ssh2.so'
顾名思义:缺少ssh2扩展,好开始安装!
1.编译安装 libssh2
# cd /usr/local/src
# wget http://www.libssh2.org/download/libssh2-1.4.2.tar.gz
# tar -zxvf libssh2-1.4.2.tar.gz
# cd libssh2-1.4.2
# ./configure --prefix=/usr/local/libssh2
# make && make install
2.编译安装 ssh2
# cd /usr/local/src/
# wget http://pecl.PHP.net/get/ssh2-0.13.tgz
# tar xvf ssh2-0.13.tgz
# cd ssh2-0.13
# PHPize ##没有的话yum install PHP-devel ubuntu apt-get install PHP7.0-dev
# ./configure --prefix=/usr/local/ssh2 --with-ssh2=/usr/local/libssh2 --with-PHP-config=/usr/bin/PHP-config ##此处为自身环境下PHP配置文件,可通过find / -name PHP-config 进行查找
# make
注:我在执行这里make的时候,出现了如下错误
查了资料才发现是因为我的PHP版本过高,我的版本是PHP7.2,于是乎将ssh2的版本换成1.1.2即:
# cd /usr/local/src/
# wget http://pecl.PHP.net/get/ssh2-1.1.2.tgz
# tar xvf ssh2-1.1.2.tgz
# cd ssh2-1.1.2
# PHPize ##没有的话yum install PHP-devel ubuntu apt-get install PHP7.0-dev
# ./configure --prefix=/usr/local/ssh2 --with-ssh2=/usr/local/libssh2 --with-PHP-config=/usr/bin/PHP-config ##此处为自身环境下PHP配置文件,可通过find / -name PHP-config 进行查找
# make
完事会告诉你扩展的位置,如下图:
3.拷贝 ssh2.so
# cp /usr/local/ssh2-1.1.2/modules/ssh2.so /usr/lib64/PHP/modules/
# find / -name PHP.ini ##查找PHP.ini文件的位置
# echo "extension=ssh2.so" >> /etc/PHP.ini
5.查看是否成功
# PHP -m | grep ssh2
ssh2 ##出现这个证明成功了
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。