标签: apcu

在 PHP 8 上安装 apcu_bc 包时遇到问题

pecl install apcu_bc 在 PHP 8 上安装包时遇到以下错误

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 }, …
Run Code Online (Sandbox Code Playgroud)

php apcu php-8

10
推荐指数
1
解决办法
8844
查看次数

UndefinedFunctionException - 尝试从命名空间"Doctrine\Common\Cache"调用函数"apc_fetch"

我想跑

app/console doctrine:schema:create --dump-sql
Run Code Online (Sandbox Code Playgroud)

在Ubuntu 16.04上使用Symfony 2.7和PHP7.上面的命令会引发以下错误:

[Symfony的\元器件\调试\异常\ UndefinedFunctionException]

尝试从命名空间"Doctrine\Common\Cache"调用函数"apc_fetch".

以下帖子列出了类似的问题 - 没有可行的解决方案(从我的角度来看)

我已php-apcu安装,php -m输出:

[PHP Modules]
apcu
calendar
Core
ctype
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zlib

[Zend Modules]
Zend OPcache
Run Code Online (Sandbox Code Playgroud)

输出 php …

php symfony apcu

6
推荐指数
1
解决办法
7471
查看次数

memcached、APCu 或 redis 作为 Symfony 和 Doctrine 的缓存

我们目前正试图决定,我们应该在 Symfony 和 Doctrine 中使用什么缓存。它背后的想法是通过缓存值来减少负载和数据库调用。有问题的缓存系统是:memcachedAPCuredis

我们目前最喜欢的是 APCu,因为 memcache 可能会有一个小的开销,因为它可以作为分布式缓存运行,但是它也允许将 PHP 会话直接存储在 memcache 中。Redis 接缝“太多了”,因为它可以用作数据库,所以可能会有很多开销,这就留下了 APCu。

我们目前使用的 Symfony 版本是 2.8,我们可能会在不久的将来更新到 3.x,以便更好地集成缓存(对于3.13.3,我们可能会等待 Symfony 3.3 发布)

memcached 的优势很明显,它是分布式的,这意味着多个服务器可以访问它。然而,我们目前只在一台服务器上运行 Symfony 应用程序,还没有计划改变这一点。

问题:三种不同缓存系统的优缺点是什么?特别是,当使用 Symfony 2.8 与使用 Symfony 3.x 时?什么是负载,它们会放在系统上吗?

如果问题是基于意见的,请随时关闭它。

memcached caching symfony doctrine-orm apcu

6
推荐指数
1
解决办法
2579
查看次数

安装 APC 时出错

安装 APC 时出现以下错误

我也遵循了https://wiki.bitnami.com/Components/PHP#How_to_install_APC_module.3f 中提到的指导方针,但同样的错误。

我正在尝试将它安装在 Google App Engine 中 Wordpress 的 Bitnami 图像中。

         pecl install apc
        WARNING: configuration download directory "/tmp/pear/download" is not writeable.  Change download_dir config variable to a writeable dir to avoid this warning
        Cannot install, php_dir for channel "pecl.php.net" is not writeable by the current user
        user@edudrona-prod-vm:~$ sudo pecl install apc
        downloading APC-3.1.13.tgz ...
        Starting to download APC-3.1.13.tgz (171,591 bytes)
        .....................................done: 171,591 bytes
        55 source files, building
        running: phpize
        Configuring for:
        PHP Api Version: …
Run Code Online (Sandbox Code Playgroud)

wordpress caching apc apcu

5
推荐指数
0
解决办法
1253
查看次数

如何清除Doctrine APC缓存以进行生产?

当我向我的一个实体添加一个列并将其发布用于生产时,我有这个问题我必须重新启动Apache才能清除Doctrine元数据APC/APCU缓存.

我已尝试过以下所有命令,但没有一个对我有用:

php -r "apc_clear_cache();"
php -r "apcu_clear_cache();"

sudo php app/console doctrine:cache:clear-metadata
sudo php app/console doctrine:cache:clear-query
sudo php app/console doctrine:cache:clear-result
Run Code Online (Sandbox Code Playgroud)

我收到了--env = prod的错误消息

sudo php app/console doctrine:cache:clear-metadata  --env=prod
sudo php app/console doctrine:cache:clear-query  --env=prod
sudo php app/console doctrine:cache:clear-result --env=prod

 [LogicException]
  Cannot clear APC Cache from Console, its share in the Web server memory and not accessible from the CLI.
Run Code Online (Sandbox Code Playgroud)

我可以让它刷新Doctrine缓存的唯一方法是重启我的apache服务器,这有时可能是一个问题.

我的Symfony项目中Doctine的缓存设置:

doctrine:
    orm:
        metadata_cache_driver: apc
        result_cache_driver: apc
        query_cache_driver: apc
        second_level_cache:
            enabled: true
            log_enabled: false
            region_cache_driver: apc
Run Code Online (Sandbox Code Playgroud)

在每次向生产发布新架构更新时,如何在不重新启动Apache的情况下清除APC缓存.如果负载均衡器后面有许多服务器,情况会更糟.

caching apc symfony doctrine-orm apcu

5
推荐指数
1
解决办法
4723
查看次数

PHP 8.2 / APCu 5.1.22 缺少 php_apcu.dll?

我正在尝试在Windows上设置带有APCu扩展的PHP 8.2

但是,似乎PHP 8.2兼容性仅添加到最新的APCu版本5.1.22(2022-09-19 发布)中,并且php_apcu.dll缺少相应的文件 - 我在两个位置都找不到它:

当我尝试使用以前的 APCu 版本5.1.21时,出现以下错误:

PHP Warning:  PHP Startup: apcu: Unable to initialize module
Module compiled with module API=20210902
PHP    compiled with module API=20220829
These options need to match
Run Code Online (Sandbox Code Playgroud)

那么我应该将 PHP 安装降级到8.1.x吗?

php apc apcu

5
推荐指数
1
解决办法
4469
查看次数

APCu不存储在PHP 7中

APCu只会获取存储在当前页面加载中的值.

刷新这两次:

<?php 
var_dump(apcu_fetch("test"));

apcu_store("test", "works", 3600);
var_dump(apcu_fetch("test"));
?>
Run Code Online (Sandbox Code Playgroud)

输出以下内容:

bool(false) string(5) "works"
Run Code Online (Sandbox Code Playgroud)

因此它会在当前页面加载时存储数据.之后它就不存在了......

我正在使用PHP 7.0.0上的默认配置的最新稳定版本(5.1.2).

我尝试过不同版本的APCu和PHP 7.在Google上也找不到类似的东西......

这是我的PHP apcu配置: APCu配置损坏

php caching pecl apcu

4
推荐指数
1
解决办法
2600
查看次数

Symfony 3/APCu + PHP7

我再次遇到APCu和PHP7的问题.这是我的conf.

framework:
    validation:
        cache: validator.mapping.cache.doctrine.apc
    serializer:
        cache: serializer.mapping.cache.apc

doctrine:
    orm:
        metadata_cache_driver: apcu
        result_cache_driver: apcu
        query_cache_driver: apcu
Run Code Online (Sandbox Code Playgroud)

网站工作正常,但是当我发送表单时,我总是收到此错误:

[2016-06-29 09:17:12] request.CRITICAL:未捕获PHP异常Symfony\Component\Debug\Exception\UndefinedFunctionException:"尝试从命名空间"Doctrine\Common\Cache"调用函数"apc_fetch"." at ROUTE_TO_PROJECT/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php第41行{"exception":"[object](Symfony\Component\Debug\Exception\UndefinedFunctionException(code:0):试图调用来自命名空间\"Doctrine\Common\Cache \"的函数\"apc_fetch \".在ROUTE_TO_PROJECT/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php:41)"} []

这是我的作曲家:

"require": {
    "php": ">=5.5.9",
    "symfony/symfony": "3.0.*",
    "doctrine/orm": "^2.5",
    "doctrine/doctrine-bundle": "^1.6",
    "doctrine/doctrine-cache-bundle": "^1.2",
    "symfony/swiftmailer-bundle": "^2.3",
    "symfony/monolog-bundle": "^2.8",
    "sensio/distribution-bundle": "^5.0",
    "sensio/framework-extra-bundle": "^3.0.2",
    "incenteev/composer-parameter-handler": "^2.0",
    "knplabs/knp-paginator-bundle": "^2.5",
    "liip/imagine-bundle": "^1.5",
    "jms/serializer-bundle": "^1.1",
    "symfony/assetic-bundle": "^2.8",
    "gopay/payments-sdk-php": "^1.1",
    "knplabs/knp-snappy-bundle": "~1.4",
    "friendsofsymfony/user-bundle": "~2.0@dev"
Run Code Online (Sandbox Code Playgroud)

为什么Symfony调用apc_fetch而不是apcu_fatch?

php apc symfony php-7 apcu

3
推荐指数
1
解决办法
6277
查看次数

PHP apc / apcu缓存不能保持中间结果,而shmop可以,为什么?

我在使用PHP将本地结果存储在本地时遇到问题。

APC

apc_store("foo", "bar");
$ret = apc_fetch("foo");
Run Code Online (Sandbox Code Playgroud)

APCu

apcu_store("foo", "bar", 0);
$ret = apcu_fetch("foo");
Run Code Online (Sandbox Code Playgroud)

我将apc_store / apcu_store与apc_store / apcu_store存储在一个php脚本的php_cli下,并与apc_fetch / apcu_fetch一起在另一个php脚本中进行获取,并发现其$ret为空。

同时,shmop

$shmKey = ftok(__FILE__, 't');
$shmId = shmop_open($shmKey, "c", 0644, 1024);
$dataArray = array("foo" => "bar");
shmop_write($shmId, serialize($dataArray), 0);

$retArray = unserialize(shmop_read($shmId, 0, shmop_size($shmId)));
$ret = $retArray['foo'];
Run Code Online (Sandbox Code Playgroud)

在这里,我得到$ret"bar"

APC/APCu中间结果是否应该像本地缓存一样shmop

php caching apc apcu

2
推荐指数
1
解决办法
361
查看次数

与apt-get一起安装在PHP7.2-apache拉伸映像上时未启用Apcu

我在php7.2-apache-stretch上使用apt-get install安装了php-apcu,但无法启用它。apcu.so和apcu.ini文件是在安装过程中创建的。服务Apache也将重新启动,并且apcu.ini的内容也不错,但是php -m在列表中未显示apcu。也曾经尝试过phpenmod,但似乎还是行不通。但是我在安装过程中没有出现任何错误。该问题似乎与映像有关,因为我也曾尝试以相同的方式在新鲜的Debian映像上安装apcu,并且它正在工作。

有什么想法吗?

apcu php-7.2

2
推荐指数
2
解决办法
6440
查看次数

在 docker php 7.3 上启用 APCU CLI

我正在尝试在我的 docker 容器上启用 apcu cli 以运行我的测试。这是我的 docker 文件,我使用:

  • 基本的 php 图像
  • 安装作曲家
  • 安装 xdebug
  • 安装更多 docker 库
  • 安装apcu

当我尝试在这个 docker 中运行我的测试时,它由于 apcu 错误而失败。但是,在 prod 中,apcu 运行良好,因为它已启用但测试需要启用 cli。

FROM php:7.3-cli

ARG APCU_VERSION=5.1.11

RUN apt-get update  && apt-get -y install git zip libzip-dev wget \
zlib1g-dev unzip libpq-dev git-core libmcrypt-dev vim libfcgi0ldbl gnupg \
libfreetype6-dev libjpeg62-turbo-dev libpng-dev libicu-dev

#INSTALL COMPOSER
RUN echo "memory_limit = -1" > /usr/local/etc/php/conf.d/memory_limit.ini
RUN curl -sS http://getcomposer.org/installer | php -- --filename=composer && chmod a+x composer  && mv composer …
Run Code Online (Sandbox Code Playgroud)

php docker apcu

2
推荐指数
1
解决办法
1万
查看次数

如何通过 pecl 为 Mac 上的不同 php 版本安装 php 扩展

我无法分别为不同的 php 版本安装 apcu 等 php 扩展。我在 MacOS Mojave 上运行 php7.1 和 php7.3(通过 brew 安装)

我已经尝试过类似的事情, pecl -d php_suffix=7.1 install <package> 因为我在这里找到了这个建议。但它根本不起作用。

具体问题是php7.1安装apcu的同时安装php7.3。无论我做什么 - apcu get 仅适用于 php7.3。

当我运行时php -v我得到PHP 7.1 当我检查目录/usr/local/Cellar/php@7.1/7.1.30_1/include/php/ext时没有apcu

有没有办法告诉 pecl 应该为哪个版本安装扩展?

php macos pecl apcu

-2
推荐指数
1
解决办法
1662
查看次数

标签 统计

apcu ×12

php ×8

apc ×5

caching ×5

symfony ×4

doctrine-orm ×2

pecl ×2

docker ×1

macos ×1

memcached ×1

php-7 ×1

php-7.2 ×1

php-8 ×1

wordpress ×1