设为首页 收藏本站
查看: 810|回复: 0

[经验分享] php-7.0编译模块的出错

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-3-14 09:18:34 | 显示全部楼层 |阅读模式
小Q:雄关漫道真如铁,而今迈步从头越。从头越,苍山如海,残阳如血。             ——***

目前php最新版本7.0,因为需要,所以我尝试安装了一下,期间也遇到了好多问题,其中一些问题和老的版本差不多,我就不一 一细说了,有问题的朋友可以给我留言,一块探讨;

-------------------------------------------------------------------------------------------------

第一:安装完成之后找不到php-fpm.conf配置文件,其实好多关于fpm的配置文件都没有,只是我的水平不高,只能意识到php-fpm.conf;当时我没注意直接在解压的源码包里复制了一个大致类似的www.conf作为主配置文件,拷贝了一个启动文件,稍微配置了一下倒也是能启动成功,没什么大问题。

直到我在给php加扩展模块的时候出现了make编译时一直提示少目录文件报错的问题;
【我在想是不是/usr/local/php/bin/phpizen生成./configure时也会生成一些make时需要的目录文件,如果是这样那么我的错就出在php安装的过程,是不是因为编译php时漏掉了一些选项而导致phpize“生成”的不完全(其实我也感觉不是这的问题,不过不试试怎么知道呢),网上说也许是--enable-fpm的作用是开启php的fastcgi功能即开启php-fpm功能】
于是我又到了解压php的目录下,再次./configure --enable-fpm >> make >> make install;

完成之后意外的发现有了php-fpm.conf等文件,但是再次编译模块还是不成功,但也不是无功而返。

第二:(这是重点要说的)

一般下载php模块去PECL,里边的模块都是可用的,都没问题;

于是我下载好之后,开始编译,首先用phpizen生成configure文件,然后./confoigure先预编译一下,很成功没什么问题;
之后make

1
2
3
4
5
6
7
8
9
10
11
[iyunv@bogon memcache-3.0.8]# make
/bin/sh /usr/local/src/memcache-3.0.8/libtool --mode=compile cc -I/usr/local/include/php -I. -I/usr/local/src/memcache-3.0.8 -DPHP_ATOM_INC -I/usr/local/src/memcache-3.0.8/include -I/usr/local/src/memcache-3.0.8/main -I/usr/local/src/memcache-3.0.8 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -c /usr/local/src/memcache-3.0.8/memcache.c -o memcache.lo
mkdir .libs
cc -I/usr/local/include/php -I. -I/usr/local/src/memcache-3.0.8 -DPHP_ATOM_INC -I/usr/local/src/memcache-3.0.8/include -I/usr/local/src/memcache-3.0.8/main -I/usr/local/src/memcache-3.0.8 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /usr/local/src/memcache-3.0.8/memcache.c  -fPIC -DPIC -o .libs/memcache.o
In file included from /usr/local/src/memcache-3.0.8/php_memcache.h:34:0,
                 from /usr/local/src/memcache-3.0.8/memcache.c:30:
/usr/local/src/memcache-3.0.8/memcache_pool.h:45:47: 致命错误:ext/standard/php_smart_str_public.h:没有那个文件或目录
#include "ext/standard/php_smart_str_public.h"
                                               ^
编译中断。
make: *** [memcache.lo] 错误 1



出现这种错误,缺少这个文件,刚开始没多想,去网上找了一个这个文件的模板,添加了进来,

之后再make出现这种情况

wKioL1Z3pOTw1tb8AAFZrhUc1bQ914.jpg
这就游戏有些棘手了,因为不可能一个文件一个文件去改配置啊,所以错误不是在这;

在此之前我用低版本的L N M P编译过memcache,一样的源码包,很正常,于是我又开了一个低版本的php测试,其他的配置都同高版本一样(只有系统版本和php版本不一样),memcache包也用的相同的;每一把都很正常的就ok了;

于是版本出的问题占百分之八十了。

我用make出的错误,去比较两个模块内的文件

QQ截图20160314091828.png


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-190524-1-1.html 上篇帖子: PHP更新多行数据库 下篇帖子: php5apache2_2.dll被appaceh httpd.conf加载出错 The requested operation has failed
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表