| Version 3 (modified by moo, 6 years ago) (diff) |
|---|
XCache and php.ini
(这是 PhpIni 页面对应的中文翻译)
本页内, 我们将尝试向您解释应该把 XCache 配置放在哪里 (也就是如何定位 php.ini), 以及 XCache 有哪些设置.
定位 php.ini
定位 php.ini 非常之简单, 只需要简单编写一个 phpinfo() 页面并在浏览器里查阅, 又快又准. 路径一般一般在 /etc/php.ini or /usr/local/lib/php.ini /usr/lib/php.ini c:\windows\php.ini c:\winnt\php.ini.
SAPI 特定 ini
PHP 也会扫描 SAPI 特定的 ini 路径. 首先是 php-{$sapi}.ini 的格式, 然后才是常规的 php.ini. 例如:
| SAPI | 位置 | 注 |
| cgi | /etc/php-cgi.ini | (如果 configure 没有启用 fastcgi) |
| cgi-fcgi | /etc/php-cgi-fcgi.ini | (如果 configure 没有启用 fastcgi) |
| cli | /etc/php-cli.ini |
如果您想针对不同的 SAPI 使用不同的 php.ini, 使用 SAPI 对应的 ini 名字将是不错的实现办法.
独立的 ini
这取决于您或者其他负责配置编译 php 的人. 也就是说, 如果你的 php 配置编译为
$ ./configure --with-config-file-scan-dir=/etc/php/ $ make ....
那么编译出来的 php 首先会扫描 /etc/php/ 内 *.ini, 并且使用里面 所有 的 ini 作为 php-{$sapi}.ini or php.ini 之外附加的设置. 所以您也可以将自定义完的 xcache.ini 放入那个目录里, 不过没法针对不同的 SAPI, 除非不同 SAPI 版本的 php 使用不同的 with-config-file-scan-dir 路径.
如果您不知道这个路径是什么, 可以检查 phpinfo() (真是个万能钥匙 :)
XCache 的 INI 配置
终于到了解释 xcache.ini 的时候了, 不管你有没有上面的基础知识.
载入 XCache 模块
;; 安装成 zend extension (推荐), 路径一般是 "$extension_dir/xcache.so" zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so ;; Windows 系统例子: zend_extension_ts = c:/php/extensions/php_xcache.dll ;; 或者您也可把 XCache 安装成 extension, 注意确保您的 extension_dir 设置正确, 并 把 xcache.so 或者 php_xcache.dll 放到该目录里面 ; extension = xcache.so ;; 或者 Win32 系统: ; extension = php_xcache.dll
XCache Administration
| Name | Default | Changeable |
| xcache.admin.user | "mOo" | PHP_INI_SYSTEM |
| xcache.admin.pass | "" | PHP_INI_SYSTEM |
| xcache.test | Off | PHP_INI_SYSTEM |
| xcache.coredump_directory | "" | PHP_INI_SYSTEM |
- xcache.admin.user string
- 验证名.
- xcache.admin.pass string
- md5 后的验证密码, 亦即 md5(您的密码), 留空则禁用管理页面.
- xcache.test string
- 仅在测试一些功能的时候才启用. 如果您不知道这个功能的作用, 则您不需要知道.
- xcache.coredump_directory string
- 设置在 crash (SIGSEGV/SIGABRT) 时保存 core dump 文件的路径. 留空则禁止, 或者设置为类似 "/tmp/phpcore/" 的目录. 确保这个路径可以被 php 写入文件. (与 open_basedir 无关).
XCache Cacher
| Name | Default | Changeable |
| xcache.cacher | On | PHP_INI_SYSTEM |
| xcache.size | 0 | PHP_INI_ALL |
| xcache.count | 1 | PHP_INI_SYSTEM |
| xcache.slots | 8K | PHP_INI_SYSTEM |
| xcache.ttl | 0 | PHP_INI_SYSTEM |
| xcache.gc_interval | 0 | PHP_INI_SYSTEM |
| xcache.var_size | 0 | PHP_INI_SYSTEM |
| xcache.var_count | 1 | PHP_INI_SYSTEM |
| xcache.var_slots | 8K | PHP_INI_SYSTEM |
| xcache.var_ttl | 0 | PHP_INI_ALL |
| xcache.var_maxttl | 0 | PHP_INI_SYSTEM |
| xcache.var_gc_interval | 300 | PHP_INI_SYSTEM |
| xcache.readonly_protection | Off | PHP_INI_SYSTEM |
| xcache.mmap_path | "/dev/zero" | PHP_INI_SYSTEM |
- xcache.cacher boolean
- 使用/不使用 opcode 缓冲器. xcache.size = 0 时无效.
- xcache.size int
- 0 禁止, 非 0 则启用缓冲器. 请注意您系统所允许的 mmap 最大值.
- xcache.count int
- 指定将 cache 切分成多少块. 参考 SplittedCache
- xcache.slots size
- 只是作为 hash 槽个数的参考值, 您可以放心地缓冲超过这个个数的项目.
- xcache.ttl seconds
- 设置缓冲项目的 Ttl (Time To Live) 值, 0=永不过期.
- xcache.gc_interval seconds
- 检查过期项目, 回收内存空间的间隔.
- xcache.var_size int
- xcache.var_count int
- xcache.var_slots size
- xcache.var_gc_interval seconds
- 同上, 不过用于数据缓冲而不是 opcode 缓冲.
- xcache.var_ttl seconds
- xcache_(get|set|inc|dec) 等的默认 ttl 值.
- xcache.var_maxttl seconds
- 最大 ttl 值, 程序无法指定超过这个最大值的 ttl.
- xcache.readonly_protection boolean
- 如果启用了 ReadonlyProtection, 将会略微降低性能, 但是会提高一定的安全系数. 这个选项对于 xcache.mmap_path = /dev/zero 无效.
- xcache.mmap_path string
- 对于 *nix, xcache.mmap_path 是 文件路径, 不是目录. 对于 Win32, xcache.mmap_path 只是匿名的 map 名, 不是实际的文件路径. 如果您要启用 ReadonlyProtection 请用类似 "/tmp/xcache" 的路径. 2 组 php 不该共用同一个路径 (/dev/zero 除外).
XCache Optimizer
| Name | Default | Changeable |
| xcache.optimizer | Off | PHP_INI_ALL |
- xcache.optimizer boolean
- 启用优化器 (目前无效).
XCache Coverager
| Name | Default | Changeable |
| xcache.coverager | Off | PHP_INI_ALL |
| xcache.coveragedump_directory | "/tmp/pcov/" | PHP_INI_SYSTEM |
- xcache.coverager boolean
- Enable coverage data collecting for xcache.coveragedump_directory and xcache_coverager_start/stop/get/clean() functions (will hurt executing performance)
- xcache.coveragedump_directory string
- Directory to dump coverage data. Make sure it's readable (care open_basedir) by coverage viewer script. Requires xcache.coverager=On

