标签:# 框架

Yaf学习小记

工作中需要用到,提前学习下。以此文记录下遇到的问题或者知识点 ##安装 && 配置 1、phpize 作用 2、m4作用 m4 是 POSIX 标准中的一部分,所有版本的 UNIX 下都可用。虽然这种语言可以单独使用,但大多数人需要 m4 仅仅是因为 GNU autoconf 中的 “configure” 脚本依赖它。宏处理器(或预处理器)一般用作文本替换工具。最终用户经常会用它来处理要反复使用的文本模板,典型的是用于编程工具,还会用于文本编辑和文字处理工具。 m4 是一种宏处理器,它扫描用户输入的文本并将其输出,期间如果遇到宏就将其展开后输出。宏有两种,一种是内建的,另一种是用户定义的,它们能接受任意数量的参数。除了做展开宏的工作之外,m4 内建的宏能够加载文件,执行 Shell 命令,做整数运算,操纵文本,形成递归等等。m4 可用作编译器的前端,或者单纯作为宏处理器来用。 参考文章: 作者:garfileo  作者主页 本文整理自:https://segmentfault.com/a/1190000004104696 整理者:Timekeeperl    csdn博客 3、phpize 时 m4 报错 need GNU m4 1.4 or later: /usr/local/bin/m4 检查问题时候发现查找到的m4已经无法正常使用 网上找寻了一些方法,尝试了更新,无果 brew upgrade m4 然后发现系统内是存在一个1.4.8版本的m4的,位置如下: usr/local/Cellar/m4/1.4.18 遂查了下改变这个配置文件的位置: /usr/local/bin/autom4te 此文件的第90行处,是m4的路径配置,将m4的路径设置为 /usr/local/Cellar/m4/1.4.18/bin/m4 至此 done 4、make 时 pcre.h 报错 /usr/include/php/ext/pcre/php_pcre.h:29:10: fatal error: 'pcre.h' file not found #include "pcre.h" ^~~~~~~~ 1 error generated. make: *** [routes/yaf_route_regex.lo] Error 1 查了下原因:没有安装pcre,或者安装pcre的目录不对 brew install pcre 解决 5、make install 报错 cp: /usr/lib/php/extensions/no-debug-non-zts-20160303/#INST@62550#: Operation not permitted Mac OS Sierra 安装PHP扩展,在make install 的时候,出现类似 cp: /usr/lib/php/extensions/no-debug-non-zts-20131226/#INST@12567#: Operation not permitted make: *** [install-modules] Error 1 的错误,是因为是OSX 10.11 El Capitan开始,新添加了一个新的安全机制叫系统完整性保护System Integrity Protection (SIP),所以对于目录 /System /sbin /usr 不包含(/usr/local/) 仅仅供系统使用,其它用户或者程序无法直接使用,而我们的/usr/lib/php/extensions/刚好在受保护范围内。 解决办法是 禁掉SIP保护机制: 重启系统 按住Command + R (重新亮屏之后就开始按,象征地按几秒再松开,出现苹果标志,ok) 菜单“实用工具” ==>> “终端” ==>> 输入csrutil disable;执行后会输出:Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect. 重启系统 禁止掉SIP后,就可以顺利的安装了,当然装完了以后记得重新打开SIP,方法同上,只是命令是csrutil enable。当然,就算关掉了SIP保护机制,你依然需要root权限将yaf.so拷贝进去。
Read More ~