PHP configuration/zh

PHP is a web template system that accidentally grew up into a fairly general language. PHP的语法、适配性以及执行方式和Perl非常相似；解释器负责执行脚本，实时编译成bytecode, 之后执行. PHP解释器使用CGI风格在命令行运行，或者更常用的方法，作为一个Apache的模块运行.

MediaWiki兼容性
您可以使用的MediaWiki版本列出的相应PHP版本的设置，请查看：Compatibility#PHP.

安装
请参考 https://secure.php.net/install

要求
MediaWiki需要如下PHP扩展： 不支持通过PDO访问MySQL和PostgreSQL
 * 兼容的Perl正则表达式
 * Session
 * 标准PHP库
 * Document Object 模块
 * iconv 字符集会话库
 * JSON（JavaScript对象符号） (alternatively, the pecl-json-c fork)
 * mbstring 多字节字符集支持
 * fileinfo MIME 类型检测
 * 最少下列数据库之一：
 * MySQL
 * PostgreSQL
 * SQLite（通过PDO）

兼容Perl正则表达式、Session、标准PHP库和默认开启的JSON支持；Perl正则表达式和标准PHP库支持在PHP 5.3中无法被关闭.

可选
在编译时，MediaWiki还可以使用以下可选PHP功能支持：
 * 可以选择zlib库来压缩file cache
 * sockets 支持网络通信，使用memcached
 * FastStringSearch

例子
可以使用以下编译选项：

 './configure' \ '--with-mysql' \ '--with-apxs2=/usr/sbin/apxs2' \ '--with-zlib' \ '--with-ldap' \ '--with-gd' \ '--with-jpeg-dir' \ '--with-iconv-dir' \ '--enable-mbstring' 可以使用这些编译选项：


 * --with-mysql : 允许PHP进行MySQL访问. （我认为）这是一个必须开启的选项. 您需要在此之前安装MySQL来开启这个选项.
 * --with-apxs2=/usr/sbin/apxs2 : 如果您需要build一个mod_php，可以使用这个选项. APXS是一个Apache module编译选项配置. 您需要对您的系统做一定的修改（或者省略路径）.
 * --with-zlib : 允许PHP读取/写入压缩文件（zipped files）并向Apache或者其他HTTP服务器发送压缩后的数据.
 * --with-ldap : 如果您需要让您的wiki使用LDAP验证，这个选项很重要
 * --with-gd : 如果您需要在PHP中使用图片处理，或者您可以使用ImageMagick. Because this option requires that you have various libraries installed... but presumably IM has the same deps... oh well...
 * --with-jpeg-dir：似乎荒谬
 * --with-iconv-dir：似乎荒谬
 * --enable-mbstring：允许多字节字符串支持. 这是可选的，因为如果不可用，将使用较慢的自定义代码.

操作码缓存

 * 参见

由于MediaWiki的大代码库，强烈建议使用系统来缓存已编译的脚本，PHP有一些这样的插件，有些是免费的，有些是专有的. 有一些缓存列表：
 * 维基百科上的替代PHP缓存
 * 推荐给IIS用户的适用于PHP的Windows缓存扩展

幸运的是，这些似乎都很容易安装为Zend插件，你只需要放入一个库并更改你的php.ini. 没有繁琐的重新编译整个PHP！

根据所使用的缓存和选项，您可能必须在更新脚本文件时执行特殊操作.

MediaWiki还可以与该缓存交互并将它们用于对象缓存，请参阅.

运行时配置（php.ini）
php.ini中的某些设置会影响MediaWiki的行为，其中一些设置与MediaWiki不兼容


 * register_globals


 * safe_mode
 * 安全模式是一个用PHP构思错误，设计破旧的设置，MediaWiki可以使用此选项，但某些功能不起作用.


 * magic_quotes_gpc
 * 此选项为 、 和 中的数据添加引号. MediaWiki可以使用此选项，但必须删除这些引号，因此会更慢.


 * magic_quotes_runtime
 * 该选项通过添加例如引号来不可预测地破坏数据输入. 打开的文件，从数据库等接收的数据. 如果打开此选项，MediaWiki将拒绝安装.


 * magic_quotes_sybase
 * 与magic_quotes_runtime相同


 * mbstring.func_overload
 * 此选项会导致错误，并可能无法预测地破坏数据，如果启用此选项，MediaWiki将拒绝安装.


 * zend.ze1_compatibility_mode
 * 这个选项会导致可怕的错误，如果启用此选项，MediaWiki将拒绝安装.


 * memory_limit
 * MediaWiki需要足够的内存才能工作. 最小限制应该是20MB，但如果您希望MediaWiki正常工作，请考虑使用至少50MB.


 * disable_functions
 * To be able to find GNU diff3 and git during installation process this entry must not contain passthru


 * post_max_size
 * If you are getting the error " " then it could be because this is set with a "MB" prefix, instead of just "M" (the former is interpreted at bytes, not megabytes).

Image Resizing
ImageMagick can be used for image resizing. When it is not available, the GD PHP module is used instead where found.