LocalSettings.php设置

出自org

跳转到: 导航, 搜索
您当前所在的位置:首页 > 架设手册 > LocalSettings.php设置 feed-icon.png 订阅页面RSS

这是WikiMedia网站的主要配置文件,我们已经用到的部分参数:

目录

[编辑] 基本设置

站点名称、数据库、用户名、密码等。

$wgSitename         = "Wiki.18dao.com";

$wgScriptPath       = "";
$wgScript           = "$wgScriptPath/index.php";
$wgRedirectScript   = "$wgScriptPath/redirect.php";

$wgArticlePath      = "$wgScriptPath/$1";
# $wgArticlePath      = "$wgScript?title=$1";

$wgStylePath        = "$wgScriptPath/skins";
$wgStyleDirectory   = "$IP/skins";
$wgLogo             = "$wgStylePath/common/images/wiki.18dao.com.png";

$wgUploadPath       = "$wgScriptPath/images";
$wgUploadDirectory  = "$IP/images";

$wgEnableEmail      = true;
$wgEnableUserEmail  = true;

$wgEmergencyContact = "qijingsong@staff.027.net";
$wgPasswordSender = "qijingsong@staff.027.net";

$wgDBtype           = "mysql";
$wgDBserver         = "111.111.111.111";
$wgDBname           = "wiki18daocom";
$wgDBuser           = "user";
$wgDBpassword       = "password";
$wgDBport           = "5432";
$wgDBprefix         = "18dao";

$wgDBmysql5 = true;

[编辑] 对扩展程序的支持

require_once( "includes/DefaultSettings.php" );
require_once( "extensions/inputbox/inputbox.php" );
require_once( "extensions/LatexDoc/LatexDoc.php" );
require_once( "extensions/ParserFunctions/ParserFunctions.php" );
require_once( "extensions/DynamicPageList2/DynamicPageList2.php" );

[编辑] 对DefaultSettings.php中的修改

  • 打开外部图像支持:
$wgAllowExternalImages = true;
  • 打开对Squid的支持及配置参数:
$wgUseSquid = true;
$wgSquidServers = array('130.62.240.156');
  • 对用户权限进行设置
$wgGroupPermissions['*'    ]['edit']            = false;
$wgGroupPermissions['*'    ]['createpage']      = false;
$wgGroupPermissions['*'    ]['createtalk']      = true;
  • 根据页面名称中的“/”符号进行子路径划分,支持各种名字空间的不同设置
$wgNamespacesWithSubpages = array(
	NS_MAIN           => true,
	NS_CATEGORY       => true,
	NS_PROJECT        => true,
	NS_IMAGE          => true,
	NS_MEDIAWIKI      => true,
	NS_TEMPLATE       => true,
	NS_HELP           => true,
	NS_TALK           => true,
	NS_USER           => true,
	NS_USER_TALK      => true,
	NS_PROJECT_TALK   => true,
	NS_IMAGE_TALK     => true,
	NS_MEDIAWIKI_TALK => true,
	NS_TEMPLATE_TALK  => true,
	NS_HELP_TALK      => true,
	NS_CATEGORY_TALK  => true
);
  • 不限制上传文件的扩展名
$wgStrictFileExtensions = false
  • 允许从外部链接上传文件(试验中出现外部链接的输入框,但没有成功上传)
$wgAllowCopyUploads = true
  • 允许包含原始HTML语言内容
$wgRawHtml = true
  • 允许用户JavaScript内容
$wgAllowUserJs = true
  • 设置对eAcc加速的支持
$wgMainCacheType = ACCEL
  • 多个wiki站点共享相同的用户数据
$wgSharedDB = 数据库名

注意两个数据库必须在同一台服务器上。要注意$wgDBuser中设置的用户名需要有共享数据库的读取权限,另外数据库需要有匹配的表前缀。

[编辑] 多Wiki站点共享设置

在实际使用中间,我们发现要设置数十个以上的Wiki站点群的LocalSettings.php文件是个麻烦事情,特别是有一点小的配置改动就需要修改数十个文件。为了让多个Wiki站点共享修改的配置,我们采取了调用一个共同的CommonSettings.php的办法。

在各个Wiki站点目录的上一级目录下建立一个common目录,专门用于放置各个站点共同使用的文件。例如各Wiki站点目录为:

  • /usr/local/apache2/htdocs/test
  • /usr/local/apache2/htdocs/www.18dao.org
  • /usr/local/apache2/htdocs/baby
  • /usr/local/apache2/htdocs/hardware
  • /usr/local/apache2/htdocs/2008
  • etc.

我们就新建一个目录:

  • /usr/local/apache2/htdocs/common

然后新建一个文件:

  • /usr/local/apache2/htdocs/common/CommonSettings.php

并且把扩展程序也复制到这个目录中,以免需要在每个Wiki站点的目录的extensions目录下复制:

  • /usr/local/apache2/htdocs/common/inputbox
  • /usr/local/apache2/htdocs/common/LatexDoc
  • /usr/local/apache2/htdocs/common/ParserFunctions
  • /usr/local/apache2/htdocs/common/DynamicPageList2
  • /usr/local/apache2/htdocs/common/SpamBlacklist
  • /usr/local/apache2/htdocs/common/Timeline
  • /usr/local/apache2/htdocs/common/CharInsert
  • etc.

CommonSettings.php中可以包含各种需要在每个Wiki站点的配置中修改的参数,例如:

<?php

# this is the common settings file of 18dao wiki project
# usement: add this line in the bottom of LocalSettings.php: require_once( "../common/CommonSettings.php" );

require_once( "inputbox/inputbox.php" );
require_once( "LatexDoc/LatexDoc.php" );
require_once( "ParserFunctions/ParserFunctions.php" );
require_once( "DynamicPageList2/DynamicPageList2.php" );

## Shared memory settings

$wgUseSquid = true;
$wgSquidServers = array('130.62.240.156');

$wgMainCacheType = CACHE_ACCEL;
$wgMemCachedServers = array();
	
$wgNamespacesWithSubpages = array(
	NS_MAIN           => true,
	NS_CATEGORY       => true,
	NS_PROJECT        => true,
	NS_IMAGE          => true,
	NS_MEDIAWIKI      => true,
	NS_TEMPLATE       => true,
	NS_HELP           => true,
	NS_TALK           => true,
	NS_USER           => true,
	NS_USER_TALK      => true,
	NS_PROJECT_TALK   => true,
	NS_IMAGE_TALK     => true,
	NS_MEDIAWIKI_TALK => true,
	NS_TEMPLATE_TALK  => true,
	NS_HELP_TALK      => true,
	NS_CATEGORY_TALK  => true
);

$wgEnableUploads       = true;

$wgAllowExternalImages = true;

$wgUseTeX           = true;
$wgMathPath         = "http://wiki.18dao.com/cgi-bin/mimetex.cgi"; 

$wgSharedDB         = "www18daoorg";

$wgRightsUrl = "http://www.gnu.org/copyleft/fdl.html";
$wgRightsIcon = "gnu-fdl.png";

?>

以后只要在需要共享这个设置文件的Wiki站点的LocalSettings.php文件底部添加一句调用就可以:

# When you make changes to this configuration file, this will make
# sure that cached pages are cleared.
$configdate = gmdate( 'YmdHis', @filemtime( __FILE__ ) );
$wgCacheEpoch = max( $wgCacheEpoch, $configdate );
	
require_once( "../common/CommonSettings.php" );

?>

注意,如果某个Wiki网站大部分使用了与CommonSettings.php一样的配置,少部分不一样的话,仍然可以调用该文件,然后在调用语句的下方添加该网站特别的设置,就可以覆盖共同的内容,例如:

# When you make changes to this configuration file, this will make
# sure that cached pages are cleared.
$configdate = gmdate( 'YmdHis', @filemtime( __FILE__ ) );
$wgCacheEpoch = max( $wgCacheEpoch, $configdate );
	
require_once( "../common/CommonSettings.php" );

$wgGroupPermissions['*'    ]['edit']            = false;
$wgGroupPermissions['*'    ]['createpage']      = false;

?>


关于“LocalSettings.php设置”的留言: feed-icon.png 订阅讨论RSS

目前暂无留言

新增相关留言
个人工具