douyouchou1085 2015-07-30 21:20
浏览 58

xampp apache apc在symfony2中不起作用

I have prollem of high TTFB (time to first byte). I have to install APC or xcache, both of which are not getting started on my apache webserver.

Please advise how to install the APC or xcache. opcache is installed, but I do not know how to use in Symfony2.

rpandey@FIRST-PC /c/xampp/htdocs/ims
$ php -v
C:\xampp\php\ext\php_apc.dll doesn't appear to be a valid Zend extension
PHP 5.6.11 (cli) (built: Jul  9 2015 20:55:40)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies


In the php.ini I have,
[APC]
zend_extension = "C:\xampp\php\ext\php_apc.dll"
;specifies the size for each shared memory segment 8MB to start
apc.shm_size=8M
;max amount of memory a script can occupy
apc.max_file_size=1M
apc.ttl=0
apc.gc_ttl=3600
; means we are always atomically editing the files
apc.file_update_protection=0
apc.enabled=1
apc.enable_cli=1
apc.cache_by_default=1
apc.include_once_override=0
apc.localcache=0
apc.localcache.size=512
apc.num_files_hint=1000
apc.report_autofilter=0
apc.rfc1867=1
apc.slam_defense=0
apc.stat=1
apc.stat_ctime=0
apc.ttl=7200
apc.user_entries_hint=4096
apc.user_ttl=7200
apc.write_lock=1

In my app/config/config_prod.yml

I want to do both framework:

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

#doctrine:
#    orm:
#        metadata_cache_driver: apc
#        result_cache_driver: apc
#        query_cache_driver: apc

I have commented doctrine for now. Will deal with it later.

In, app.php: I want to do the following

$apcLoader = new ApcClassLoader(sha1(__FILE__), $loader);
$loader->unregister();
$apcLoader->register(true);
  • 写回答

1条回答 默认 最新

  • duangao7133 2015-07-31 07:16
    关注

    The problem got resolved by using both the opcache and APCu. The TTFB has now come down from 6-10 secs to 100 ms. Thanks ficuscr for your help. I have another question about managing cache for which I will post a seperate question after I have done my research.

    My current app.php looks like this

    <?php
    
    use Symfony\Component\ClassLoader\ApcClassLoader;
    use Symfony\Component\HttpFoundation\Request;
    
    $loader = require_once __DIR__.'/../app/bootstrap.php.cache';
    //$loader = require_once __DIR__.'/../app/AppCache.php';
    
    // Enable APC for autoloading to improve performance.
    // You should change the ApcClassLoader first argument to a unique prefix
    // in order to prevent cache key conflicts with other applications
    // also using APC.
    
    $loader = new ApcClassLoader('ims', $loader);
    //$loader->unregister();
    //$apcLoader->register(true);
    $loader->register(true);
    
    require_once __DIR__.'/../app/AppKernel.php';
    require_once __DIR__.'/../app/AppCache.php';
    
    $kernel = new AppKernel('prod', true);
    $kernel->loadClassCache(); 
    $kernel = new AppCache($kernel); //comment it
    
    // When using the HttpCache, you need to call the method in your front controller instead of relying on the configuration parameter
    //Request::enableHttpMethodParameterOverride();
    //Request::enableHttpMethodParameterOverride();
    $request = Request::createFromGlobals();
    $response = $kernel->handle($request);
    //$response->setETag(md5($response->getContent()));
                    $response->setPublic(); // make sure the response is public/cacheable
                    //$response->isNotModified($request);
                    $response->setMaxAge(400);
                    $response->setSharedMaxAge(500);
    $response->send();
    $kernel->terminate($request, $response);
    
    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记