原因是: Thinkcmf框架未开启fileinfo
先前是Windows下使用PHPstudy编写项目,项目是的Thinkcmf框架。由于转到Mac下的PHPstudy功能有些残缺,就是php少了些扩展。搜索phpstudy社区,看到的Mac下的MxSrvs推荐和phpstudy官方回答有能力手动编译。下面是我手动编译php扩展的过程记录,希望有所帮助。查看php某扩展是否启用。终端输入[注意php路径]
/Applications/MxSrvs/bin/php/bin/php -i|grep fileinfo
图片.png
要注意的是mac有内置php,我们要查看的集成环境下的php是否开启扩展。[上图是我编译好的]
下面我以MxSrvs为例【phpstudy类似】
- 重新下载php源码(版本要和phpstudy/MxSrvs的对应)
https://www.php.net/distributions/php-x.x.x.tar.gz [替换版本号] -
找到源码包下的ext文件夹【里面是php的扩源码】找到fileinfo文件夹[扩展源码],解压
图片.png
*** 需要进入fileinfo文件夹
- 下面是构建和编译的过程
说明下流程,就是用MxSrvx/phpstudy等集成开发工具下的编译好的phpize和php-config来构建和编译扩展
[Applications/MxSrvx/bin/php/bin]这是会看到有php和phpize
要编译的扩展尽量放到php和phpize目录附近,或者记住他两的路径也行
终端调用phpize
/Applications/MxSrvs/bin/php/bin/phpize
图片.png
调用php-config
$ ./configure --with-php-config=/Applications/MxSrvs/bin/php/bin/php-config
# --with-php-config后面接php-config的路径
图片.png
最后 make 编译生成fileinfo.so文件[扩展源码包下的modules文件夹下]
图片.png
Libraries have been installed in:
/Users/abc/Downloads/php-7.4.6/ext/fileinfo/modules
Installing shared extensions: /Applications/MxSrvs/bin/php/lib/php/extensions/no-debug-non-zts-20190902/
这两个路径都是可以的。一样
复制.so文件到集成环境下的php的ext目录下,编辑php.ini文件启用扩展并重启php即可。
cp fileinfo.so /Applications/MxSrvs/bin/php/ext/
【phpstudy的跟上述相似,以后就可以手动编译自己所需的扩展了】
https://blog.csdn.net/weixin_45893274/article/details/120983841
网友评论