PHP访问报Call to undefined function app\sign\.....() 类错误,这类错误我只遇到了两例,因为虚拟机安装PHP7.2的时候没能正确安装zlib包,导致的PHP72的某些ext文件下的依赖没有安装,所以出现了缺少某些依赖的问题。就我遇到的两例进行一下说明。
首先是openssl下面的一个方法找不到。使用 "/其他路径/php7/bin/php -m"命令查看PHP的安装依赖,发现没有openssl这个安装依赖,所以需要重新安装。上篇讲到php.ini的处理方式,这里不做赘述,但是此处会用到。
步骤如下:
1,进入PHP源码中openssl的扩展目录在/php-7.2.4/ext/openssl
2,运行phpize
/安装目录/php7/bin/phpize
3,执行安装
#初始化设置
./configure --with-openssl --with-php-congfig=/PHP安装目录/php7/bin/php-config
#编译安装
make && make install
4,安装完成后,将php7/lib/php.ini中的 ;extension=openssl去掉; 就可以了
第二个是curl的跳转无法实现,同样使用“/安装路径/php7/bin/php -m”命令查看发现缺少CURL这个依赖包,炮制如上方法在ext/curl下面安装,发现没有奏效。报错显示需要7.10以上的curl版本才可以。于是又重新在https://curl.haxx.se/download/下载安装了一个curl-7.2以上的依赖包。
安装流程如下;
1,首先上传到服务器中,然后解压
tar -zxvf curl-7.21.2.tar.gz
2,进入到curl目录
cd curl-7.21.2
3,执行安装
#初始化设置
./configure -prefix=/php目录/curl --with-php-config=/php安装目录/php7/bin/php-config
#编译安装
make && make install
4,安装完成之后进入到PHP源码中的ext/curl目录下执行类似openssl安装启动phpize,不过在初始化的时候需要指定安装的curl目录,这样才能访问到新安装的curl
./configure --with-php-config=/php安装路径/php7/bin/php-config --with-curl=/php安装路径/curl
5,重新安装部署一下,make && make install
6,修改php.ini 文件,将;extension=curl 中的;去掉就可以了