Toggle navigation


MediaWiki镜像手册

Version 1.29.1

Websoft9将MediaWiki程序及其所依赖的中间件、数据库等编译成一个预装环境,打包成虚拟机镜像,任何云用户均可一键获取、快速安装。

MediaWiki(mediawiki.org)是全球最著名的开源wiki程序,采用PHP+MySQL开发。适合用于构建百科、知识库、在线文档、个人笔记等应用。超过数万个站点使用,大名鼎鼎的“维基百科”网站是基于这个软件而构建。MediaWiki的开发得到维基媒体基金会的支持。MediaWiki的最大作用在于对知识的归档,可用于构建企业/个人知识库,WIKI系统的思想是经过越多的人的编辑,结果就越趋于正确(完美)。


本文档适用于通过主流云市场购买和部署了Websoft9镜像的用户,文档内容重点指导用户进行安装配置、系统基本操作和常见运维问题处理。

文档适用性说明:

  • 适用的主流云平台包括:阿里云、腾讯云、百度云、华为云、Azure、青云
  • 适用的操作系统包括:Linux、Windows
  • 适用的阅读者包括:初学者、学生、站长、运维人员、产品经理、开发者、UI

Websoft9的镜像由应用软件、运行环境、数据库和运维面板四个部分组成,并基于云厂商操作系统镜像打包:

Linux版本(CentOS,Ubuntu,AliyunLinux)

Linux版本的MediaWiki镜像采用LAMP作为运行环境,以最新版本为例,组件包括:

应用软件(MediaWiki1.29.1)
安装目录:/data/wwwroot/default/mediawiki
运行环境(PHP 7.0,Apache 2.4.8)
PHP配置文件目录: /etc/php.ini
Apache虚拟主机文件目录: /ect/httpd/conf.d
日志文件目录:/var/log/httpd
数据库(MySQL5.6.3)
MySQL数据目录: /data/mysql
MySQL配置文件: /etc/my.cnf
数据库账号密码参考“常见账号和密码说明”章节
数据库面板访问路径:http://公网ip/phpmyadmin
运维面板(9Panel)
9Panel是Websoft9根据镜像用户的习惯和技术能力而研制的轻量级面板,以帮助用户快速掌握程序安装和运维工作
访问路径:http://ip/9panel

Windows版本

Windows版本的MediaWiki镜像采用WAMP作为运行环境,以最新版本为例,组件包括:

应用软件(MediaWiki1.29.1)
安装目录:C:/websoft9/wampserver/www/
运行环境(PHP 7.0.10/5.6.25,Apache 2.4.23)
PHP可以在两个版本中自由切换
PHP配置文件目录: C:\websoft9\wampserver\bin\apache\apache2.4.23\bin\php.ini
Apache虚拟主机文件目录: C:\websoft9\wampserver\bin\apache\apache2.4.23\conf\extra\httpd-vhosts.conf
日志文件通过WAMP面板查看
数据库(MySQL5.7.14)
MySQL目录: C:\websoft9\wampserver\bin\mysql
MySQL配置文件: C:\websoft9\wampserver\logs\mysql.log
数据库账号密码参考“常见账号和密码说明”章节
数据库面板访问:http://公网IP/phpmyadmin
运维面板(9Panel)
9Panel是Websoft9根据镜像用户的习惯和技术能力而研制的轻量级面板,以帮助用户快速掌握程序安装和运维工作
访问路径:http://公网IP/9panel
  1. 镜像需要与服务器配套使用,获取Websoft9的镜像有两种方式:
    方式一:若没有可用的云服务器,登录主流云厂商的云市场,找到由Websoft9提供的“MediaWiki”相关免费镜像,点击“购买”(同时会配套购买云服务器,若只打算试用请选择“按量”方式购买,实现按小时使用,接近免费)
    方式二:登录到云厂商的控制面板,找到可用的云服务器,通过更换系统盘(重装镜像)的方式
  2. 待镜像购买或更换完成后,镜像会自动安装到配套的云服务器上,当云服务实例处于“运行中”后,通过浏览器访问网址
    http://服务器公网IP/9panel,正常会出现如下界面:
  3. 如果浏览器访问以上网址没有任何反应,请检查您的安全组设置,确保80端口是开放的。

镜像验证通过后,即可根据9Panel(浏览器访问:http://公网ip/9panel)的提示完成剩余的应用安装过程。

建议在进入MediaWiki的安装界面之前,建议完成如下两个简单的操作:

  • 通过PhpMyAdmin将数据库默认的root密码修改成您自己的密码,并牢记密码
  • 通过域名管理面板中完成域名解析(增加一个A记录指向服务器IP),然后通过直接访问域名测试是否解析成功。

具体安装向导如下:

  1. 本地浏览器访问:http://域名  http://公网IP 进入安装向导(首选域名访问方式安装)
  2. 根据系统提示,点击“…Installation”进入安装界面,选择语言
  3.  填写您的数据库参数(默认数据库为:mediawiki,默认用户名和密码参考本文档”常用账号与密码说明“章节),保存并继续;
  4. 选择数据库引擎和字符集设置,字符集建议选用UFT-8
  5. 设置后台账号信息,请务必设置好并牢记之。进入下一步
  6. 跟随安装提示直到完成,过程中尽量选择默认设置,勾选安装所有模块
  7. 配置完成后会生成LocalSettings.php文件,根据提示下载后并保存至mediawiki根目录(index.php的同级目录)即可。至此,安装完成。
  8. 系统完成最后一步安装,建议进入MediaWiki后台(以管理身份登录即进入后台),体验完整功能

应用程序安装、使用和维护中需要用到三种账户:

1、MySQL数据库默认账号和密码:root/123456,管理地址:http://公网ip/phpmyadmin

2、MediaWiki后台账号和密码:安装的时候自行设置的,以管理员身份登录即进入后台


3、服务器操作系统账号和密码

Linux服务器账号和密码说明:

  • 账号:root
  • 密码:是安装镜像的时候客户自行设置的,若不记得此密码,请登录云服务器后台,修改服务器密码,重启后生效
  • 登录:下载一个putty工具,通过root账号登录,参考(服务器通用文档-Linux远程管理与FTP

Windows服务器账号和说明:

  • 账号:administrator
  • 密码是安装镜像的时候客户自行设置的,若不记得此密码,请登录云服务器后台,修改服务器密码,重启后生效
  • 登录:PC本地打开远程桌面工具-通过Administrator账号连接,参考(服务器通用文档-Windows远程桌面与FTP

以下是DefaultSettings.php文件中提供的所有配置选项。使用当中,请注意不要直接编辑该文件本身,而是将需要的代码拷贝到LocalSettings.php文件中,并做出相应的修改。
一、 通用设置
1、 $wgMetaNamespace   meta-namespace采用的名称。
2、 $wgMetaNamespaceTalk   meta-namespace的讨论页面采用的名称。通常不需要考虑该变量,也写作:$wgMetaNamespace. “_talk”。在有些语言里,可能要根据语法需要,对其进行设置。
3、 $wgServer   服务器的URL。
4、 $wgServerName   不带通信协议的服务器名称。(例如:en.wikipedia.org)
5、 $wgSitename   网站名称。注意应该在 LocalSettings.php文件中改动。
6、 $wgVersion   网站正在使用的MediaWiki的版本号。
二、 路径
1、 $IP   文件系统安装路径。在DefaultSettings.php文件中不含该变量。
2、 $wgActionPaths   就各种用户操作,在地址栏内产生更为方便直观的URL路径。
3、 $wgArticlePath   产生新条目链接的URL的模板。
4、 $wgFavicon   站点favicon的URL。
5、 $wgLogo   网站logo的URL。
6、 $wgMathDirectory   LaTeX数学图像所在目录的文件系统路径。
7、 $wgMathPath   LaTeX数学图像所在目录的URL。
8、 $wgRedirectscrīpt   Redirect.php文件的URL,该文件用于实现向低版本的兼容性。
9、 $wgscrīpt   Index.php文件的URL。
10、 $wgscrīptPath   wiki站点的URL。
11、 $wgStyleDirectory   皮肤目录的文件系统路径。
12、 $wgStylePath   皮肤目录的URL。
13、 $wgStyleSheetDirectory   界面风格所在目录的文件系统路径。
14、 $wgStyleSheetPath   界面风格所在目录的URL。
15、 $wgTmpDirectory   临时文件夹的URL。
16、 $wgUploadBaseUrl
17、 $wgUsePathInfo   是否采用方便直观的URL。类似:index.php/页面名称。
18、 $wgHashedUploadDirectory   设置为:true,则采用 /a/ab/foo.png式样的目录结构。
19、 $wgUploadDirectory   上载目录的文件系统路径。
20、 $wgUploadNavigationUrl   将上载功能的链接指向一个外部URL。
21、 $wgUploadPath   上载目录的URL。
三、 共享上载
1、 $wgCacheSharedUploads   在memcached中缓存共享的元数据。
2、 $wgHashedSharedUploadDirectory   是否hash共享的上载目录。如果需要多个wiki共用同一组文件,则将该值置为false。
3、 $wgSharedLatin1   如果上载文件存储空间的文件名称采用latin1字符,则将该值设置为true。
4、 $wgSharedUploadDBname   有关共享目录的元数据所在的数据库名称。如果上载文件不是来自一个wiki站点,则将该值置为false。
5、 $wgSharedUploadDirectory   共享的上载目录所在的文件系统路径。
6、 $wgSharedUploadPath   共享的上载目录所在的web 服务器的完整路径。
7、 $wgUseSharedUploads   如果在本地的文件上载空间中找不到某个给定文件(例如:[[Image:..]]、[[Media:..]]等),是否在共享的上载空间内继续搜索。
8、 $wgFetchCommonsDescrīptions   设置为“true”,则可以整合储存在commonswiki中的媒体文件介绍。
四、 Email 设置
1、 $wgEmergencyContact   站点管理员的email地址。
2、 $wgEnableEmail   设置为“true”,启用email的各项基本功能,例如:用户遗忘密码时,发出提示信息等。
3、 $wgEnableUserEmail   设置为“true”,启用用户之间的email功能。
4、 $wgPasswordSender   用于发送密码提示信息的邮件地址。
5、 $wgSMTP   采用一个直接的(authenticated 或者需要密码验证的)SMTP服务器连接。
五、 数据库设置
1、 $wgDBconnection
2、 $wgDBerrorLog   记录MySQL错误的日志文件。
3、 $wgDBminWordLen   通常情况下,如果某个单词长度小于该变量,MySQL将会忽略这个不会返回任何结果的(搜索)单词。(参见mysql系统变量ft_min_word_len)
4、 $wgDBmysql4   设置为:true,则可以应用高级全文搜索功能。
5、 $wgDBname   数据库名称。
6、 $wgDBpassword   数据库用户密码。
7、 $wgDBport   数据库端口。
8、 $wgDBprefix   表名称前缀。
9、 $wgDBschema   在一些数据库中,该值允许针对网站数据采用分离的逻辑名称空间。
10、 $wgDBserver   数据库主机名称或者ip地址。
11、 $wgDBservers   数据库负载平衡器。一个记录数据库信息结构的二维数组,设置为false,则采用单个服务器的信息结构。
12、 $wgDBtransactions   如果采用InnoDB表,将该值设置为:true。
13、 $wgDBtype   数据库类型。
14、 $wgDBuser   数据库用户名称。
15、 $wgLocalDatabases   可以用一个开发者帐户,对安装在本网站内的其他的wiki站点实施管理。
16、 $wgMasterWaitTimeout   Slave跟踪上master需要花费的时间。
17、 $wgSearchType   数据库搜索类型。
18、 $wgSqlLogFile
19、 $wgSqlTimeout
六、 共享数据库设置
1、 $wgSharedDB   多个wiki站点共享的数据库名称。
七、 系统管理员SQL查询
注意:管理员通过Special:Asksql进行查询时,将会用到以下设置。
警告:如果配置不当,会给系统带来不安全因素。
1、 $wgAllowSysopQueries   允许管理员进行查询操作。
2、 $wgDBsqlpassword   数据库用户密码。
3、 $wgDBsqluser   进行查询操作的SQL数据库用户。
八、 memcached 的设置
参见:docs/memcached.doc文档。
1、 $wgLinkCacheMemcached  采用对象缓存设置的缓存链接。(缓存设置包括memcache, Turck MMCache, eAccelerator 等)。
2、 $wgMemCachedDebug   如果服务器不工作,在Setup.php中将该值设置为false。
3、 $wgMemCachedServers
4、 $wgSessionsInMemcached
5、 $wgUseEAccelShm   如果wiki站点运行在专用服务器上,可以借此实现持久缓存。
6、 $wgUseMemCached   采用$wgMemCachedServers中的服务器设置,运行memcache。
7、 $wgUseTurckShm   采用Turck MMCache 共享内存。
8、 $wgUseMemCached     已经不再使用了,取代的是:
“$wgMainCacheType=CACHE_MEMCACHED;”
九、 本地化配置
1、 $wgAmericanDates   在英文界面中,按照“May 12”而不是“12 May”的格式输出日期。
2、 $wgDisableLangConversion   是否启用语言变量转换。
3、 $wgDocType   在<!DOCTYPE!>声明中采用的文档类型。
4、 $wgDTD
5、 $wgEditEncoding
6、 $wgForceUIMsgAsContentMsg
7、 $wgInputEncoding   输入文本编码方式:UTF-8。
8、 $wgInterwikiMagic   将语言链接作为magic connectors,而不是在线链接。
9、 $wgLanguageCode   站点语言,应该属于./language/Languages(.*).php文件中的某一个。
10、 $wgLanguageFile   dumpMessages.php文件产生的语言文件的名称。
11、 $wgLegacyEncoding   在调用没有做utf-8标记的旧的更改时,需要将该变量设置为:’ISO-8859-1’, 完成字符集转换。
12、 $wgLocaltimezone   调整服务器输出时间的时区。
13、 $wgMimeType   在头部信息的“Content-Type”中定义的类型。
14、 $wgMsgCacheExpiry   一个消息在缓存内滞留的时限(单位为秒)。
15、 $wgOutputEncoding   输出文本编码方式:UTF-8。
16、 $wgPartialMessageCache
17、 $wgTranslateNumerals   针对那些在网页界面中采用印度和阿拉伯当地的数字表示方法,而不是(0-9)数字格式的用户。
18、 $wgUseDatabaseMessages   采用MediaWiki: namespace完成转换。如果不安装memcached,此举会将网站上载时间延长25-60%。
19、 $wgUseDynamicDates   启用该项功能,能够(自动?)改写页面文档中的日期和时间。注意:对于大多数语言来讲,改写后的日期格式不正常。
20、 $wgUseLatin1   启用ISO-8859-1兼容性模式。
21、 $wgUseZhdaemon   是否采用zhdaemon进行中文文字处理。Zhdaemon仍在开发阶段,所以除了测测,一般不会用到该功能。
22、 $wgZhdaemonHost    Zhdaemon所在的主机。仅在$wgUseZhdaemon设置有效以后方可启用。
23、 $wgZhdaemonPort    Zhdaemon所在的主机端口。
十、调试/日志记录
1、$wgDebugComments
2、$wgDebugDumpSql
3、$wgDebugLogFile   调试日志的文件名称,不启用时,该值为空。另有wfDebug() 变量添加到该文件中。
4、$wgDebugRawPage   避免由于CSS外泄,导致调试内容遭到覆盖。
5、$wgDebugRedirects
6、$wgLogQueries
7、$wgShowSQLErrors   是否显示:“很抱歉,出现了一个数据库错误”页面。在调试过程中显示错误提示信息。但是,网站攻击者也可能从中受益。
十一、Profiling
1、$wgDebugFunctionEntry   每次调用wfProfileIn/wfProfileOut函数时,均输出调试信息。
2、$wgDebugProfiling   检测没有响应(无法匹配)的wfProfileIn/wfProfileOut函数调用。
3、$wgDebugSquid   来自SquidUpdate.php文件的大量调试输出信息。
4、$wgProfileCallTree   设置为:true,不会报告每一个函数的调用状态,而是打印输出一个有关所有函数调用的粗略的树形结构。
5、$wgProfileLimit   只有页面长度超过该设定值时,才记录其profling信息。
6、$wgProfileOnly   不要将非profiling信息写入日志文件。
7、$wgProfileSampleRate   开启profiling以后,每隔n次请求,进行一次profile。
8、$wgProfileToCommentUser   仅就某一个具体用户,将profiling信息添加在输出文件的HTML代码当中。
9、$wgProfileToDatabase   将profile中的sums信息写入数据库的”profiling”表中。
10、$wgProfiling   启用该选项,在调试日志中采用更为详尽的时间信息。
十二、网站定制
以下是应用于整个站点的外观设置。
1、$wgAllowUserCss   是否允许使用用户自定义的CSS。能够增添雅致的个性化风格,但是会给用户和服务器带来不安全因素。
2、$wgAllowUserJs   是否允许使用用户的Javascrīpt页面。能够增添雅致的个性化风格,但是会给用户和服务器带来不安全因素。
3、$wgDefaultUserOptions   在该数组内增添新的元素,将会覆盖匿名访客和新注册用户的个性化设置空间内的语言全局变量。
4、$wgExtraSubtitle   显示在每个页面标题下的副题。
5、$wgNavigationLinks   页面旁侧的导航链接。
6、$wgNoFollowLinks   设置为:true,给wiki文档中的外部链接设置rel=nofollow 属性。
7、$wgSiteNotice   在每个页面顶端显示其内容。
8、$wgSiteSupportPage   用户得到捐助的联系页面。
9、$wgUrlProtocols   定义mediawiki分析程序支持和可以转换为HTML代码的通信协议。
10、$wgUseSiteCss   使用站点提供的CSS。
11、$wgUseSiteJs   使用站点提供的Javascrīpt页面。
十三、名称空间
名称空间含以下各项:
-2  Media:
-1  Special:
0  Template:
1  Talk:
2  User:
3  User_talk:
4  Test:
5  Test_talk:
6  Image:
7  Image_talk:
8  MediaWiki:
9  MediaWiki_talk:
10  Template:
11  Template_talk:
12  Help:
13  Help_talk:
14  Category:
15  Category_talk:
1、$wgExtraNamespaces   新增添的名称空间。如果Language.php和Namespace.php文件里定义的名称空间不够用,可以在此增添。
2、$wgNamespacesToBeSearchedDefault   应该在那些名称空间内进行搜索?
3、$wgNamespacesWithSubpages   那些名称空间可以包含子页面?
十四、皮肤
1、$wgDefaultSkin   站点默认皮肤。
2、$wgSkipSkin   在可获取的皮肤列表中不出现该皮肤选项。
3、$wgSkipSkins   数组变量,作用同$wgSkipSkin。
十五、分类
1、$wgCategoryMagicGallery   在分类页面内,以缩略图的方式显示属于该分类的图像,而不是以条目的形式将其罗列出来。
2、$wgUseCategoryBrowser   禁用实验性的类似于dmoz的按分类浏览网页的方式。例如:Encyclopedia>Music>Style of Music>Jazz
3、$wgUseCategoryMagic   是否应当启用分类的伪名称空间?(在一个页面上添加[[Categoryog]],是否可以在“Dog”分类中包含该页面?)
十七、缓存
1、$wgCacheEpoch   置为当前时间,以取消全部已经缓存的页面(包括客户端和服务器端)。
2、$wgCachePages   允许客户端缓存页面。
3、$wgEnableParserCache   将语法分析过的页面存贮于缓存(objectcache 表,turck,或者memcached)内,以加快有着同样操作要求的其他用户打开该页面的速度。
4、$wgFileCacheDirectory
5、$wgImageHtmlCacheExpiry   设置为数秒钟,缓存跟某幅图像相关的HTML代码。
6、$wgUseFileCache   给未登录用户缓存静态页面,减缓公网上数据库的操作负荷。
7、$wgUseGzip   采用GZip存储缓存内的页面。要求PHP启用zlib支持。
8、$wgUseWatchlistCache   每隔大约一小时,产生一个监视列表。
9、$wgWLCacheTimeout   上面提到的大约一小时时间。
10、$wgMainCacheType   代替$wgUseMemCached变量。类型信息参见Defines.php。
十八、Persistent链接缓存
1、$wgCompressedPersistentLC   采用gz压缩的blobs变量。
2、$wgEnablePersistentLC   已经停止使用。
十九、Interwiki
1、$wgInterwikiExpiry   interwiki表的缓存有效期。
2、$wgLocalInterwiki   本wiki 站点的Interwiki前缀。应该在LocalSettings.php中加以修改。
二十、权限设置
Wiki锁定、用户权限选择、封禁功能,及其他相关设置。
1、$wgAccountCreationThrottle   每个IP地址可以注册的帐户数目,设为0表示不限制。需要memcached支持。
2、$wgAllowAnonymousMinor   允许匿名用户对新做出的更改添加“微小改动”标记。
3、$wgAutoblockExpiry   自动封锁项目的有效期限(秒数)。
4、$wgDefaultBlockExpiry   用strtotime()格式表示的默认时限,或者设为infinite实行无限期封禁。
5、$wgDisabledActions   数组变量,含被禁用的针对条目的某项操作:浏览、编辑、dublincore、删除等等。
6、$wgGroupPermissions   设置用户组和用户的操作权限。参见:Help:User_rights。
7、$wgPasswordSalt   设置为:false,兼容早期的安装版本。
8、$wgReadOnly   不允许进行编辑,并给出原因。
9、$wgReadOnlyFile   如果找到该文件,数据库将按照文中指出的原因实施锁定。
10、$wgSysopRangeBans   允许管理员禁封某个IP地址范围。
11、$wgSysopUserBans   允许管理员禁封某些已经登录的用户。
12、$wgWhitelistAccount   能够注册新用户的用户类型。
13、$wgWhitelistEdit   设置为:true,则用户必须登录后才可以进行编辑。(用于1.4(含1.4)以前的版本。)
14、$wgWhitelistRead   匿名用户可以看到的页面。
二十一、频率限制器
1、$wgRateLimitLog   设为某个文件名称,记录Rate limiter点击次数。
2、$wgRateLimits   简单的Rate limiter选项,用以控制过度的编辑流量。
二十二、代理
1、$wgBlockOpenProxies   进行编辑操作时,是否进行自动的公开的代理检验。
2、$wgEnableOpm   用http://opm.blitzed.org来查找公开的代理。还未投入实际应用。
3、$wgEnableSorbs   用http://dnsbl.sorbs.net来查找公开的代理。
4、$wgProxyKey   已被$wgSecretKey取代。
5、$wgProxyList   所有禁封的IP地址列表。显示键名而非实际的值。
6、$wgProxyMemcExpiry
7、$wgProxyPorts
8、$wgProxyscrīptPath
9、$wgProxyWhitelist   尽管存在一些质疑因素,仍然假定为非代理的IP地址列表。
10、$wgSecretKey   应该在LocalSettings.php文件中定制的项目。
二十三、Squid
1、$wgInternalServer   如果内部服务器名称有所变化, Squid认定该值即为内部服务器名称。
2、$wgMaxSquidPurgeTitles   在任何一次客户端操作中最多清理多少个标题。
3、$wgSquidFastPurge   在清理缓存的时候,采用持久连接,毋需等待响应。
4、$wgSquidMaxage   squid的缓存有效时间。
5、$wgSquidServers   待清理的代理服务器列表(尽可能用ip地址表示)。
6、$wgSquidServersNoPurge   类似于$wgSquidServers,只是不清理列表中的代理服务器。
7、$wgUseESI   在ESI支持下运行Squid3,启用该选项。
8、$wgUseSquid   启用/禁用Squid。
二十四、Cookies
1、$wgCookieDomain   在登录cookies里设置一个显性的域。例如: justthis.domain. org 或者:.any.subdomain.net。
2、$wgCookiePath
3、$wgDisableCookieCheck
4、$wgCookieExpiration
二十五、缩减某些网站功能
1、$wgDisableAnonTalk   对匿名用户关闭讨论页面。
2、$wgDisableCounters
3、$wgDisableQueryPages   一旦开启节省模式,则关闭所有查询页面。
4、$wgDisableSearchUpdate   如果关闭了搜索功能(非永久性地),则该变量禁止对表进行更新操作。
5、$wgDisableTextSearch   禁用全文搜索功能。
6、$wgMiserMode   设置为true,禁用需要数据库支持的功能。
7、$wgUseDumbLinkUpdate   通过删除/插入操作,完成链接更新,而不是采用incremental方式。
8、$wgWantedPagesThreshold   最少必须有多少个链接指向某个页面,该页面才能出现在Special:Wantedpages列表中。
二十六、上载
设置上载功能时,尤其要注意确保网站安全。
1、$wgCheckFileExtensions   是否检查上载文件的扩展名。
2、$wgEnableUploads   启用上载功能,显示到上载页面去的链接。
3、$wgDisableUploads   跟上述功能相反。
4、$wgFileBlacklist   禁止上载带有这些扩展名的文件。
5、$wgFileExtensions   推荐的上载文件扩展名列表。如果某个上载文件的扩展名没有包含在这个列表中,将会出现警告提示。
6、$wgRemoteUploads   设置为:true,在本地上载功能未开启情况下,显示上载链接。
7、$wgStrictFileExtensions   关闭该项功能时,如果上载文件的扩展名不在$wgFileExtensions中,用户可以忽略由此产生的警告信息。
8、$wgUploadSizeWarning   如果上载文件大于该设定,给予警告提示。
二十七、MIME类型
1、$wgLoadFileinfoExtension   PECL运行时调用FileInfo扩展的开关。
2、$wgMimeDetectorCommand   设置一个外部的mime检测程序。
3、$wgMimeInfoFile   设置MimeMagic.php文件用到的mime 类型信息文件。
4、$wgMimeTypeFile   设置MimeMagic.php文件使用的mime 类型定义文件。
5、$wgTrivialMimeDetection   用于监测细微的mime。
6、$wgVerifyMimeType   决定是否应当检查上载文件的mime类型。
二十八、防止病毒
1、$wgAntivirus   病毒扫描软件的内部名称。
2、$wgAntivirusRequired   如果某个文件未能通过病毒扫描,是否拒绝该文件。
3、$wgAntivirusSetup   不同的病毒扫描文件的配置信息。
二十九、解释器
1、$wgAllowExternalImages   是否允许内嵌图像指向其他网站。
2、$wgUseXMLparser   应用XML语法解释器吗?
三十、HTML
1、$wgRawHtml   允许未经检查的HTML代码出现在<html>…</html>段落中吗?
2、$wgUserHtml   在wiki页面中,允许出现有限的用户编写的HTML代码吗?
三十一、TeX
使用内嵌TeX,需要编辑“texvc”文件(在MediaWiki软件包的“math”子目录下面),还需要安装latex,dvips,gs (ghostscrīpt),convert (ImageMagic),并且从路径可以调用。更多信息参见math/README。
1、$wgTexvc   texvc binary的位置。
2、$wgUseTeX   允许使用<math>标签。
三十二、Tidy
1、$wgTidyBin   tidy binary所在的路径。
2、$wgTidyConf    tidy配置文件所在的路径。
3、$wgTidyInternal   控制PECL扩展的使用方式,采用一个tidy库,而不是另外建立一个独立的程序。
4、命令行中传递给tidy的选项。
5、应用tidy来确保HTML输出是完整有效的。
三十三、图像
1、$wgImageHtmlCacheExpiry   跟图像相关的HTML代码的缓存时间(设置为秒数)。
2、$wgImageLimits   将图像描述页中出现的图像个数,限制为用户可选择的数目。
3、$wgImageMagickConvertCommand   启用ImageMagick的命令。
4、$wgSharedThumbnailscrīptPath   类同于$wgThumbnailscrīptPath,只是用于共享上载。
5、$wgSVGConverter   $wgSVGConverters的一个键名,图像转换器。
6、$wgSVGConverterPath   如果图像转换器不在可执行路径中,在此具体说明。
7、$wgSVGConverters   多个图像转换器的数组,实现将SVG作为图像上载。
8、$wgThumbnailscrīptPath   给出调用thumb.php文件的路径,按照客户端请求产生图像缩略图。不需要产生缩略图以后,再输出一个静态的URL。
9、$wgUseImageMagick   可以利用PHP的内部图像库或者采用ImageMagick来改变图像大小。php仅支持PNG,GIF,JPG,XBM和WBMP图像格式,ImageMagick支持更多的图像格式。
将$wgUseImageMagick设置为true,可以不调用内置函数,而直接用ImageMagick来完成所需操作。
1、$wgUseImageResize   设置为:true,实现服务器端的动态图像缩放功能(缩略图)。
2、$wgShowEXIF   决定是否显示EXIF 元数据。设置为false,不显示该数据。
三十四、最新更改
参见:Special:Recentchanges
1、$wgPutIPinRC   在recentchanges表中记录IP地址。
2、$wgRCMaxAge   最新更改中的内容会定期清理。早于该变量设置时间的内容将被清理。
3、$wgRCSeconds   在“最新更改”中,修改时间的显示单位具体到秒钟。
4、$wgUseRCPatrol   利用RC巡游方式查验是否有vandalism行为发生。
三十五、UDP更新
通过UDP发送RC更新。
1、$wgRC2UDPAddress
2、$wgRC2UDPPort
3、$wgRC2UDPPrefix
三十六、版权
1、$wgCheckCopyrightUpload   如果希望禁止查验是否详尽的版权信息值是非空的,将该值设置为false。
2、 $wgCopyrightIcon   可以用HTML代码覆盖原有的版权图标,换上自己网站的版权图标。
3、$wgEnableCreativeCommonsRdf   启用来自Creative Commons的RSS。
4、$wgEnableDublinCoreRdf
5、$wgRightsIcon
6、$wgRightsPage
7、$wgRightsText
8、$wgRightsUrl
9、$wgUseCopyrightUpload   如果希望上传详细的版权信息表,将该值设置为:true。
三十七、扩展
1、$wgAuth   安全性插件。见:AuthPlugin.php。
2、$wgDisableInternalSearch   禁用基于MySQL的内部搜索,而让扩展实现该功能。
3、$wgExtensionFunctions
4、$wgExternalStores   外部存贮类允许跟踪URL链接,引用来自非数据库源的内容。
5、$wgHooks   全部hooks列表。
6、$wgSearchForwardUrl   设置为一个URL,将搜索请求引导至该外部链接位置。
7、$wgSkinExtensionFunctions
三十八、HTCP multicast purging
1、$wgHTCPMulticastAddress
2、$wgHTCPMulticastTTL
3、$wgHTCPPort
三十九、其他设置
1、$wgAllowPageInfo   允许信息操作,但目前该功能还很不完善。
2、$wgAllowRealName   是否允许实名字段。
3、$wgAntiLockFlags   反锁定标记。
4、$wgBrowserBlackList   不支持unicode的浏览器列表。
5、$wgCapitalLinks   设置为false,链接的首字母不再强制大写。
6、$wgCompressRevisions   开启该项功能后,保存页面时,zlib工具将会压缩old revision表中的内容。
7、$wgCountCategorizedImagesAsUsed   在Special:Unusedimages中,如果将图像分归某个分类中,即认为该图像已被使用。
8、$wgDiff3   GNU diff3 应用程序所在的路径。
9、$wgDisableHardRedirects   禁用重定向至特殊页面或者interwiki间的重定向。
10、$wgEnableSOAP   启用SOAP界面。
11、$wgExtraRandompageSQL    “随机页面”的过滤器,where语句的一部分。
12、$wgFeedCacheTimeout   “最新更改”在缓存中的最短的有效期,单位为秒。
13、$wgFeedDiffCutoff   生成“最新更改”的RSS/Atom时,长度超过该变量的页面不会有“内容差异”选项。
14、$wgFeedLimit   “最新更改”、“新生成页面”等特殊页面的RSS、Atom文档中,最多显示多少条内容。
15、$wgHitcounterUpdateFreq   页面计数器更新频率。
16、$wgMakeDumpLinks 产生hash后的HTML条目路径。
17、$wgMaxNameChars   用户名称的最大字节数。
18、$wgMaxTocLevel   文档目录最多包含几个级别。
19、$wgShowIPinHeader   匿名用户登录时,在页面顶端的用户信息栏内输出其IP地址。
20、$wgUseData
21、$wgUseExternalDiffEngine   使用外部的C++ diff engine。
22、$wgUseGeoMode   识别经度/纬度坐标。
23、$wgUseOldExistenceCheck   采用旧的预填充链接方法,仅用于调试。
24、$wgSpamRegex   与该正则表达式匹配的文字将会被认为是spam。
25、$wgUseTrackbacks   支持在条目中应用博客风格的“跟踪”功能。
26、$wgUseValidation   打印版或其他版本的可用性。默认为禁用状态。

网站的定期备份和重要操作之前的备份工作(如系统升级或重要修改)无比重要,可以做到防范于未然,让发生了意外而能够进行复原,这是网站运维工作的重中之重。

MediaWiki的备份有基于服务器快照自动备份、手动本地备份等方式,各有利弊,建议结合起来使用

服务快照自动备份

云服务器厂商都会提供一个叫“快照”的功能,快照是针对于服务器的磁盘来说的。快照工具可以记录指定时间点硬盘的数据,全部备份起来,并可以实现一键恢复。

如果您对磁盘进行了自动的快照设定,如下场景您便可以比较从容的面对:
1、工作了几天的成果,被误删了
2、黑客把把网站网站弄的面目全非
3、现在的内容已经乱七八糟了,我要回到一个正常的服务器状态

做了快照备份,一键恢复到备份时间点的状态。也就是现场还原,很好的功能。

不同的云厂商快照设置稍有差别,具体参考:

手工本地备份

手工本地备份主要是通过下载应用程序文件和备份导出数据库文件,建议备份周期每月一次,备份文件保存6个月左右。下面就具体的备份操作进行说明:

  1. 下载网站源文件
    √ 若是Windows系统请通过远程桌面直接把C:/websoft9/wampserver/www 目录拷贝
    √ 若是Linux系统请通过SFTP工具登录到服务器(见下图),将网站目录完整的下载到本地(如果文件数量比较多,建议压缩后再下载)
  2. 通过浏览器进入PhpMyAdmin(网址:http://服务器公网ip/phpmyamin),进入数据库管理界面
  3. 左侧菜单中选择所需的数据库,顶部导航栏上选择“导出”标签
  4. 选择导出方式和格式(建议SQL),点击“执行”,导出文件后下载到本地
  5. 将程序文件和数据库文件放到同一个文件夹,根据日期命名,备份工作完成

网站技术日新月异,更新升级是维护工作之一,长时间不升级的程序,就如长时间不维护的建筑物一样,会加速老化、功能逐渐缺失直至无法使用。完成的升级包括:操作系统补丁升级、运行环境补丁漏洞升级和应用程序升级三个部分。Websoft9的镜像可以自动完成前面两者的升级,用户只需关注应用程序的升级即可。

特别注意:MediaWiki应用程序升级之间务必进行完整备份,以保证备份出现差错之后能够复原。

 

下面列出MediaWiki使用中比较常见的问题以及对应的处理方案

创建新页面

MediaWiki创建页面

http://wiki.cslized.com/index.php/New

重新安装

  1. 找到根目录下的LocalSettings.php文件,删除之
  2. 运行您的mediawiki,系统会进入一个安装完成的初始化页面
  3. 找到右侧“重新安装”链接,进入重新安装

修改Logo

根目录下LocalSettings.php文件,扎到$wgLogo = “$wgResourceBasePath/resources/assets/wiki.png”代码。

修改路径或把wiki.pnp图片上传到目录

修改用户权限

安装MediaWiki之后,用户的权限设置是完全开放的,需要做一些设置,对匿名用户的设置可以从修改LocalSettings.php入手,下载该文件,然后按照希望设置的用户权限,在文件中插入对应的设置语句,存储后再上传回去就可以了。例如:

禁止所有用户编辑:

$wgGroupPermissions[‘*’][‘edit’] = false;

然后允许注册用户编辑:

$wgGroupPermissions[‘user’][‘edit’] = true;

通过以上两个语句就实现了匿名用户不能编辑的目的


先设置所有未注册用户不能读,然后设置未注册用户可以读首页

$wgGroupPermissions[‘*’ ][‘read’] = false;
$wgWhitelistRead = array (”首页”);

 

上传文件

1、修改LocalSettings.php,找到$wgEnableUploads参数,将false改为true,刷新Mideawiki,您就可以看到上传文件链接了:

2、设置images文件夹为可写

3、上传页面的地址是: Special:Upload ,也可以先进入特殊页面,然后进入上传文件页面。在该页面中上传图片,设置好文件名和描述,上传成功以后就可以在文章中使用了。

增加可视化编辑器

Mediawiki默认的编辑器非常简单,不符合排版需求。如何实现可视化编辑呢?

  1. 下载可视化编辑器WikiEditor,将其放置在您extensions/文件夹中的WikiEditor目录内。(覆盖原有文件)
  2. 将下列代码放置在您的LocalSettings.php的底部
    wfLoadExtension( 'WikiEditor' );
  3. 在您的wiki上导航至Special:Version,以验证扩展已成功安装。
  4. 把上面的代码添加到您的 LocalSettings.php 文件底部。 在某些情况下,WikiEditor可能会在您安装后仍然不能在您的浏览器上显示出来。 如果出现这种情况,请尝试清空浏览器缓存。
    # Enables use of WikiEditor by default but still allows users to disable it in preferences
    $wgDefaultUserOptions['usebetatoolbar'] = 1;
    
    # Enables link and table wizards by default but still allows users to disable them in preferences
    $wgDefaultUserOptions['usebetatoolbar-cgd'] = 1;
    
    # Displays the Preview and Changes tabs
    $wgDefaultUserOptions['wikieditor-preview'] = 1;
    
    # Displays the Publish and Cancel buttons on the top right side
    $wgDefaultUserOptions['wikieditor-publish'] = 1;
  5. 刷新浏览器,我们新建一个页面,就可以看到可视化编辑器了

域名设置分为两个步骤

步骤一、域名解析

如果您的域名备案(大陆之外无需备案),可以通过云厂商的域名控制台进行域名解析,操作如下:

  1. 登录域名控制台->域名解析,进入解析设置界面(以阿里云为例)
  2. 增加一条A记录,主机记录那里填写二级域名的前缀(如www,shop,test等)或通配符@,记录值填写您的服务器公网ip地址,保存
  3. 域名解析成功,等待解析生效(不同的厂商解析生效时间不一样,1分钟-24小时不等)

注意:解析生效之后,本地访问可能由于缓存问题导致仍然没有生效,请清空浏览器缓存,然后通过CMD命令行刷新本地DNS操作

步骤二、修改虚拟主机配置文件(非必要)

请根据不同的环境选择对应的操作方式

  • LAMP环境下,请使用SFTP修改/ect/httpd/conf.d/vhost.conf文件,将其中的ServerName,ServerAlias项的值替换成你的域名信息,重启http服务后生效
  • WAMP环境下,请远程桌面到服务器,鼠标左键点击服务器桌面右下角的WAMP图标,打开http-vhosts.conf文件,将其中的ServerName,ServerAlias的值替换成你的域名信息,点击图标上的“重新启动所有服务”按钮后生效

说明:如果你计划在服务器上增加更多应用,本步骤是必要的

Websoft9镜像默认安装了可视化MySQL管理工具phpMyadmin,其安装目录: /usr/share/phpMyAdmin。

如何使用PhpMyAdmin数据库?

  1. 通过本地Chrome或Firefox浏览器,访问:http://服务器公网IP/9Panel
  2. 点击左侧菜单的“数据库管理”项,会进入“登录PhpMyAdmin”链接
  3. 选择您需要的语言,然后输入root和对应的密码,然后登录到系统中

常见的数据库相关操作包括:
修改root密码、创建数据库、创建用户和权限设置、导入和导出等,具体参考《MySQL文档-PhpMyAdmin常见操作》

远程连接之前,请确认您服务器使用的操作系统,Linux操作系统(CentOS、Ubuntu、Debian、SUSE Linux、OpenSUSE、AliyunLinux)与Windows操作系统的登录方式是完全不一样的。

Linux系统

管理Linux系统,只需要用到两个工具即可满足大部分使用场景

  • WinSCP,可视化界面的SFTP工具,90%的Linux操作均可通过它来实现(下载WinSCP
  • Putty,远程登录&命令操作软件,需要用到命令操作的时候使用(下载Putty

具体参考:

Windows系统

Windows服务器的操作主要分为两个部分:

  • 远程桌面连接:通过PC自带的远程桌面工具远程连接到服务器,完全控制服务器的操作
  • FTP文件管理:通过FTP客户端和Windows服务器上的FTP服务端进行通讯,实现文件管理的操作的目的

具体参考:

Websoft9的镜像支持部署多个应用程序(网站),但不同类型操作系统有不同的操作方法,具体参考:

LAMP环境新增

Linux下的LAMP环境支持部署多个应用程序(网站),具体操作如下:

  1. 通过SFTP将网站文件上传到/data/wwwroot/default/目录下面,假设程序目录命名为“mysite”
  2. 修改mysite文件夹的权限和用户组(参考:如何修改Linux文件系统的权限?
  3. 通过域名控制台将域名解析到服务器公网IP
  4. 通过SFTP打开 /ect/httpd/conf.d目录,新增一个conf文件,假设名称为www.mydomain.com.conf,将下面内容拷贝到文件中,根据你的实际情况进行修改、保存。
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot "/data/wwwroot/default/mysite"
ErrorLog "/var/log/httpd/www.mydomain.com_error_apache.log"
CustomLog "/var/log/httpd/www.mydomain.com_apache.log" common
<Directory "/data/wwwroot/default/mysite">
Options Indexes FollowSymlinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

如果没有域名或不打算通过域名访问,步骤“5”的配置文件内容为:

Alias /mysite "/data/wwwroot/default/mysite"   
 <Directory "/data/wwwroot/default/mysite">
	        Options Indexes FollowSymlinks
	        AllowOverride All
	        Require all granted
	    </Directory>

重启http服务后,再通过http://www.mydomain.com或http://ip/mysite访问新网站,如何配置没有问题,您会成功打开网站

说明:Apache的配置文件规则和语法非常灵活,以上仅供参考

WAMP环境新增

Windows下的WAMP环境下新增虚拟主机操作步骤如下:

  1. 将域名解析到服务器公网IP地址
  2. 远程桌面到Windows服务器上,打开c:/websoft9/wampserver/www,新建一个目录,假设名称为:newproject1
  3. 将新增网站的源码放到newproject1目录下
  4. 点击Windows服务器桌面上的“新增虚拟主机”快捷方式,进入创建虚拟界面
  5. 参考上图,分别填写域名信息和网站目录的绝对地址(格式不能错,否则创建会失败),点击开始创建按钮
  6. 创建成功,系统会有如下的界面提示
  7. 鼠标左键单击服务器桌面右下角的WAMP图标,打开http-vhosts.conf文件,将新创建的虚拟主机的配置文件中的Require local修改为Require all granted,保存配置文件
  8. 点击WAMP图标上的“重新启动所有服务”按钮,完成虚拟主机配置

 

如何修改php配置文件?

使用PHP应用程序的时候,php组件的启用或停用、邮件设置、上传文件大小等控制都会涉及修改php配置文件。本镜像php配置文件的安装目录为: /etc/php.ini

下面是一些与安装相关的php参数:

  • memory_limit – Minimum: 256M   //默认内存
  • upload_max_filesize – Minimum: 20M  //上传文件最大值
  • post_max_size – Minimum: 20M   //通过POST提交数据的最大值
  • max_execution_time: At Least 120 Recommended: 300  //PHP最大执行时间

需要修改上述参数的值,只需要通过SFTP打开php.ini,修改(“#”在前的项表示没有启用,请根据实际情况删除“#”),然后保存

保存后还需要重启http服务才能生效,重启命令如下:

~# systemctl restart httpd

如果您不会使用命令操作,通过云服务器后台去重启服务器也可以达到同样的效果。

如何修改上传文件大小限制?

通过SFTP修改 /etc/php.ini 如下的部分

; Maximum size of POST data that PHP will accept.
post_max_size = 16M
; Maximum allowed size for uploaded files.
upload_max_filesize = 16M

保存后,重启http服务

~# systemctl restart httpd

如果您不会使用命令操作,通过云服务器后台去重启服务器也可以达到同样的效果。

如何修改系统最大响应时间?

我们在运行应用程序的时候,常常会等待很长的时间之后,却收到这样的错误提示 “Maximum execution time of 30 seconds exceeded”。这种情况下就需要通过修改the max_execution_time(最大执行响应时间)的值来解决这个问题。

方法一(推荐): 通过SFTP修改 /etc/php.ini 如下的部分

; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 90
; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly
; long running scripts.

方法二: 如果应用程序支持 .htaccess,请修改它:

<IfModule mod_php5.c>
php_value max_execution_time 90
</IfModule>

保存后,重启http服务

~# systemctl restart httpd

如果您不会使用命令操作,通过云服务器后台去重启服务器也可以达到同样的效果。

如何修改Linux文件系统的权限?

上传一个扩展或模板文件夹,建议修改Linux系统的权限以便能够正常访问。网站的权限设置值建议如下:
file 644, folder 755 ,用户和用户组分别是 apache : apache

方法一:putty登录命令行方式(推荐)

~# chown -R apache.apache /data/wwwroot/default/mediawiki
~# find /data/wwwroot/default/mediawiki -type d -exec chmod 755 {} \;
~# find /data/wwwroot/default/mediawiki -type f -exec chmod 644 {} \;

方法二:WinSCP右键修改,参考:使用WinSCP设置文件夹权限

如何安装PHP扩展?

当应用程序进行大版本升级的时候,可能会需要增加某种php扩展。

安装php扩展的步骤如下:

1、利用yum search查找扩展包

~# yum search memcached php
php-pecl-memcached - memcached module for php5

2、使用yum install安装扩展包

~# yum install -y php-pecl-memcached
Reading package lists... Done
Reading state information... Done

Windows镜像安装了WAMPserver,它提供一个可视化的运行管理器,通过鼠标左键单击Windows任务栏右侧“W图标”进入管理界面,您可以参考下图做常见的配置:

  • 何修改系统最大响应时间?将max_execution_time设置成你需要的值,然后重启动所有服务
  • 如何修改上传文件大小限制?将post_max_size = 64M,upload_max_filesize = 64M设置成你需要的值,然后重启所有服务
  • 如何安装PHP扩展?点击扩展菜单,启用更多扩展项或下载扩展dll库到C:\websoft9\wampserver\bin\php\php版本\ext 文件夹,然后重启所有服务

阿里云、Azure等云市场支持多版本镜像,默认选择为最新版镜像,历史版本镜像的使用差异将在下面的小节中说明

MediaWiki1.29.1之前的版本

MediaWiki1.29.1之前的版本,有如下区别:

  • 基础环境采用的是Oneinstack
    PHP配置文件目录: /usr/local/php/etc/php.ini
    apache虚拟主机文件目录: /usr/local/apache/conf/vhost
    Apache虚拟主机配置命令: /root/oneinstack/vhost.sh
    Database install directory: /usr/local/mysql
    Database data directory: /data/mysql
    Database Configuration File: /etc/my.cnf
  • 没有域名,通过需要通过http://公网ip/mediawiki才能打开系统
  • 数据库管理采用phpMyAdmin,地址为:http://服务器公网IP/phpMyAdmin(请注意大小写)
  • 没有安装9panel

特别注意事项:

通过域名管理面板进行A记录解析到公网ip之后,域名直接打开访问的不是mediawiki,而是镜像的默认界面,您还需要在服务器上完成域名配置后,方可通过域名直接访问应用。

参考:服务器上的域名配置(LAMP)

命令操作差异:

  • 重启Apache服务器: service httpd restart