This page is a translated version of the page PHP configuration and the translation is 90% complete.
Outdated translations are marked like this.

PHP是一个网页模板系统,意外地成长为一种相当通用的语言。PHP的语法、适配性以及执行方式和Perl非常相似;解释器负责执行脚本,实时编译成字节码,之后执行。PHP解释器使用CGI风格在命令行运行,或者更常用的方法,作为一个Apache的模块运行。

MediaWiki兼容性

您可以使用的MediaWiki版本列出的相应PHP版本的设置,请查看:Compatibility#PHP

安裝

请参考 https://php.net/install

编译选项

要求

MediaWiki需要如下PHP扩展:

不支持通过PDO访问MySQL和PostgreSQL

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

可选

在编译时,MediaWiki还可以使用以下可选PHP功能支持:

示例

可以使用以下编译选项:

'./configure' \
  '--with-mysqli=mysqlnd' \
  '--with-pdo-mysql=mysqlnd' \
  '--with-apxs2=/usr/sbin/apxs2' \
  '--with-zlib' \
  '--with-ldap' \
  '--with-gd' \
  '--with-jpeg-dir' \
  '--with-iconv-dir' \
  '--enable-mbstring' 

可以使用这些编译选项:

--with-mysqli=mysqlnd
Include MySQLi (MySQL improved) support. The MySQL native driver will be used when value is mysqlnd.
--with-pdo-mysql=mysqlnd
PDO: MySQL support. The native driver will be used when value is mysqlnd.
--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。因为此选项要求您安装各种库...但大概IM具有相同的依赖...哦好吧...
--with-jpeg-dir
似乎荒谬
--with-iconv-dir
似乎荒谬
--enable-mbstring
允许多字节字符串支持。这是可选的,因为如果不可用,将使用较慢的自定义代码。

操作码缓存

参阅Manual:性能调优

由于MediaWiki的大代码库,强烈建议使用系统来缓存已编译的脚本,PHP有一些这样的插件,有些是免费的,有些是专有的。有一些缓存列表: PHP 通常预先安装并启用了此扩展。

运行时配置(php.ini)

php.ini 中的一些设置会影响 MediaWiki 的行为,其中一些与 MediaWiki 不兼容。

magic_quotes_gpc
此选项为 $_GET$_POST$_COOKIES 中的数据添加引号。MediaWiki 可在启用此选项的情况下工作,但必须删除这些引号,因此速度会变慢。
magic_quotes_runtime
:该选项通过添加例如引号来不可预测地破坏数据输入。打开的文件,从数据库等接收的数据。如果打开此选项,MediaWiki将拒绝安装。
magic_quotes_sybase
magic_quotes_runtime相同
mbstring.func_overload
此选项会导致错误,并可能无法预测地破坏数据,如果启用此选项,MediaWiki将拒绝安装。
zend.ze1_compatibility_mode
这个选项会导致可怕的错误,如果启用此选项,MediaWiki将拒绝安装。
memory_limit
MediaWiki 需要足够的内存才能工作。 最小限制应该是 20 MB,但如果您希望 MediaWiki 正常工作,请考虑至少使用 50 MB。
disable_functions
为了能够在安装过程中找到GNU diff3和git,此条目不能包含passthru
post_max_size
如果您收到错误“编辑表单的某些部分没有到达服务器,请检查您的编辑是否完整并重试。”,那么可能是因为它设置了MB前缀,而不仅仅是M(前者按字节解释,而不是兆字节)。

图片缩略图

ImageMagickGD PHP 模块 可用于图像缩略图。 请参阅手册:Image administration#Image thumbnailing

参见