CentOS安装PHP8扩展

curl扩展无法安装

  1. CURL扩展无法安装是一个特例,它存在的问题不太常见

  2. 如果是因为curl依赖没有安装的话,执行以下命令即可

    yum install libcurl-devel -y
    
  3. 如果是make过程报以下错误,则看下一步

    ext/curl/multi.c:580:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
    
  4. 这是因为你的make脚本不支持当前语法,修改ext/curl/multi.c以下代码即可:

    # 将第580行代码
    for (zval *pz_ch = (zval *) zend_llist_get_first_ex(&curl_multi->easyh, &pos); pz_ch;
    # 改为
    zval *pz_ch = (zval *) zend_llist_get_first_ex(&curl_multi->easyh, &pos);for (; pz_ch;
    

mbstring扩展无法安装

  1. 如果是make过程报以下错误,则看下一步

    ext/mbstring/mbstring.c:1283:4: error: ‘for’ loop initial declarations are only allowed in C99 mode
    ext/mbstring/mbstring.c:1299:4: error: ‘for’ loop initial declarations are only allowed in C99 mode
    ext/mbstring/mbstring.c:1367:3: error: ‘for’ loop initial declarations are only allowed in C99 mode
    ext/mbstring/mbstring.c:2744:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
    
  2. 这是因为你的make脚本不支持当前语法,修改ext/mbstring/mbstring.c以下代码即可:

    # 将第1283行代码
    for (size_t i = 0; i < n; i++, entry++) {
    # 改为
    size_t i = 0;for (; i < n; i++, entry++) {
    
    # 将第1299行代码
    for (size_t i = 0; i < n; i++, entry++) {
    # 改为
    i = 0;for (; i < n; i++, entry++) {
    
    # 将第1367行代码
    for (size_t i = 0; i < n; i++) {
    # 改为
    size_t i = 0;for (; i < n; i++) {
    
    # 将第2744行代码
    for (const mbfl_encoding **encodings = mbfl_get_supported_encodings(); *encodings; encodings++) {
    # 改为
    const mbfl_encoding **encodings = mbfl_get_supported_encodings();for (; *encodings; encodings++) {
    

自定义扩展安装问题

  1. TSRMLS_D、TSRMLS_DC、TSRMLS_C、TSRMLS_CC
    # php-7.x/TSRM/TSRM.h
    # php-8.x/UPGRADING.INTERNALS中提到:TSRMLS_D、TSRMLS_DC、TSRMLS_C、TSRMLS_CC已经被移除了,因此,有些地方的语法要做变动
    # 【TSRMLS_D】 等价于 【void ***tsrm_ls】
    # 【TSRMLS_C】 等价于 【tsrm_ls】
    # 【TSRMLS_DC】 等价于 【, TSRMLS_D】
    # 【TSRMLS_CC】 等价于 【, TSRMLS_C】
    【TSRMLS_DC】 等价于 【, TSRMLS_D】 → 在PHP8中改为【】(删除即可)
    【argc TSRMLS_CC】 等价于 【argc , TSRMLS_C】 → 在PHP8中改为【ZEND_NUM_ARGS()】
    
Copyright © 豆包嘿嘿~ 2012-∞ 冀ICP备17033181号 all right reserved,powered by Gitbook修订: 2021-01-08 01:05:36

results matching ""

    No results matching ""