我正在运行社交引擎4,已经很难得到APC安装,并想知道有没有一步一步的指示,如何做到这一点?
今天早些时候,我有我的兄弟帮助我,我想我们已经把它舔了一下,除了我不知道怎么把php.ini文件放在APC上。 任何想法或build议?
谢谢
假设你在Linux上:
[root@server ~]# pecl install apc
要configurationAPC,最低限度需要php.ini文件中的以下内容:
[apc] extension=apc.so
这将启用APC的默认设置 。
hobodave说什么是一半的工作。 就这么办 :
下载http://pecl.php.net/get/APC并将apc.php解压到服务器上的Web文件夹,然后将浏览器指向它。 你将有一个很好的APC内存使用情况。 在APC的正确configuration中,这个图表在运行几个小时后必须保持稳定(所以所有的PHP页面都被caching了)。 内存碎片将在开发人员更新php文件时发生。
APC通过使用大量内存来节省CPU周期。 所以给它很多内存。 一个好的做法是给它比实际使用的内存多20%。
通过在php.ini中增加apc.shm_size来执行此操作并重新启动httpd。 如果您的服务器有足够的内存1000M(1GB)开始。
可以将APC编译为使用共享段存储器或mmap内存。 你可以在apc.php> general information> Shared Memory上查看
如果您的APC使用mmap,那么您可以增加没有问题。 否则,段的大小受OS的限制。 您必须将apc.shm_size设置为允许的最大大小,并使用apc.shm_segments选项增加段的数量。
input以下命令查看每个段的系统限制:
sysctl -a | grep -E "shmall|shmmax"
一旦你这样做,你必须定期检查,APC仍然有足够的内存。
将apc.ttl设置为7200(build议值)。 很多pipe理员使用ttl为0来避免以下常见错误
警告:require_once()[function.require-once]:无法为池分配内存。 在/path/到/文件
使用TTL为0意味着APC将在内存不足时清除所有caching。 错误不再出现,但它使得APC效率远远不够。 这是一个没有风险,没有麻烦,“我不想做我的工作”的决定。 APC并不意味着要这样使用。 您应该select足够高的TTL,以便访问最多的页面不会过期。 最好的是提供足够的内存,以便APC不需要刷新caching。
只需阅读手册了解如何使用ttl: http : //www.php.net/manual/en/apc.configuration.php#ini.apc.ttl
APC将PHP操作码存储在内存中。 操作码比源PHP大。 因为一个php指令被翻译成很多操作码。
只允许32MB的默认值是非常低的。 PHP的devise是当服务器有64MB,大多数脚本每页使用一个PHP文件。 如今,像Magento这样的解决scheme需要10k以上的文件(APC约60Mb)。 你应该允许足够的内存,所以大部分的PHP文件总是被caching。 这不是浪费,而是将操作码保存在内存中,而不是在文件caching中保存相应的原始php。 现在我们可以find24Gb内存的专用服务器,价格低至150美元,所以不要犹豫,允许几个GB到APC。 我在24GB的服务器上托pipe了5个Magento商店和〜40个wordpress网站,APC使用了1.2GB。 每Magento安装计数64MB,每个WordPress的20MB与一些插件。
首先考虑升级它! :)如果您使用支持多站点(Magento,Wordpress)的PHP应用程序,则应该在一个实例中合并它们。 所以你只需要cachingphp文件一次。
您可以使用apc.fiters来决定哪些文件必须被分割。 您应该caching最常访问的文件。
APC很酷,它使您的网站更快。 但不止于此,APC节省了CPU周期,APC省电,APC是环保的(为什么我花时间写这本configuration指南)。