致力于IT技巧与知识分享

Windows Server 2008R2 配置PHP7.3指南 之 安装 APCu 拓展

第一步:下载php_apcu.dll

在http://pecl.php.net/package/apcu 要与php版本对应 将php_apc.dll放入你的ext目录

PHP 7.37.3非线程安全(NTS)x64 
7.3线程安全(TS)x64 
7.3非线程安全(NTS)x86 
7.3线程安全(TS)x86 
PHP 7.27.2非线程安全(NTS)x64 
7.2线程安全(TS)x64 
7.2非线程安全(NTS)x86 
7.2线程安全(TS)x86 
PHP 7.17.1非线程安全(NTS)x64 
7.1线程安全(TS)x64 
7.1非线程安全(NTS)x86 
7.1线程安全(TS)x86 


第二步:让php.ini支持apc扩展模块

打开php.ini 在 [PHP]组中加入:
代码如下:
extension=php_apcu.dll
apc.rfc1867 = on
apc.max_file_size = 100M
upload_max_filesize = 100M
post_max_size = 100M
//以上参数可自己定义

第三步:检查是否支持PHP APC apc_store apc_fetch
查看phpinfo中是否有apcu相关项

PHP官方运行APCU时参考配置说明:

这些函数的行为受 php.ini 中的设置影响。

虽然默认的APCu设置适用于许多安装,但严肃的用户应考虑调整以下参数。

有一个决定配置APCu。将为APCu分配多少内存。控制它的ini指令是apc.shm_size请 仔细阅读下面的相关章节。

一旦服务器运行,与扩展捆绑在一起的apc.php脚本应该被复制到docroot中并用浏览器查看,因为它提供了对APCu内部工作的详细分析。如果在PHP中启用GD,它甚至会显示一些有趣的图形。如果APCu正在工作,则缓存完整计数 (左侧)将显示缓存已达到最大容量的次数,并且必须强制清除最后一个apc.ttl中未访问的任何条目秒。在配置良好的缓存中,此数字最小化。如果缓存不断被填充,并因此被强制释放,那么所产生的搅拌将对脚本性能产生贬低的影响。最小化此数量的最简单方法是为APCu分配更多内存。

当使用mmap支持(内存映射)编译APCu时,它将仅使用一个内存段,这与使用SHM(SysV共享内存)支持使用多个内存段构建APCu时不同。MMAP没有像SHM在/ proc / sys / kernel / shmmax中那样的最大限制。通常建议使用MMAP支持,因为它会在重新启动Web服务器时更快地回收内存,并且总体上减少启动时的内存分配影响。

名字默认可修改范围更新日志
apc.enabled“1”PHP_INI_SYSTEM
Apckshan_segments“1”PHP_INI_SYSTEM
apc.shm_size“32M”PHP_INI_SYSTEM
apc.entries_hint“4096”PHP_INI_SYSTEM
apc.ttl“0”PHP_INI_SYSTEM
apc.gc_ttl“3600”PHP_INI_SYSTEM
apc.mmap_file_mask空值PHP_INI_SYSTEM
apc.slam_defense“1”PHP_INI_SYSTEM
apc.enable_cli“0”PHP_INI_SYSTEM
apc.use_request_time“1”PHP_INI_ALL
apc.serializer“默认”PHP_INI_SYSTEM
apc.rfc1867“0”PHP_INI_SYSTEM
apc.rfc1867_prefix“upload_”PHP_INI_SYSTEM
apc.rfc1867_name“APC_UPLOAD_PROGRESS”PHP_INI_SYSTEM
apc.rfc1867_freq“0”PHP_INI_SYSTEM
apc.rfc1867_ttl“3600”PHP_INI_SYSTEM
apc.coredump_unmap“0”PHP_INI_SYSTEM
apc.preload_path空值PHP_INI_SYSTEM

有关 PHP_INI_* 样式的更多详情与定义,见 配置可被设定范围

这是配置指令的简短说明。apc.enabled布尔

apc.enabled可以设置为0以禁用APC。这在APC静态编译到PHP时非常有用,因为没有其他方法可以禁用它(当编译为DSO时,php.ini中扩展 行只能被注释掉)。apc.shm_segments整数

要为编译器高速缓存分配的共享内存段的数量。如果APC的共享内存不足,但apc.shm_size 设置为系统允许的最高值,则提高此值可能会阻止APC耗尽其内存。apc.shm_size

每个共享内存段的大小由本常见问题解答中描述的简写符号给出。默认情况下,某些系统(包括大多数BSD变体)对共享内存段的大小具有非常低的限制。apc.entries_hint整数

关于可能存储的不同变量数量的“提示”。如果不确定,设置为零或省略。apc.ttl整数

在另一个条目需要此高速缓存条目槽的情况下,允许高速缓存条目在时隙中空闲的秒数。将此值保留为零意味着APC的缓存可能会填充过时的条目,而较新的条目将不会被缓存。如果缓存耗尽可用内存,则如果ttl等于0,则缓存将被完全清除。否则,如果ttl大于0,则APC将尝试删除过期的条目。apc.gc_ttl整数

缓存条目可能保留在垃圾收集列表中的秒数。如果服务器进程在执行缓存的源文件时死亡,则此值提供故障保护; 如果修改了源文件,则在达到此TTL之前,不会回收为旧版本分配的内存。设置为零可禁用此功能。apc.mmap_file_mask

如果使用–enable-mmap通过MMAP支持进行编译, 则mktemp样式的file_mask将传递给mmap模块,以确定mmap的内存区域是由文件支持还是由共享内存支持。对于直接文件支持的mmap,将其设置为/tmp/apc.XXXXXX (恰好是6 X s)。要使用POSIX样式的shm_open / mmap ,请在面具中的某处放置.shm。例如/apc.shm.XXXXXX 您也可以将它设置为/ dev / zero,以将内核的/ dev / zero接口用于匿名mmap的内存。保留未定义将强制匿名mmap。apc.slam_defense整数

在非常繁忙的服务器上,无论何时启动服务器或修改文件,您都可以创建许多进程的竞赛,所有进程都试图同时缓存同一个文件。此选项设置将跳过尝试缓存未缓存文件的进程的百分比。或者将其视为单个进程跳过缓存的概率。例如,将apc.slam_defense设置 为75意味着该进程有75%的可能无法缓存未缓存的文件。因此,设置越高,对缓存slams的防御就越大。将此值设置为0 将禁用此功能。apc.enable_cli整数

主要用于测试和调试。设置此选项可启用APC for CLI的PHP版本。在正常情况下,在每个CLI请求上创建,填充和销毁APC缓存并不理想,但是对于各种测试场景,能够轻松地为PHP的CLI版本启用APC非常有用。apc.serializer

用于配置APC以使用第三方序列化程序。apc.rfc1867布尔

RFC1867文件上载进度挂钩处理程序仅在APC是针对PHP 5.2.0或更高版本编译时才可用。当启用时,任何文件上传,其中包括一个名为场APC_UPLOAD_PROGRESS 在上传表单文件前场将导致APC自动创建一个upload_ 关键用户高速缓存条目,其中 的关键是价值APC_UPLOAD_PROGRESS形式进入。

请注意,APC_UPLOAD_PROGRESS指定的隐藏字段 必须位于文件字段之前,否则上载进度将无法正常工作。

请注意,此时文件上载跟踪不是线程安全的,因此在前一个上传时仍会发生的新上传将禁用先前的跟踪。

请注意,只有在完成所有文件传输后才能使用该速率

示例#1 apc.rfc1867示例<?php
print_r(apcu_fetch("upload_$_POST[APC_UPLOAD_PROGRESS]"));
?>

以上例程的输出类似于:

排列
(
    [总] => 1142543
    
[current]

=> 1142543

[rate]

=> 1828068.8

[filename]

=>测试

[name]

=>文件

[temp_filename]

=> / tmp / php8F

[cancel_upload]

=> 0

[done]

=> 1 ) apc.rfc1867_prefix

用于rfc1867上载进度功能生成的用户缓存条目的密钥前缀。apc.rfc1867_name

指定激活APC上载进度的隐藏表单条目名称,并指定用户缓存键后缀。apc.rfc1867_freq

应该对用户缓存条目进行更新以进行上载进度。这可以采用总文件大小的百分比或以字节为单位的大小的形式,可选地分别以“k”“m”“g” 为后缀, 分别为千字节,兆字节或千兆字节(不区分大小写)。设置为0会尽可能频繁地更新,这可能会导致上载速度变慢。apc.rfc1867_ttl整数

rfc1867条目的TTL。apc.coredump_unmap布尔

启用APC处理信号,例如SIGSEGV,在发出信号时写入核心文件。收到这些信号后,APC将尝试取消映射共享内存段,以便将其从核心文件中排除。当接收到致命信号并配置了大型APC共享内存段时,此设置可以提高系统稳定性。警告

此功能具有潜在危险性。如果发生致命错误,在致命信号处理程序中取消映射共享内存段可能会导致未定义的行为。

注意

虽然某些内核可能在生成核心转储文件时提供忽略各种类型共享内存的工具,但这些实现也可能忽略重要的共享内存段,例如Apache记分板。

apc.preload_path

(可选)设置APC将在启动时加载缓存数据的目录的路径。apc.use_request_time布尔

使用TTL的SAPI请求开始时间 。


发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Our Services

Worpress

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Read More

Web Design

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Read More

Ecommerce

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Brand Now

SEO

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Read More

Our Team

zahera

Zahera

(HR)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Alex

Alex

(CEO)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Alex

Sara

(CCO)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Mark

Mark

(Manager)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Testimonials

  • 一个记录信息化技巧和经验的网站
    Testimonials测试

Our Partners