Linux下Wiki服务器的搭建
⼀、准备⼯作
  1、软件下载和安装
最主要的就是安装好Mysql+apache+PHP
测试apache能够解析index.php⽂件后就可以。
mysql安装好后:
adduser wiki  #给系统加wiki⽤户
passwd wiki    #修改wiki⽤户密码
给wiki建⽴数据库:
# mysql –u root –p
Enter password: xxxxxxxxx 
Your Mysql connection id。。。。
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
Mysql> create database mediawiki;  #为wiki建⽴数据库
Query OK, 1 row affected (0.01 sec)
Mysql>grant all on mediawiki.* to identified by '123456';
# 将建⽴的mediawiki权限给wiki 帐号,并且设定密码
Mysql>exit
Bye
⼆、搭建维基⽹站
  1. 维基引擎的选择
  MediaWiki全球最著名的开源wiki引擎,运⾏于PHP+MySQL环境。从 2002年2⽉25⽇被作为维基百
科全书的系统软件,并有⼤量其他应⽤实例。⽬前MediaWiki的开发得到维基媒体基⾦会的⽀持。MeidaWiki ⼀直保值着持续更新,当前最新版本为1.4.13(2006-1-5)和1.5.6(2006-1-19)稳定版本。MediaWiki的原作者为德国的 Magnus Manske。为什么要选择mediawiki来做wiki⽹站?
  1.经受过重量级应⽤的考验,功能丰富却架设简单。
  2.全世界最⼤的wiki项⽬是使⽤mediawiki的成功范例,数据量、访问量都超级庞⼤ mediawiki的功能⾮常丰富,⽀持多语⾔版本,充分满⾜知识站点的需要。
  3.运⾏环境要求很低,架设过程简洁,即使新⼿也可以迅速建⽴⾃⼰的站点。
  4.最⼤的wiki程序社区:mediawiki是⽬前应⽤最⼴的wiki程序,数以万计的⽹站在使⽤它,很容易到范例站点有⼤量的热⼼参与⼈员参与研究,资料多,容易到互相交流的朋友。例如QQ3680101(技术)。持续开发,程序特性功能不断完善,保证未来的⽀持mediawiki是受到维基媒体基⾦会⽀持的开源项⽬,在功能、性能、安全⽅⾯将不断优化。
  版本选择:
  所以最后选择:1.8.2版本。
  2.wiki软件下载:
#cd var/www/html
#tar vxf mediawiki-
#mv mediawiki- /usr/local/apache/htdocs/
3.建⽴数据库(上⾯已经建⽴,在此就不再做)
  4.开始安装:
  (1)
#cd /var/www/html/wiki #进⼊到Apache 服务器的确省⽬录中#
#chmod a+w(777)config  #赋予⽂件和⽬录的可以执⾏权限#
400) {sized=true; this.width=400; this.alt='Click here to open new window';}" border=0 dypop="Click here to open new window" resized="true">
图1 安装向导设定
  以上内容主要以下部分:为了读者填写⽅便笔者把它作⼀个列表:
填写系统信息填写内容说明
Site config 站点设置
Site name: Cjh 站点别名
Admin mail address 系统管理员电⼦邮件
Language zh-cn 简体中⽂语⾔设定
Copyright/license metadata GNU Free Documentation License 1.2 (Wikipedia-compatible) 遵守的版权协议
Sysop account name: 管理员⽤户名称名称建议英⽂
password XXXXXXXX 管理员的密码
免费永久的linux服务器
again: XXXXXXXX 再次输⼊管理员的密码
Shared memory caching Memcached Php加速服务器类型
Memcached servers localhost 主机别名
Database config MYSQL数据库设定
MySQL server localhost 数据库主机名称
Database name Wiki 数据库名称
DB username Wiki 数据库管理员帐号
DB password xxxxxxxx 数据库管理员密码
again xxxxxxxx 再次输⼊数据库管理员密码
Database table prefix Wiki_ 数据库表格字⾸
DB root password xxxxxxx 数据库root账号密码
  填写结束后按“install ”按钮进⾏安装,系统如果出现图2表⽰安装成功,如果有错误(错误处会⽤红⾊标出)会⾃动退回到图1的对话框让你从新设定。
400) {sized=true; this.width=400; this.alt='Click here to open new window';}" border=0 dypop="Click here to open new window" resized="true">
图2 系统安装成功
  执⾏了浏览器安装过程後,在config⽬录下会⾃动⽣成⼀个 LocalSettings.php的本地配置⽂件。把它LocalSettings.php移动到上级⽬录中。然后点击图4页⾯右下⾓处:“this Link”链接就可以看到完成安装的wiki⾸页了。见图3。
400) {sized=true; this.width=400; this.alt='Click here to open new window';}" border=0 dypop="Click here to open new window" resized="true">
图 3 维基⾸页
  到此为⽌,我们初步建⽴wiki⽹站。下⾯要⾼效、安全运⾏它还需要⼀些管理⽅法。
  三、管理Wiki⽹站
  Wiki后台管理功能很完善,通过简单的特殊页⾯完成这些功能。⾸先登录,点击“特殊页⾯”选择“⽤户登录”即可。见图4。
400) {sized=true; this.width=400; this.alt='Click here to open new window';}" border=0 dypop="Click here to open new window" resized="true">
图4 维基的⽤户登录界⾯
400) {sized=true; this.width=400; this.alt='Click here to open new window';}" border=0 dypop="Click here to open new window" resized="true">
图5 维基参数设置界⾯
  Wiki管理特点:⾃动产⽣链接,编辑⽂本中中括号中的内容(如“[[X条⽬]]”)将⾃动产⽣链接允许使⽤模板,⽅便对相同内容的重复使⽤、更新⽀持分类,并根据分类在不同的⽂章之间⾃动产⽣关联,允许每个⽤户⾃⾏选择系统外观。
  Wiki 的管理员特殊页⾯的参数设置,⼀共九个⼤版⾯:“⽤户数据”、“快速导航条设置”、“⽪肤”、“数学显⽰”、“⽂字框尺⼨”、“时区”、“最近更新”、“搜索结果设定”、“杂项”。另外在帮助的⾸页中的常见问题回答。这样你也可以⾃⼰轻松wiki⽹站了。
  5.开始⼯作
  参数设置完成后,就可以开始⼯作。界⾯见图6。
400) {sized=true; this.width=400; this.alt='Click here to open new window';}" border=0 dypop="Click here to open new window" resized="true">
图6 维基编辑的界⾯
  维基页⾯的内容编辑过程类似于⽂本编辑器的使⽤。点击页⾯上⽅的“编辑本页”标签,即可打开⼀个编辑页⾯;在其中修改或输⼊新的内容后,点击下⽅的“保存本页”按钮后,修改内容将被记录下来。对于分成多个段落的⽂章,每段标题的右侧会有[编辑]字样,可点击进⼊单独段落的编辑过程。编辑页⾯下⽅的“简述”栏⽤来输⼊本次编辑的摘要,这将会显⽰在最近更改及页⾯历史中,⽤于提醒当时编辑的原因和主要改动内容。如果进⾏了复杂版式修改⽽不能确定效果时,可以先点击“显⽰预览”按钮,确认修改正确后再保存。为防⽌意外丢失编辑成果,建议使⽤外部⽂本编辑器进⾏长时间编辑,完成后再复制到编辑页⾯保存。(常见意外包括:服务器故障、⽹络不稳定、浏览器异常、编辑冲突等)。
  四、提⾼维基⽹站的安全性
  1. 维基管理⼝令安全
  Wiki以平和信任的观点来对待所有愿意接触它,了解它和壮⼤它的⼈,其根本理念就认为上认为不会有⼈故意破坏Wiki⽹站。Wiki 是全开放的,万⼀有陌⽣⼈来⽹站上乱搞怎么办?别担⼼,所有的Wiki 页⾯都可以进⾏版本控制,你随时都可以回之前的正确版本,有效地保护内容不会丢失。Wiki最⾼管理权限是Sysop⽤户,所以要合理设置其登录⼝令。⼝令系统安全的第⼀道防线,但常常因为系统管理员对于“⼩概率事件”的错误印象变得很脆弱。⽤单词作密码是根本架不住暴⼒攻击的。⿊客们经常
⽤⼀些常⽤字来破解密码。曾经有⼀位美国⿊客表⽰,只要⽤“password”这个字,就可以打开全美多数的计算机。其它常⽤的单词还有:account、ald、 alpha、beta、computer、dead、demo、dollar、games、bod、hello、help、intro、kill、 love、no、ok、okay、please、sex、secret、superuser、system、test、work、yes等。好的⼝令根本不是指⼝令本⾝,⽽是指这种⽅法:设置的密码容易记住,但很难被破解。我们所说的密码是指多个密码,这样即使有⼈猜出了其中⼀个⼝令,也不知道你的所有⼝令。以下是⼝令设置⽅⾯的准则,可以帮你创建⽆法被猜中但⼜容易记住的密码。选择核⼼短语。开始要选⼀个⾄少5个单字长的短语。这可以是某⾸歌的头⼀⾏、⼀句引语或者是书名——只要你记在脑海中的都⾏。然后利⽤该短语创建核⼼⼝令,通常的办法是取每个单词的头⼀个字母。⽐如tcith,这是书名《The Cat in the Hat》的头⼀个字母组成的⼝令。这个简单的步骤可以保护你,以免有⼈运⾏所谓的字典式攻击:字典⾥⾯的每个单字(还有许多专有名称)都被试过,直到正确的单字被到为⽌,电脑可以在很短时间内完成字典式攻击。密码设置和原则:
  1).⾜够长,指头只要多动⼀下为密码加⼀位,就可以让攻击者的⾟苦增加⼗倍;
  2). 不要⽤完整的单词,尽可能包括数字、标点符号和特殊字符等;
  3).混⽤⼤⼩写字符;
  4).经常修改。
  2.使⽤.htaccess来保护Apache服务
  .htaccess⽂件是Apache服务器上的⼀个设置⽂件。它是⼀个⽂本⽂件,可以使⽤任何⽂本编辑器进⾏编写。⾸先在要设置存取控制的⽬录(如htdocs)下建⽴⼀个⽂件,⽂件名可以⾃⾏设定,⼀般服务器都会设置为.htpasswd,该⽂件是不能由HTTP读取的。
.htpasswd⽂件中的每⼀⾏代表⼀个使⽤者,使⽤者的名字及经过加密的密码以冒号:分隔。 
  3. 以安全模式运⾏PHP
  以安全模式运⾏PHP是使PHP脚本安全使⽤的好⽅法,特别是在允许⽤户使⽤⾃⼰开发的 PHP脚本时。使⽤安全模式会使PHP在运⾏函数时检查是否存在安全问题。include、readfile、fopen、file、unlink、 rmdir等等:被包含的⽂件或者该⽂件所在⽬录的所有者必须是正在运⾏的脚本的所有者;
  Mysql_Connect:这个函数⽤可选的⽤户名连接MySQL数据库。在安全模式下,⽤户名必须是当前被执⾏的脚本的所有者,或运⾏httpd的⽤户名(通常是nobody)。
  HTTP Authentication:包含HTTP验证代码脚本所有者的⽤户ID(数字型)会⾃动加到验证域。这样可以防⽌有⼈通过抓取密码的程序来欺骗同⼀个服务器上的HTTP验证脚本。
  4.根据需要对系统服务进⾏控制
  服务是⼀种在系统后台运⾏的应⽤程序类型,它与Linux守护进程类似。如果可能的话,尽量使⽤本地账号⽽不是域账号作为服务账号,因为如果某⼈物理上获得了服务器的访问权限,他可能会转储服务器的LSA机密,并泄露密码。如果你使⽤域密码,森林中的任何计算机都可以通过此密码获得域访问权限。⽽如果使⽤本地账户,密码只能在本地计算机上使⽤,不会给域带来任何威胁。⼀个基本原则告诉我们,在系统上运⾏的代码越多,包含漏洞的可能性就越⼤。你需要关注的⼀个重要安全策略是减少运⾏在你服务器上的代码。这么做能在减少安全隐患的同时增强服务器的性能。在Linux中缺省运⾏的服务有很多,但是有很⼤⼀部分服务在⼤多数环境中并派不上⽤场。关闭MySQL的⽹络功能,mysqld进程启动时,会⾃动寻/f这个配置⽂件。绑定⽹络地址需要通过命令⾏参数进⾏控制。⽐如,
在/etc/init.d/mysql脚本中到以下代码:
$bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file&
  并将其修改为:
$bindir/safe_mysqld --datadir=$datadir ... --skip-networking&
  这样就可以完全关闭MySQL的⽹络功能。
  5.限制管理员权限
  系统管理员具有最⼤的权限,⽽该权限可能会与其它的板主权限相冲突⽽造成不可预期的错误,所以最好不要让系统管理员当版主。另外⽤root权限运⾏MYSQL也不太安全,这⾥推荐使⽤其他⽤户运⾏MYSQL。⽅法是:
# mysql -u root -p
Enter password:xxxxxxxxx
………
mysql>update user set user="cao" where user="root";
mysql> flush privileges;
mysql>quit
Bye
  以后就得通过cao帐号访问mysql数据库了。
  6. 关闭Mysql远程连接
  ⾸先,应该关闭3306端⼝,这是MySQL的默认监听端⼝。由于此处MySQL只服务于本地脚本,所以不需要远程连接。尽管MySQL内建的安全机制很严格,但监听⼀个TCP端⼝仍然是危险的⾏为,因为如果MySQL程序本⾝有问题,那么未授权的访问完全可以绕过MySQL的内建安全机制。关闭⽹络监听的⽅法很简单,mysqld进程启动时,会⾃动寻/f这个配置⽂件。在/etc/myf⽂件中的[mysqld]部分,去掉#skip-networking前⾯的“#”即可。另外要尽量养成在mysql下输⼊密码的习惯,因为Shell下⾯输⼊的时候可能会被其它⼈看见。
  总结:
  LAMP和mediawiki可以组成⼀个优秀的维基⽹站,可以在互联⽹上运⾏,也可以在Linux局域⽹中运⾏。有了维基⼀个⽤户就可以低成本地发布、更新和维护⾃⼰的维基⽹站。在预算短缺的今天,LAMP+mediawiki组成维基⽹站⽆疑具备明显的价格优势。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。