wiki:PhpIni.zh

Version 1 (modified by moo, 7 years ago) (diff)

--

TracNav

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. 例如:

SAPILocationnote
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

NameDefaultChangeable
xcache.admin.user"mOo"PHP_INI_SYSTEM
xcache.admin.pass""PHP_INI_SYSTEM
xcache.testOffPHP_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

NameDefaultChangeable
xcache.cacherOnPHP_INI_SYSTEM
xcache.size0PHP_INI_ALL
xcache.count1PHP_INI_SYSTEM
xcache.slots8KPHP_INI_SYSTEM
xcache.ttl0PHP_INI_SYSTEM
xcache.gc_interval0PHP_INI_SYSTEM
xcache.var_size0PHP_INI_SYSTEM
xcache.var_count1PHP_INI_SYSTEM
xcache.var_slots8KPHP_INI_SYSTEM
xcache.var_ttl0PHP_INI_ALL
xcache.var_maxttl0PHP_INI_SYSTEM
xcache.var_gc_interval300PHP_INI_SYSTEM
xcache.readonly_protectionOffPHP_INI_SYSTEM
xcache.mmap_path"/dev/zero"PHP_INI_SYSTEM
xcache.cacher boolean
Enable or disable opcode cacher. Not available if xcache.size is 0.
xcache.size int
0 to disable, non 0 to enable. Check if your system mmap allows.
xcache.count int
Specify how many chunks to split the cache. see SplittedCache
xcache.slots size
Just a hints for hash slot, you can always store count(items) > slots.
xcache.ttl seconds
Ttl (Time To Live) value for the php entry (cached opcodes of a file), 0=forever.
xcache.gc_interval seconds
Garbage collection interval.
xcache.var_size int
xcache.var_count int
xcache.var_slots size
Same as above, but for variables.
xcache.var_ttl seconds
Default ttl for variables api, xcache_(get|set|inc|dec) etc.
xcache.var_maxttl seconds
A longer ttl when using variables api is limited to below max ttl.
xcache.var_gc_interval seconds
Garbage collection interval for variables api.
xcache.readonly_protection boolean
If ReadonlyProtection is turned on, it will be a bit slower, but much safer. This option isn't available for /dev/zero.
xcache.mmap_path string
for *nix, xcache.mmap_path is a file path, not directory. for win32, xcache.mmap_path is anonymous map name, not a file path. Use something like "/tmp/xcache" if you want to turn on ReadonlyProtection, 2 group of php won't share the same /tmp/xcache.

XCache Optimizer

NameDefaultChangeable
xcache.optimizerOffPHP_INI_ALL
xcache.optimizer boolean
Enable optimizer.

XCache Coverager

NameDefaultChangeable
xcache.coveragerOffPHP_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