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
配置
- 对没有登录的 用户移除页面顶部的讨论页链接在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: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") ;
SElinux
这个比较烦人,参考https://www.mediawiki.org/wiki/SELinux
文件上传
- 配置文件上传,修改如下内容
## 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使设置生效。
使用
扩展
- 如何启用扩展
- 常用扩展
- SimpleMathJax: 启用数学符号的Latex之处
- UserMerge:合并,删除用户
- ConfirmAccount:实现需审核(邮件通知)的自助注册
- SimpleSecurity: 实现某个分类的权限管理
- 搜索,下载 [1]
无法发送邮件
按官网说明在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认证
管理
- 忘记用户密码
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/