查看“Mediawiki”的源代码
←
Mediawiki
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
==wiki架设== 最近用mediawiki 配置了一个wiki网站给IFU项目使用。 基本情况是需求以下服务:[[Apache]]+[[mysql]]+[[php]] ===安装=== *可以自己安装,但是需要较多的php包 yum install -y httpd mysql-server php php-pear php-xml php-mysql php-intl php-pecl-apc php-gd php-mbstrin :安装之后重新启动httpd服务 :如果报错,注意检查http的错误log,在/var/log/httpd/error_log ;mediawiki的安装界面比较友好。安装好之后要将[[Apache]]服务配置好。 ;Wiki的配置最重要要是更改 LocalSettings.php 文件 *有不需要数据库服务的wiki,可以U盘带走,这个比较好。具体参考http://www.mediawiki.org/wiki/Manual:Wiki_on_a_stick *可以用系统自带的rpm包,fc下,直接把/usr/share/mediawiki/目录下的文件复制到你要的目录就可以了(在1.32之前,符号链接都可,1.32不知道为什么不可以了) ===[[SELinux]]=== 这个比较烦人,参考https://www.mediawiki.org/wiki/SELinux ==配置== *对没有登录的 用户移除页面顶部的讨论页链接在LocalSetting.php里添加 $wgShowIPinHeader = false; ===用户权限=== *以下内容设置匿名用户可浏览,注册,但不能编辑。注册用户可编辑 $wgGroupPermissions['*' ]['createaccount'] = true; $wgGroupPermissions['*' ]['read'] = true; $wgGroupPermissions['*' ]['edit'] = false; $wgGroupPermissions['user' ]['createaccount'] = true; $wgGroupPermissions['user' ]['edit'] = true; *阻止新用户注册 $wgGroupPermissions['*' ]['createaccount'] = false; ;注 意:阻止新用户注册,此时管理员可以到特殊页面上的用户登录页面(Special<nowiki>:</nowiki>UserLogin)里,输入希望为其建立帐户的某人的用户名与电子邮 件地址,然后点击通过eMail(by email)按钮递交,系统将创建帐号并将随机生成的密码发送到指定email里。 *设置匿名用户可读内容 $wgWhitelistRead = array( "Main Page", "Special:Userlogin" ); $wgGroupPermissions['*' ]['read'] = false; ;注 意:具体需要对应自己的站点链接,而对于多字节语言的MediaWiki,例如中文首页链接index.php?title=%E9%A6%96%E9 %A1%B5,这首页中文字符PHP可能无法正确解码。需要利用urldecode()函数转换一下,写为:$wgWhitelistRead = array( urldecode("%E9%A6%96%E9%A1%B5") ; ===文件上传=== *配置文件上传,修改如下内容 ## To enable image uploads, make sure the 'images' directory ## is writable, then set this to true: $wgEnableUploads = true; #$wgUploadPath = "$IP/img_auth.php"; #$wgUploadDirectory = "$IP/images"; #默认值,这个文件夹应该有写入权限 (我设置了777不知道对不对) $wgFileExtensions =array('png','gif','jpg','jpeg','doc','xls','mpp','pdf','ppt','tiff','bmp','docx','xlsx','pptx','ps','odt','ods','odp','odg'); #文件扩展名限制,不知道是否可以设置任意文件类型,还有文件大小限制默认的是2M,如何设置?(这个好像是[[php]]的限制) 注意 #$wgUploadPath = "$IP/img_auth.php"; #$wgUploadDirectory = "$IP/images"; 以上两句是不需要的,我在1.23.8里面设置之后反而出错。 :一种原因是因为SELinux sudo chcon -R -t httpd_sys_content_rw_t images ( 这个重新启动后可能会失效) :另外注意检查images目录下是否有.htaccess文件,注意设置images目录的权限 chown apache -R images chgrp apache -R images chmod 755 -R images *文件大小限制 修改/etc/php/php.ini的两个配置项 post_max_size upload_max_filesize 注意重新启动httpd使设置生效。 *不能上传script文件,出现警告:有可能引起浏览器错误 $wgDisableUploadScriptChecks = true; *新版本的wiki还要对文件的格式做事实上的检查,可以通过下面的设置关掉 $wgCheckFileExtensions = false; $wgStrictFileExtensions = false; 这两个配置不一定在Localsetting里面,而是在includes/DefaultSetting这个文件中间 ===无法发送邮件=== 按官网说明在LocalSetting.php文件中填写$wgSMTP。 *错误1 /usr/share/mediawiki/includes/mail/UserMailer.php: PEAR mail package is not installed 解决办法:按照php-pear-Mail *错误2 authentication failure [SMTP: STARTTLS failed (code: 220, response: Ready to start TLS)] 这是因为pear-smtp默认使用TLS认证,解决办法是修改/usr/share/pear/Net/SMTP.php文件中的 if ($tls && version_compare(PHP_VERSION, '5.1.0', '>=') 改成 if ($tls && version_compare(PHP_VERSION, '6.1.0', '>=') ;就是不要TLS认证 *在wiki升级到1.28后,错误2再次出现,且解决办法不再有效,通过安装swiftmail插件解决。 ===无法显示缩略图=== *出错信息libgomp: Thread creation failed: Resource temporarily unavailable $wgMaxShellMemory = 406900 ; ==使用== [[wiki语法]] ===扩展=== *[[如何启用扩展]] *自带的扩展启用后,可以通过[[Special:Version]]查看 *搜索,下载 [http://www.mediawiki.org/wiki/Special:ExtensionDistributor] *下面是我自己下载的两个,感觉比较有用的扩展 ====Lockdown==== *实现某些页面只有登录用户才能阅读的功能,参见[https://www.mediawiki.org/wiki/Extension:Lockdown] *这些页面要用namespace来特殊定义,比如[http://cluster.shao.ac.cn/wiki/index.php/Internal:Iserver] require_once "$IP/extensions/Lockdown/Lockdown.php"; #define custom namespaces $wgExtraNamespaces[100] = "Internal"; #restrict "read" permission to logged in users $wgNamespacePermissionLockdown[100]['read'] = array('user'); ====ConfirmAccount==== *实现需审核(邮件通知)的自助注册 :报错:Catchable fatal error: Argument 1 passed to SimpleCaptcha::getForm() must be an instance of OutputPage, none given, called in /usr/share/mediawiki/extensions/ConfirmAccount/frontend/specialpages/actions/RequestAccount_body.php on line 231 and defined in /usr/share/mediawiki/extensions/ConfirmEdit/SimpleCaptcha/Captcha.php on line 42 解决方案: changing this line in RequestAccount_body.php $form .= $captcha->getForm(); to $form .= $captcha->getForm($this->getOutput()); ===管理=== *忘记用户密码 php maintenance/changePassword.php --user=username --password=newpassword *无法显示 查看httpd状态,一堆报错, SELinux is preventing /usr/sbin/httpd from getattr access on the file 解决方法 restorecon -v -R /opt/www/ ===备份=== *单个页面导出[[Special:Export]],页面导入[[Special:Import]] *完整备份为xml文件 php maintenance/dumpBackup.php --full --conf LocalSettings.php > dump.xml *xml的备份,可以用wikiTaxi软件打开 *mysql的数据库备份 mysqldump -u root -p751006abc wikidb | gzip > /bak/wikidb.bakup.gz *整个wikipedia的备份可以参见 [https://meta.wikimedia.org/wiki/Data_dump_torrents]
返回至“
Mediawiki
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
社群首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息