这个问题整整困扰了我两天,今天终于搞定了。记录一下。

背景是这样的,我呢,在centos服务器上安装了lamp环境,其中php是5.3.3,在用composer安装yii2的时候,出现了某些yii2插件需要php7以上才支持。

于是乎,纠结了一下,是改composer.json中的配置,适应低版本php还是升级php呢?最后的决定是升级php到7。

在apache同一级目录下新建了个php7文件夹,详见前面这篇《升级lamp中php5.6到php7.0过程》。

安装好之后,yii2顺利部署调试好。

然后开发了上传banner图的模块。当测试上传的时候遇到问题了,提示php fileinfo extension must be installed。

围绕这个问题查了很多网络上的资料,最后得出的结论就是php没有加载fileinfo这个扩展,或者没有安装这个扩展,或者php.ini没有开启这个扩展

find / -name fileinfo.so 发现这个扩展是有的,然后就使用服务器上原有的fileinfo.so进行安装,结果不行。

后来查了资料说是要在安装包文件ext/fileinfo底下进行编译安装。

于是去尝试,中间还使用了pecl安装,这种方法貌似已经废弃了。不可避免的经历了安装pecl的过程。为了满足在安装包底下安装的需求,我重新下载了php7安装包,记得好像是从香港那个镜像服务器下载的,先下载到本地,然后上传到服务器,新建tmp文件夹,解压,进入ext/fileinfo文件夹。

最后回到大多数人提到的phpize安装方法,步骤简单。

过程如下,

phpize,由于服务器存在两个php,一个5.3.3,一个7.0.2的,因此在运行phpize命令的时候,显示的是2009版,版本低,因此在重新编译安装php7之后,添加了一个别名alias php=/usr/local/php7/bin/phpize,此时显示的是2015了,这一步ok了。

在ext/phpize文件夹下运行phpize。

然后运行./configure --with-php-config=/usr/local/php7/bin/php-config --enable-fileinfo(这个是看有些人加了,因为怀疑可能是被禁用所以也给加上了)。

运行完毕,这中间是一个配置的shell脚本。有可能出错,如果出错不被发现继续下一步,编译安装不成功,还是无法正常运行的。

运行完毕,运行make & make install,如果前面有过make的经历,还需要make clean一下,不然还是不能成功。如此完毕,正常的话,最后一步make test就可以使用了。

在这一步从phpize到最后,尝试了不下十遍,最终通过php -m查的扩展总是没增加,而且通过php -i | grep php.ini,当然在php.ini中要加入extension=fileinfo.so,另外中间还提示system以及另外一个函数被禁用,在php.ini当中把禁用函数删掉即可。

disable_functions = exec,chroot,chgrp,chown,proc_get_status,ini_alter,ini_alter,ini_restore

而且提示动态库加载失败,因为有一个变量未定义。其实还是因为编译安装这个扩展中间出了错导致的。因此保证编译安装绝对无误,就不会存在任何问题。

文字写的零碎,的确是因为初学,各种问题零零碎碎,无法很好的总结,踩过的坑记下,另外回顾一下加深印象。

apache服务器yii2报The fileinfo PHP extension is not installed解决思路的更多相关文章

  1. yii uploadfile 错误提示: fileinfo php extension is not installed

    rule规则里面增加 'checkExtensionByMimeType'=>false,

  2. Eclipse报Caused by: java.lang.OutOfMemoryError: PermGen space解决思路

    一.修改tomcat/bin目录下的catalina.bat 在“rem ----- Execute The Requested Command ----------------------”下加入 ...

  3. 关于apache服务器加载so的报错

    早上突然发现我的虚拟机上的WEB应用访问不了了,后台检查httpd服务,无法启动,出现一行提示: ①starting httpd: httpd: Syntax error on line 163 of ...

  4. Apache服务器下phalcon项目报Mod-Rewrite is not enabled问题

    问题如图: 项目已经按照官网的教程修改了.htaccess文件,仍旧报此错误,判断可能是apache未添加mod_rewrite,通过查询资料,经以下两步解决此问题: 1.执行sudo a2enmod ...

  5. apache服务器启动时提示httpd: apr_sockaddr_info_get() failed for

    apache服务器启动时提示httpd: apr_sockaddr_info_get() failed for 在RedHat Linux 5 与 CentOS 5服务器上配置好apache后,启动或 ...

  6. php开发环境搭建——laravel框架,apache服务器,git版本控制

    本文主要阐述做项目前的开发环境安装——后端为php,前端采用grunt进行自动化构建.具体介绍了windows平台下采用apache运行php的环境搭建,以及git工具安装.写得有点粗糙,但过程完整, ...

  7. 在Linux系统中如何设置APACHE服务器里的后台页面只允许某个IP地址访问

    补充资料 本网络中使用LINUX服务器,web服务器是由APACHE搭建,IP地址为192.168.1.5,后台页面为/admin/login.jsp . 如何设置后台页面LOGIN.JSP只允许19 ...

  8. phpstudy如何安装景安ssl证书 window下apache服务器网站https访问

    1. 下载景安免费证书 https://www.zzidc.com/help/helpDetail?id=555 2.文件解压上传至服务器,位置自己决定 3. 调整apache配置 景安原文链接:ht ...

  9. apache无法启动报错No space left on device

    apache无法启动报错No space left on device 故障现象:apache无法启动ipcs信号量很多 # service httpd startStarting httpd : [ ...

随机推荐

  1. C# 单例模式的多种简单实现

    什么是单例模式? 这里我就不做过多的解释了, 毕竟关于Singleton的资料实在是太多太多了.点击这里 1.简单的思路就是, 创建对象单例的动作转移到另外的行为上面, 利用一个行为去创建对象自身, ...

  2. BZOJ5104 Fib数列(二次剩余+BSGS)

    5在1e9+9下有二次剩余,那么fib的通项公式就有用了. 已知Fn,求n.注意到[(1+√5)/2]·[(1-√5)/2]=-1,于是换元,设t=[(1+√5)/2]n,原式变为√5·Fn=t-(- ...

  3. 树形DP入门详解+题目推荐

    树形DP.这是个什么东西?为什么叫这个名字?跟其他DP有什么区别? 相信很多初学者在刚刚接触一种新思想的时候都会有这种问题. 没错,树形DP准确的说是一种DP的思想,将DP建立在树状结构的基础上. 既 ...

  4. P2234 [HNOI2002]营业额统计

    题目描述 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是 ...

  5. PHP-从零开始使用Solr搜索引擎服务(上)

    前言: 原文地址: http://www.cnblogs.com/JimmyBright/p/7156069.html 使用搜索引擎,我们常规的数据查询会快很多,还可以对关键词进行中文分词查询,返回一 ...

  6. 洛谷 P3205 [HNOI2010]合唱队 解题报告

    P3205 [HNOI2010]合唱队 题目描述 为了在即将到来的晚会上有更好的演出效果,作为AAA合唱队负责人的小A需要将合唱队的人根据他们的身高排出一个队形.假定合唱队一共N个人,第i个人的身高为 ...

  7. 4 MySQL程序概述(包含mysql配置文件配置原理)-学习笔记

    以下参考MySQL5.5官方简体中文参考手册完美版--用于自学复习使用 4.1 程序概述 MySQL AB提供了几种类型的程序:一般放在/安装目录/bin下 1 MYSQL服务器和服务器启动脚本 my ...

  8. 单点登录(五)-----遇到问题-----cas server 源码部署tomcat运行报错BeanCreationException:Error creating bean with name 's

    我们在上一篇文章已经解决了把下载好的cas server源码部署到tomcat缺少子项目编辑文件或者jar包导致找不到class报错的问题 单点登录(四)-----遇到问题-----cas serve ...

  9. Webpack 学习笔记总结

    Webpack安装 Linux系统默认已经安装了node&npm,但版本比较低,而且没法升级,可以重新下载Node然后通过软链接替换系统自带的node和npm; ln -s /path_to/ ...

  10. c++优先队列(堆)

    1.最小堆.最大堆 priority_queue<int,vector<int>,greater<int> > f; //最小堆(后面的数逐渐greater) pr ...