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

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

 './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
 * 为了能够在安装过程中找到GNU diff3和git，此条目不能包含passthru


 * post_max_size
 * 如果您收到错误“ ”，那么可能是因为它设置了MB前缀，而不仅仅是M（前者按字节解释，而不是兆字节）.

图片缩略图
ImageMagick可用于图像大小调整. 当它不可用时，使用GD PHP模块代替找到的地方.

参见

 * PHP知识库
 * PHP教程
 * Suhosin（Hardened-PHP Project补丁和扩展）