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

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
  • 文件大小限制

修改/etc/php/php.ini的兩個配置項

post_max_size
upload_max_filesize

注意重新啟動httpd使設置生效。

  • 不能上傳script文件,出現警告:有可能引起瀏覽器錯誤
$wgDisableUploadScriptChecks = true;

無法發送郵件

按官網說明在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認證

無法顯示縮略圖

  • 出錯信息libgomp: Thread creation failed: Resource temporarily unavailable
$wgMaxShellMemory = 406900 ;

使用

wiki語法

擴展

SimpleMathJax: 啟用數學符號的Latex之處
UserMerge:合並,刪除用戶

 

SimpleSecurity: 實現某個分類的權限管理
mediawiki升級到1.25后曾報錯,后來增加一行include_once解決問題
  • 搜索,下載 [1]

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/

備份

php maintenance/dumpBackup.php --full --conf LocalSettings.php > dump.xml
  • xml的備份,可以用wikiTaxi軟件打開
  • mysql的數據庫備份
mysqldump -u root -p751006abc wikidb | gzip  > /bak/wikidb.bakup.gz


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM