在 PHP 8 上安装 apcu_bc 包时遇到问题
Facing issues while installing apcu_bc package on PHP 8
在 PHP 8
上安装软件包 pecl install apcu_bc
时遇到以下错误
In file included from /tmp/pear/temp/apcu_bc/php_apc.c:35:
/usr/local/include/php/ext/apcu/apc_arginfo.h:4:3: error: #error Not supported on PHP >= 8.0
# error Not supported on PHP >= 8.0
^~~~~
In file included from /usr/local/include/php/main/php.h:35,
from /tmp/pear/temp/apcu_bc/php_apc.c:23:
/usr/local/include/php/Zend/zend_API.h:85:69: error: 'zif_apcu_store' undeclared here (not in a function); did you mean 'zif_apc_dec'?
#define ZEND_FALIAS(name, alias, arg_info) ZEND_RAW_FENTRY(#name, zif_##alias, arg_info, 0)
^~~~
/usr/local/include/php/Zend/zend_API.h:77:74: note: in definition of macro 'ZEND_RAW_FENTRY'
#define ZEND_RAW_FENTRY(zend_name, name, arg_info, flags) { zend_name, name, arg_info, (uint32_t) (sizeof(arg_info)/sizeof(struct _zend_internal_arg_info)-1), flags },
^~~~
/usr/local/include/php/main/php.h:387:21: note: in expansion of macro 'ZEND_FALIAS'
#define PHP_FALIAS ZEND_FALIAS
^~~~~~~~~~~
/tmp/pear/temp/apcu_bc/php_apc.c:173:2: note: in expansion of macro 'PHP_FALIAS'
PHP_FALIAS(apc_store, apcu_store, arginfo_apcu_store)
^~~~~~~~~~
/tmp/pear/temp/apcu_bc/php_apc.c:173:42: error: 'arginfo_apcu_store' undeclared here (not in a function)
PHP_FALIAS(apc_store, apcu_store, arginfo_apcu_store)
^~~~~~~~~~~~~~~~~~
/usr/local/include/php/Zend/zend_API.h:77:80: note: in definition of macro 'ZEND_RAW_FENTRY'
#define ZEND_RAW_FENTRY(zend_name, name, arg_info, flags) { zend_name, name, arg_info, (uint32_t) (sizeof(arg_info)/sizeof(struct _zend_internal_arg_info)-1), flags },
^~~~~~~~
/usr/local/include/php/main/php.h:387:21: note: in expansion of macro 'ZEND_FALIAS'
#define PHP_FALIAS ZEND_FALIAS
apcu_bc 软件包在 PHP 8 上受支持吗?
不幸的是....根据维护者的回复。
some changes in APCu API make this component dead and unsupported for PHP 8
除了sung jack的回答。
php-apcu-bc is dropped in PHP 8 因为对它没有依赖性。
但 APCu 仍在使用中。您可以使用以下命令安装它
mkdir -p /usr/src/php/ext/apcu && curl -fsSL https://pecl.php.net/get/apcu | tar xvz -C "/usr/src/php/ext/apcu" --strip 1 && docker-php-ext-install apcu
或
RUN pecl install APCu
&& docker-php-ext-enable apcu
&& echo "apc.enabled=1" >> /usr/local/etc/php/conf.d/apcu.ini \
&& echo "apc.enable_cli=1" >> /usr/local/etc/php/conf.d/apcu.ini \
在 PHP 8
上安装软件包pecl install apcu_bc
时遇到以下错误
In file included from /tmp/pear/temp/apcu_bc/php_apc.c:35:
/usr/local/include/php/ext/apcu/apc_arginfo.h:4:3: error: #error Not supported on PHP >= 8.0
# error Not supported on PHP >= 8.0
^~~~~
In file included from /usr/local/include/php/main/php.h:35,
from /tmp/pear/temp/apcu_bc/php_apc.c:23:
/usr/local/include/php/Zend/zend_API.h:85:69: error: 'zif_apcu_store' undeclared here (not in a function); did you mean 'zif_apc_dec'?
#define ZEND_FALIAS(name, alias, arg_info) ZEND_RAW_FENTRY(#name, zif_##alias, arg_info, 0)
^~~~
/usr/local/include/php/Zend/zend_API.h:77:74: note: in definition of macro 'ZEND_RAW_FENTRY'
#define ZEND_RAW_FENTRY(zend_name, name, arg_info, flags) { zend_name, name, arg_info, (uint32_t) (sizeof(arg_info)/sizeof(struct _zend_internal_arg_info)-1), flags },
^~~~
/usr/local/include/php/main/php.h:387:21: note: in expansion of macro 'ZEND_FALIAS'
#define PHP_FALIAS ZEND_FALIAS
^~~~~~~~~~~
/tmp/pear/temp/apcu_bc/php_apc.c:173:2: note: in expansion of macro 'PHP_FALIAS'
PHP_FALIAS(apc_store, apcu_store, arginfo_apcu_store)
^~~~~~~~~~
/tmp/pear/temp/apcu_bc/php_apc.c:173:42: error: 'arginfo_apcu_store' undeclared here (not in a function)
PHP_FALIAS(apc_store, apcu_store, arginfo_apcu_store)
^~~~~~~~~~~~~~~~~~
/usr/local/include/php/Zend/zend_API.h:77:80: note: in definition of macro 'ZEND_RAW_FENTRY'
#define ZEND_RAW_FENTRY(zend_name, name, arg_info, flags) { zend_name, name, arg_info, (uint32_t) (sizeof(arg_info)/sizeof(struct _zend_internal_arg_info)-1), flags },
^~~~~~~~
/usr/local/include/php/main/php.h:387:21: note: in expansion of macro 'ZEND_FALIAS'
#define PHP_FALIAS ZEND_FALIAS
apcu_bc 软件包在 PHP 8 上受支持吗?
不幸的是....根据维护者的回复。
some changes in APCu API make this component dead and unsupported for PHP 8
除了sung jack的回答。
php-apcu-bc is dropped in PHP 8 因为对它没有依赖性。
但 APCu 仍在使用中。您可以使用以下命令安装它
mkdir -p /usr/src/php/ext/apcu && curl -fsSL https://pecl.php.net/get/apcu | tar xvz -C "/usr/src/php/ext/apcu" --strip 1 && docker-php-ext-install apcu
或
RUN pecl install APCu
&& docker-php-ext-enable apcu
&& echo "apc.enabled=1" >> /usr/local/etc/php/conf.d/apcu.ini \
&& echo "apc.enable_cli=1" >> /usr/local/etc/php/conf.d/apcu.ini \