CentOS7服务器PHP命令行与Plesk版本不一致及libssh2安装问题求助
解决PHP CLI与Plesk Web版本不一致及ssh2扩展问题
一、统一PHP CLI版本为7.4.33
1. 定位Plesk管理的PHP7.4二进制文件
Plesk默认将自定义PHP版本存放在/opt/plesk/php/7.4/bin/目录,先验证路径有效性:
ls -l /opt/plesk/php/7.4/bin/php
若输出正常,该路径下的php即为7.4.33版本的CLI执行文件。
2. 替换系统默认PHP软链接
系统默认PHP通常指向旧版的5.4,先备份原链接:
mv /usr/bin/php /usr/bin/php5.4.bak
再创建指向Plesk PHP7.4的软链接:
ln -s /opt/plesk/php/7.4/bin/php /usr/bin/php
执行以下命令验证版本:
php -v
此时应显示7.4.33。
3. 调整环境变量确保优先级(可选)
若软链接未生效,可修改用户或系统级环境变量,让Plesk PHP路径优先加载:
echo 'export PATH="/opt/plesk/php/7.4/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
再次执行php -v确认版本。
二、编译安装PHP7.4适配的ssh2扩展
1. 安装编译依赖
先安装基础编译工具及libssh2依赖,再使用Plesk自带的pecl命令安装扩展:
yum install -y gcc make libssh2 libssh2-devel /opt/plesk/php/7.4/bin/pecl install ssh2-1.3.1
注:ssh2-1.3.1是兼容PHP7.4的稳定版本,若pecl提示版本不匹配,可指定该版本安装。
2. 启用ssh2扩展
编译完成后,在PHP7.4的配置目录添加扩展启用配置:
echo 'extension=ssh2.so' > /opt/plesk/php/7.4/etc/php.d/ssh2.ini
3. 验证扩展生效
重启Plesk的PHP服务并验证:
plesk bin php_handler --reread
通过CLI验证扩展是否加载:
php -m | grep ssh2
同时刷新web端的phpinfo()页面,确认ssh2扩展存在,此时ssh2_connect()函数即可正常调用。
三、额外注意事项
- 若编译时提示找不到PHP头文件,需安装Plesk的PHP7.4开发包:
plesk installer install php74-devel
- 后续安装PHP扩展时,必须使用Plesk对应版本的
pecl和phpize命令(如/opt/plesk/php/7.4/bin/pecl),避免调用系统默认工具关联旧版PHP。
内容的提问来源于stack exchange,提问作者George
相关产品推荐
相关产品推荐

