8

我正在运行最新的 Zend 社区服务器并想学习 Symfony2,但 config.php 给了我一个错误,我的 APC(替代 php 缓存)已被弃用,我必须升级它。

我正在运行 OS X Lion,并且已经在以下位置找到了 zend 文件夹:

    /usr/local/zend/

我还从http://pecl.php.net下载了源包(3.1.9 stable),但不知道如何编译或放在哪里。

4

6 回答 6

4

好的,所以我可能找到了最佳解决方案 - Zend Server 具有内置 Zend Optimizer+,它比 APC 快约 1.8 倍(320 req./s VS ~190 req./s 或普通超极本)。

所以你只需要在 Symfony2 配置中注释掉 APC 检查 - 缓存仍然可以工作。

要在 Symfony2 中禁用 APC,请执行以下操作:

  1. 打开 Symfony2 需求文件:

/Symfony/app/SymfonyRequirements.php

替换以下代码行:

        if (version_compare($installedPhpVersion, '5.4.0', '>=')) {
            $this->addRequirement(
                version_compare(phpversion('apc'), '3.1.13', '>='),
                'APC version must be at least 3.1.13 when using PHP 5.4',
                'Upgrade your <strong>APC</strong> extension (3.1.13+).'
            );
        } else {
            $this->addRequirement(
                version_compare(phpversion('apc'), '3.0.17', '>='),
                'APC version must be at least 3.0.17',
                'Upgrade your <strong>APC</strong> extension (3.0.17+).'
            );
        }

和:

/* DISABLED FOR ZEND SERVER, USING ZEND OPTIMIZER+ INSTEAD
       if (version_compare($installedPhpVersion, '5.4.0', '>=')) {
            $this->addRequirement(
                version_compare(phpversion('apc'), '3.1.13', '>='),
                'APC version must be at least 3.1.13 when using PHP 5.4',
                'Upgrade your <strong>APC</strong> extension (3.1.13+).'
            );
        } else {
            $this->addRequirement(
                version_compare(phpversion('apc'), '3.0.17', '>='),
                'APC version must be at least 3.0.17',
                'Upgrade your <strong>APC</strong> extension (3.0.17+).'
            );
        }
*/

Source: http://phpcloud-symfony2.pen.io/

于 2013-07-14T02:19:24.843 回答
3

我测试了我之前发布(现在已删除)的配置几次,不得不撤回指南。该make test命令返回了一堆错误。原因之一是 Zend 在某些扩展(如 APC!)中有自己的字节码。

毕竟我放弃了 Zend Server CE 并切换到了 MAMP。给我关于如何在 MAMP 上正确设置 Symfony 2 的工作指南:点击这里

于 2011-10-10T00:03:21.400 回答
3

我在这里找到了一个可能的解决方案

希望有帮助

于 2012-11-28T06:35:35.207 回答
2

我也是 Mac 用户,我在 Symfony 和 Zend Server 上遇到了同样的问题。我最后做的是从我的 Zend Server 控制面板禁用 apc 扩展。这样做,出现在 symfony 配置中的警告变成了一条通知,告诉我安装 apc 或其他一些缓存管理器。之后,我再次启用了 apc,一切正常。我现在这不是一个很好的解决方法,但是您在尝试本地开发时可能会遇到这个问题,而当您将网站上传到真实主机时,您可能不会遇到这个问题。

我希望它有帮助!

于 2011-10-09T22:11:46.257 回答
2

据我所知,Zend Server 不支持 APC。

它们提供将 APC 函数映射到 Zend 数据缓存对象的包装函数。

于 2012-04-25T07:37:34.557 回答
1

仅限 Windows

这对我有用:

在 Zend Server CE 中启用备用 PHP 缓存 (APC) 扩展

Download non-thread safe VC9 APC DLL (I went for php_apc-5.3-nts-svn20100226-vc9-x86.zip) from http://downloads.php.net/pierre/
Unzip it and put the extension dll php_apc.dll into C:\Program Files\Zend\ZendServer\lib\phpext (assuming you left the Zend Server install location as its default)
Add the following to your php.ini (in C:\Program Files\Zend\ZendServer\etc):

;Enable APC
extension=php_apc.dll
;Enable upload progress bar
apc.rfc1867=on

Give Apache/PHP a restart

现在查看 Zend 仪表板上的 phpinfo(),您应该会看到类似以下内容,其中 apc 和各种指令在输出的配置部分中输出。任何 APC 文件上传进度条插件(例如http://www.ibm.com/developerworks/library/os-php-v525/index.html)现在应该可以工作了。

于 2013-07-12T20:04:46.173 回答