“Mediawiki”的版本间差异
		
		
		
		
		
		跳到导航
		跳到搜索
		
				
		
		
	
无编辑摘要  | 
				|||
| (未显示2个用户的57个中间版本) | |||
| 第2行: | 第2行: | ||
最近用mediawiki 配置了一个wiki网站给IFU项目使用。  | 
  最近用mediawiki 配置了一个wiki网站给IFU项目使用。  | 
||
基本情况是需求以下服务  | 
  基本情况是需求以下服务:[[Apache]]+[[mysql]]+[[php]]  | 
||
;mediawiki的安装界面比较友好  | 
  |||
===安装===  | 
|||
;Apache设置了默认页面加密,通过更改配置文件httpd.conf  | 
  |||
*可以自己安装,但是需要较多的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]]服务配置好。  | 
|||
 <Directory "/var/www/html">  | 
  |||
;Wiki的配置最重要要是更改 LocalSettings.php 文件  | 
|||
 Options FollowSymLinks #该目录下允许文件系统使用符号连接。  | 
  |||
 AllowOverride  AuthConfig #允许存在于.htaccess文件中的指令类型  | 
  |||
 Order allow,deny #Order:控制在访问时Allow和Deny两个访问规则哪个优先  | 
  |||
 Allow from all #A允许访问的主机列表(可用域名或子网,例如:Allow from 192.168.0.0/16)。  | 
  |||
 #Deny:拒绝访问的主机列表。  | 
  |||
 </Directory>  | 
  |||
*有不需要数据库服务的wiki,可以U盘带走,这个比较好。具体参考http://www.mediawiki.org/wiki/Manual:Wiki_on_a_stick  | 
|||
*注:AllowOverride 的选项  | 
  |||
:*None: 当AllowOverride被设置为None时。不搜索该目录下的.htaccess文件(可以减小服务器开销)。  | 
  |||
:*All: 在.htaccess文件中可以使用所有的指令。  | 
  |||
*可以用系统自带的rpm包,fc下,直接把/usr/share/mediawiki/目录下的文件复制到你要的目录就可以了(在1.32之前,符号链接都可,1.32不知道为什么不可以了)  | 
|||
;.htaccess是默认的AccessFileNam (文件名是可以改变的,其文件名由AccessFileName指令决定):  | 
  |||
内容如下  | 
  |||
 authname "password required" #要求输入密码的对话框上的显示,可以任意  | 
  |||
 authtype basic  | 
  |||
 authuserfile /var/www/html/wiki/.htpasswd #这个指向存储密码的文件(其实最好不要在同一目录下)  | 
  |||
 require valid-user  | 
  |||
===[[SELinux]]===  | 
|||
;.httpasswd 可以用htpasswd -b -c filepath  username password 生成  | 
  |||
这个比较烦人,参考https://www.mediawiki.org/wiki/SELinux  | 
|||
;Wiki的配置最要是更改 LocalSettings.php 文件  | 
  |||
==配置==  | 
|||
$以下内容设置匿名用户可浏览,注册,但不能编辑。注册用户可编辑  | 
  |||
*对没有登录的 用户移除页面顶部的讨论页链接在LocalSetting.php里添加  | 
|||
 $wgShowIPinHeader = false;  | 
|||
===用户权限===  | 
|||
*以下内容设置匿名用户可浏览,注册,但不能编辑。注册用户可编辑  | 
|||
 $wgGroupPermissions['*' ]['createaccount'] = true;  | 
   $wgGroupPermissions['*' ]['createaccount'] = true;  | 
||
 $wgGroupPermissions['*' ]['read'] = true;  | 
   $wgGroupPermissions['*' ]['read'] = true;  | 
||
| 第39行: | 第34行: | ||
 $wgGroupPermissions['user' ]['edit'] = 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  | 
   ## To enable image uploads, make sure the 'images' directory  | 
||
 ## is writable, then set this to true:  | 
   ## is writable, then set this to true:  | 
||
 $wgEnableUploads       = true;  | 
   $wgEnableUploads       = true;  | 
||
 #$wgUploadPath = "/img_auth.php";  | 
   #$wgUploadPath = "$IP/img_auth.php";   | 
||
 #$wgUploadDirectory = "/images"; #默认值,这个文件夹应该有写入权限 (我设置了777不知道对不对)  | 
   #$wgUploadDirectory = "$IP/images"; #默认值,这个文件夹应该有写入权限 (我设置了777不知道对不对)  | 
||
 $wgFileExtensions =array('png','gif','jpg','jpeg','doc','xls','mpp','pdf','ppt','tiff','bmp','docx',  | 
   $wgFileExtensions =array('png','gif','jpg','jpeg','doc','xls','mpp','pdf','ppt','tiff','bmp','docx','xlsx','pptx','ps','odt','ods','odp','odg'); #文件扩展名限制,不知道是否可以设置任意文件类型,还有文件大小限制默认的是2M,如何设置?(这个好像是[[php]]的限制)  | 
||
'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  | 
|||
*无法创建目录“mwstore://local-backend/local-public/c/ca”错误  | 
|||
 sudo chown -R www-data:www-data images/    | 
|||
*文件大小限制  | 
|||
修改/etc/php/php.ini的两个配置项  | 
|||
 post_max_size  | 
|||
 upload_max_filesize  | 
|||
注意重新启动httpd使设置生效。在fc35中,还需要重启php-fpm服务。  | 
|||
*不能上传script文件,出现警告:有可能引起浏览器错误  | 
|||
 $wgDisableUploadScriptChecks = true;  | 
|||
*新版本的wiki还要对文件的格式做事实上的检查,可以通过下面的设置关掉  | 
|||
 $wgCheckFileExtensions = false;  | 
|||
 $wgStrictFileExtensions = false;  | 
|||
这两个配置不一定在Localsetting里面,而是在includes/DefaultSetting这个文件中间  | 
|||
===无法显示缩略图===  | 
|||
*出错信息libgomp: Thread creation failed: Resource temporarily unavailable  | 
|||
 $wgMaxShellMemory = 406900 ;  | 
|||
==使用==  | 
|||
[[wiki语法]]  | 
|||
===扩展===  | 
|||
*[[如何启用扩展]]  | 
|||
*自带的扩展启用后,可以通过[[Special:Version]]查看  | 
|||
*搜索,下载 [http://www.mediawiki.org/wiki/Special:ExtensionDistributor]  | 
|||
*下面是我自己下载的两个,感觉比较有用的扩展(mediawiki 1.38)  | 
|||
====Lockdown====  | 
|||
*实现某些页面只有登录用户才能阅读的功能,参见[https://www.mediawiki.org/wiki/Extension:Lockdown]  | 
|||
*这些页面要用namespace来特殊定义,比如[http://cluster.shao.ac.cn/wiki/index.php/Internal:Iserver]  | 
|||
 wfLoadExtension( 'Lockdown' )  | 
|||
 #define custom namespaces  | 
|||
 $wgExtraNamespaces[100] = "Internal";  | 
|||
 #restrict "read" permission to logged in users  | 
|||
 $wgNamespacePermissionLockdown[100]['read'] = array('user');  | 
|||
====ConfirmAccount====  | 
|||
*实现需审核(邮件通知)的自助注册  | 
|||
====SwiftMailer====  | 
|||
*设置wiki的邮件系统,  | 
|||
:*Localsettings中设置   | 
|||
 $wgEnableEmail = true;  | 
|||
:*科学院邮件需要编辑 "extension.json" file:  | 
|||
 "config": {  | 
|||
 	"SMTPAuthenticationMethod": {  | 
|||
 		"value": "ssl"   | 
|||
 	}  | 
|||
 },  | 
|||
===管理===  | 
|||
*忘记用户密码  | 
|||
 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]  | 
|||
2024年8月19日 (一) 06:38的最新版本
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: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
- 无法创建目录“mwstore://local-backend/local-public/c/ca”错误
 
sudo chown -R www-data:www-data images/
- 文件大小限制
 
修改/etc/php/php.ini的两个配置项
post_max_size upload_max_filesize
注意重新启动httpd使设置生效。在fc35中,还需要重启php-fpm服务。
- 不能上传script文件,出现警告:有可能引起浏览器错误
 
$wgDisableUploadScriptChecks = true;
- 新版本的wiki还要对文件的格式做事实上的检查,可以通过下面的设置关掉
 
$wgCheckFileExtensions = false; $wgStrictFileExtensions = false;
这两个配置不一定在Localsetting里面,而是在includes/DefaultSetting这个文件中间
无法显示缩略图
- 出错信息libgomp: Thread creation failed: Resource temporarily unavailable
 
$wgMaxShellMemory = 406900 ;
使用
扩展
- 如何启用扩展
 - 自带的扩展启用后,可以通过Special:Version查看
 - 搜索,下载 [1]
 - 下面是我自己下载的两个,感觉比较有用的扩展(mediawiki 1.38)
 
Lockdown
wfLoadExtension( 'Lockdown' )
#define custom namespaces
$wgExtraNamespaces[100] = "Internal";
#restrict "read" permission to logged in users
$wgNamespacePermissionLockdown[100]['read'] = array('user');
ConfirmAccount
- 实现需审核(邮件通知)的自助注册
 
SwiftMailer
- 设置wiki的邮件系统,
 
- Localsettings中设置
 
$wgEnableEmail = true;
- 科学院邮件需要编辑 "extension.json" file:
 
"config": {
	"SMTPAuthenticationMethod": {
		"value": "ssl" 
	}
},
管理
- 忘记用户密码
 
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的备份可以参见 [4]