在使用时php报出如下错误:Call to undefined function gemvary\exif_imagetype()
好吧,exif扩展没安装...
通过打印phpinfo()查看得知mbstring扩展是有的,exif扩展没有
如果mbstring也没有,也可以参考以下exif扩展的安装过程;
安装过程基本类似的;
进入主题:
1、查看当前环境PHP的版本号和安装目录whereisphp
结果:
[root@xiaojunexif]#whereisphp
php:/usr/bin/php/usr/lib64/php/etc/php.d/etc/php.ini/usr/include/php/usr/local/php/usr/share/php/usr/local/php/bin/php/usr/share/man/man1/php.1.gz
[root@xiaojunexif]#/usr/local/php/bin/php-v
PHP7.1.7(cli)(built:Mar1611:06:26)(NTS)
Copyright(c)1997-ThePHPGroup
ZendEnginev3.1.0,Copyright(c)1998-ZendTechnologies
那么phpize的位置就是 /usr/local/php/bin/phpize
2、进入php的源码目录#这是我电脑上的路径,得改成自己服务器上的路径
cd/www/lnmp1.4/src/php-7.1.7/ext/exif
进入扩展目录后进行初始化:/usr/local/php/bin/phpize
命令执行后当前目录会多几个文件,只要有configure这个文件就行
然后再检查配置,输入:./configure--with-php-config=/usr/local/php/bin/php-config
如果有报错说明路径不对,使用whereis php-config查看服务器上此文件的路径
接下来再依次执行这两个命令:make
makeinstall
执行完会有类似如下信息:[root@xiaojunexif]#makeinstall
Installingsharedextensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-0303/
这个目录就是扩展安装后的存放目录;
3、修改php.ini引入扩展vi/usr/local/php/etc/php.ini
在最后面加入:extension=exif.so
然后保存,重启PHP就完事了;
需要注意的是exif.so必须放在mbstring.so的后面,否则会出错;
可能出现的问题:
重启PHP时提示:NOTICE: PHP message: PHP Warning: Module 'mbstring' already loaded in Unknown on line 0
意思是mbstring这个扩展已经加载过了,还尝试引入;
解决办法:
PHP加载模块有两种方式,一种是通过php.ini 加载模块,另一种是通过编译时的参数加载模块。
这里出这个提示,那么mbstring应该就是属于后者,只需要php.ini中将其注释掉就行了;extension=mbstring.so
输入/usr/local/bin/phpize后提示:Cannot find config.m4. Make sure that you run /usr/local/bin/phpize in the top level sourc
我是将openssl扩展内的config0.m4文件改成config.m4就没提示了;cd../openssl
cp./config0.m4./config.m4
至于为什么openssl扩展的config.m4为什么会影响到安装其它扩展,暂不得而知;
如果觉得《exif linux php扩展_LNMP环境为PHP添加exif扩展》对你有帮助,请点赞、收藏,并留下你的观点哦!