PHP编译问题整理

PHP发展到7,但安装包管理是各种痛,有些错误,解决方案跟系统关系很大,别人的方案并不适合你,以下仅记录网上很难找到的解决方案:
环境:centos6.9 php-7.1.19

  1. configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works
    解决方案: 下载安装icu 然后重新编译时指定路径 --with-icu-dir=/usr/local/icu
    wget http://download.icu-project.org/files/icu4c/52.1/icu4c-52_1-src.tgz
    tar xf icu4c-52_1-src.tgz
    cd icu/source
    mkdir /usr/local/icu
    ./configure --prefix=/usr/local/icu
    make && make install

  2. configure: error: Don’t know how to define struct flock on this system, set --enable-opcache=no
    解决方案: 缺少上个库,安装后系统找不到 修改 /etc/ld.so.conf
    加一行: /usr/local/icu/lib
    ldconfig -v
    重新编译

  3. undefined reference to `libiconv_open’
    解决方案:
    如果确实没安装libiconv可以安装后指定路径,若安装后还报错,可用以下方案: configure后,修改Makefile EXTRA_LIBS这行 -lcrypt 在最后面加上 -liconv (神奇的bug,果然PHP是最好的语言)

  4. configure: error: Cannot find OpenSSL’s libraries
    解决方案:
    一种是没有安装 openssl,另一种是安装了找不到libssl.so 文件
    先安装 yum install openssl
    若提示已安装,则查找文件位置
    find / -name libssl.so
    找到后做软连接 ln -s /usr/xxx/libssl.so /usr/lib64 重新编译

  5. configure: error: off_t undefined; check your library configuration
    一般为64位系统找不到变量
    编辑 vim /etc/ld.so.conf.d
    添加 /usr/local/lib64
    ldconfig -v
    另外一个可能是安装了oci扩展,在 /etc/ld.so.conf.d加入oracle客户端路径即可: /usr/lib/oracle/11.2/client64/lib

  6. libxml2 not found
    yum install libxml2-devel

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值