ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php8安装fileinfo

2021-10-27 02:31:47  阅读:493  来源: 互联网

标签:... www checking php8 fileinfo php 安装 80


欢迎关注颖小主的个人博客
服务器环境: 宝塔7.7.0

操作系统: Alibaba Cloud (Aliyun ) 2.1903 LTS (Hunting Beagle) x86_64(Py3.7.9)

php版本: 8,0

安装

  • 直接使用宝塔中的php扩展安装

    image-20211027015725264

    但是在我安装的情况下,一直安装失败。查看日志信息大概看到报错原因是这样的:

    ...
    /www/server/php/80/src/ext/fileinfo/libmagic/funcs.c: In function ‘file_checkfmt’:
    /www/server/php/80/src/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++) {
      ^
      
    ...
    

    我从宝塔官网上,找到了有人关于这个bug的上报信息,给的回复大概意思就是阿里云自己封装后的系统,宝塔这里不兼容,建议使用centos8,有兴趣点击这里进行查看

    所以我就从网上开启了面向百度编程模式,来了一波骚操作

  • 通过自己手动编译的方式进行安装fileinfo

    1. 先查找一下fileinfo扩展的安装位置
    [root@iZ2zej0uggzcedouxtbhq4Z php]# find / -name fileinfo
    /www/server/php/74/src/ext/fileinfo
    /www/server/php/73/src/ext/fileinfo
    /www/server/php/80/src/ext/fileinfo
    
    1. 进入你需要安装扩展版本的目录下执行以下命令
      1. /www/server/php/80/bin/phpize
      2. ./configure --with-php-config=/www/serve/php/80/bin/php-config
      3. make && make install
    # 执行这个命令 /www/server/php/80/bin/phpize 
    [root@iZ2zej0uggzcedouxtbhq4Z fileinfo]# /www/server/php/80/bin/phpize 
    Configuring for:
    PHP Api Version:         20200930
    Zend Module Api No:      20200930
    Zend Extension Api No:   420200930
    # 接着执行一下这个命令 ./configure --with-php-config=/www/serve/php/80/bin/php-config
    [root@iZ2zej0uggzcedouxtbhq4Z fileinfo]# ./configure --with-php-config=/www/serve/php/80/bin/php-config
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    checking for a sed that does not truncate output... /usr/bin/sed
    checking for pkg-config... /usr/bin/pkg-config
    checking pkg-config is at least version 0.9.0... yes
    checking for cc... cc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables... 
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    ....
    # 执行一下这个命令 make && make install
    [root@iZ2zej0uggzcedouxtbhq4Z fileinfo]# make && make install
    ...
    /www/server/php/80/src/ext/fileinfo/libmagic/funcs.c: In function ‘file_checkfmt’:
    /www/server/php/80/src/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++) {
      ^
    /www/server/php/80/src/ext/fileinfo/libmagic/funcs.c:97:2: note: use option -std=c99 or -std=gnu99 to compile your code
    # 依然报错
    

    上边依然报错,解决办法,修改Makefile文件

    大概在25行,将CFLAGS = -g -02 修改为 ``CFLAGS = -std=c99 -g -02`

    然后在执行一次make && make install 顺利安装成功

欢迎关注颖小主的个人博客

标签:...,www,checking,php8,fileinfo,php,安装,80
来源: https://www.cnblogs.com/yingxiaozhu/p/15468741.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有