使用php8.0 composer安装laravel的时候遇到错误提示:
发现fileinfo没有安装。
第一步:下载php8.x 的安装包;
第二步:解压进入到ext里面,选择fileinfo目录;
第三步:phpize
第四步:./configure –with-php-config=/www/server/php/80/bin/php-config
第五步:make
结果报错了,报错如下 :
/bin/sh /root/php-8.0.6/ext/fileinfo/libtool –mode=compile cc -I. -I/root/php-8.0.6/ext/fileinfo -I/root/php-8.0.6/ext/fileinfo/include -I/root/php-8.0.6/ext/fileinfo/main -I/root/php-8.0.6/ext/fileinfo -I/www/server/php/80/include/php -I/www/server/php/80/include/php/main -I/www/server/php/80/include/php/TSRM -I/www/server/php/80/include/php/Zend -I/www/server/php/80/include/php/ext -I/www/server/php/80/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -I/root/php-8.0.6/ext/fileinfo/libmagic -c /root/php-8.0.6/ext/fileinfo/libmagic/funcs.c -o libmagic/funcs.lo
cc -I. -I/root/php-8.0.6/ext/fileinfo -I/root/php-8.0.6/ext/fileinfo/include -I/root/php-8.0.6/ext/fileinfo/main -I/root/php-8.0.6/ext/fileinfo -I/www/server/php/80/include/php -I/www/server/php/80/include/php/main -I/www/server/php/80/include/php/TSRM -I/www/server/php/80/include/php/Zend -I/www/server/php/80/include/php/ext -I/www/server/php/80/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -I/root/php-8.0.6/ext/fileinfo/libmagic -c /root/php-8.0.6/ext/fileinfo/libmagic/funcs.c -fPIC -DPIC -o libmagic/.libs/funcs.o
/root/php-8.0.6/ext/fileinfo/libmagic/funcs.c: In function ‘file_checkfmt’:
/root/php-8.0.6/ext/fileinfo/libmagic/funcs.c:97:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (const char *p = fmt; *p; p++) {
^
/root/php-8.0.6/ext/fileinfo/libmagic/funcs.c:97:2: note: use option -std=c99 or -std=gnu99 to compile your code
make: *** [libmagic/funcs.lo] Error 1
看错误提示,是因为c99编译文件语法不兼容的问题,那想办法增加参数,解决办法:
- 打开Make编译文件,vim Makefile
- 在第25行,改为:CFLAGS = -g -O2 -std=c99
- 重新编译;
- 编译成功。
