PHP 配置
Jump to navigation
Jump to search
Outdated translations are marked like this.
PHP是一个网页模板系统,意外地成长为一种相当通用的语言。PHP的语法、适配性以及执行方式和Perl非常相似;解释器负责执行脚本,实时编译成字节码,之后执行。PHP解释器使用CGI风格在命令行运行,或者更常用的方法,作为一个Apache的模块运行。
MediaWiki兼容性
您可以使用的MediaWiki版本列出的相应PHP版本的设置,请查看:Compatibility#PHP。
安装
编译选项
要求
MediaWiki需要如下PHP扩展:
- 兼容的Perl正则表达式
- Session
- 标准PHP库
- Document Object 模块
- iconv 字符集会话库
- JSON(JavaScript对象符号) (alternatively, the pecl-json-c fork)
- mbstring 多字节字符集支持
- fileinfo MIME 类型检测
- 最少下列数据库之一:
不支持通过PDO访问MySQL和PostgreSQL
兼容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还可以与该缓存交互并将它们用于对象缓存,请参阅$wgMainCacheType
。
运行时配置(php.ini)
php.ini中的某些设置会影响MediaWiki的行为,其中一些设置与MediaWiki不兼容
- register_globals
- safe_mode
- 安全模式是一个用PHP构思错误,设计破旧的设置,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需要足够的内存才能工作。最小限制应该是20MB,但如果您希望MediaWiki正常工作,请考虑使用至少50MB。
- disable_functions
- 为了能够在安装过程中找到GNU diff3和git,此条目不能包含passthru
- post_max_size
- 如果您收到错误“编辑表格的某些部分没有到达服务器,请检查您的编辑是否完整并重试。”,那么可能是因为它设置了MB前缀,而不仅仅是M(前者按字节解释,而不是兆字节)。
图片缩略图
ImageMagick可用于图像大小调整。当它不可用时,使用GD PHP模块代替找到的地方。