科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航



ZDNet>网络频道>ZD评测>用基于Linux的PHP自建维基Wiki网站(1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在Web 2.0革命中,维基(Wiki)的起源比博客还要早。

来源:51cto 2008年01月05日

关键字:互联网 Wiki

    在Web 2.0革命中,维基(Wiki)的起源比博客还要早。博客要由自己一个人编写并维护,每天更新博客会让你思维枯竭,维基技术和支持它的网页却能够让大家群策群力一起交流共同爱好。维基对所有人包括浏览Wiki页面的人都是全面开放的。也就是说,每个人都可以任意创建、修改和删除网站上的页面内容。维基和博客相比更加具有团队精神。 

   通常我们将Wiki翻译为“维基”。Wiki一词来源于夏威夷语的“wee kee wee kee”,原本是“快点快点”的意思。Wiki是一种在线多人协作的超文本系统写作工具。Wiki站点支持面向社区的协作式写作,每个人都可以发表自己的见解,或者对共同维护的主题进行扩展。Wiki同时也包括一组支持这种写作的辅助工具,可以在Web的基础上对Wiki页面的文本进行创建,更改和发布,比做网页和更新网页简单方便得多。 

   实现Wiki的方式有两种:一种是到Wiki空间提供网站注册,注册完后就可以开始了。另外一种就是在自己的计算机上架设一个Wiki,其好处是没有储存空间的限制,缺点是整个过程稍微麻烦一点,还必须要有不错的上传带宽,不过造访人数不多时,家用的ADSL也够用了。虽然在自己的计算机上架设Wiki存在缺点,但是自由度相对也比较大,这里,笔者就教你如何在十分钟内在你的计算机上架设好Wiki。 

   本文将要搭建的LAMP动态Wiki网站是基于Linux的PHP技术的实现方法。LAMP (Linux + Apache + MySQL + PHP) 近几年来发展迅速,已经成为Web 服务器的事实标准。这些组件虽然并不是一开始就设计为一起使用的,但是,这些开源软件都可以很方便地随时获得并免费使用。这就导致了这些组件经常在一起使用。在过去的几年里,这些组件的兼容性不断完善,在一起的应用情形变得非常普便。PHP是一种跨平台的服务器端的嵌入式脚本语言,它大量地借鉴C、Java和Perl语言的语法,并加入了PHP自己的特性,使Web开发者能够快速地写出动态页面。PHP支持所有主流数据库。它是完全免费的,使用时不需要支付任何费用。 

   另外,如果希望在Unix、BSD、Linux平台使用zlib格式则需要安装动态链接函数库zlib。Zlib官方网站为:http://www.gzip.org/zlib/ ,编译时注意使用如下命令行选项:./configure --with-zlib。

CMS软件的选择 

   如果从Web 搜索开放源码内容管理,你将发现大量的站点、系统和项目。特别是 Open Source Content Management OSCOM 这个站点,它是专门针对这个主题的。那么什么是内容管理系统呢?来自 X-infoModeL 的定义是笔者见到的最好的定义之一:“在组织、分类和构造信息资源以便以多种方式存储、发布和重用这些信息资源时涉及的过程和工作流。内容管理系统(CMS)用于收集、管理和发布内容,以组件或完整文档的形式存储内容,同时维护组件之间的链接。它还可以提供内容校正控制。”Mambo,中文意思为曼波音乐(源于古巴黑人音乐),是功能最强大的开放源码的内容管理系统之一。在2004年4月20日伦敦举行的Linux用户和开发员大会上,Mambo从众多优秀的开放源码系统中脱颖而出,获得2004年度最佳Linux开放源码系统奖项,和它同场竞技的有KDE、Firebird SQL以及eGroupware等,Mambo的口号是 Power in Simplicity ( 强大源自简易)。Mambo基于php+mysql技术开发,具有易于安装、管理简单、可靠性高等特点。Mambo可在全球范围内构建各种类型的网站,小到简单的个人网站,大到复杂的公司应用网站,Mambo都可轻松搞定。Mambo是一个内容管理系统,用于发布网站。目前已经加入许多模块,提供包括购物车、横幅广告、自定义地图、聊天和论坛等功能。

搭建Wiki网站

1. Mambo CMS软件下载

#cd var/www/html

#wegt http://mamboforge.net/frs/download.php/4211/mambo452-Global.zip

#unzip mambo452-Global.zip “建立一个目录”

2. Mambo建立数据库

# mysql -u root -p

Enter password: xxxxxxxxx

Your Mysql connection id is 3 to server version: 4.11

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

Mysql> create mambo database ; “为建立数据库”

Query OK, 1 row affected (0.01 sec)

Mysql>grant all mambo privileges on mambo.* to mambo@localhost identified by ‘76543981’;
“将建立的Mambo权限给Mambo账号,并且设定密码”

mysql>exit

3. 测试刚建立的数据库与账号是否可以使用

# mysql -u -p

Enter password: xxxxxxxxx

Your Mysql connection id is 3 to server version: 4.11 ……

Mysql> connect mambo;

Connection id: 5

Current database:

mysql>show databases;

+--------------+

| Database |

+--------------+

| mysql |

| mambo |

+--------------+

2 rows in set (0.00 sec)

mysql> quit

4.开始安装Mambo

● 赋予权限

#cd /var/www/html/ #进入到Apache 服务器的确省目录中#

#chmod 777 /var/www/html/mambo

   进行网络安装安非常简单,通常需要以下几个步骤:打开Linux的Firefox火狐浏览器在地址栏直接输入:http://主机名/mambo /installation/index.php 后,出现安装前准备工作界面,选择语言选项为绿色后选择同意,然后点击“下一步”按钮,见图1。然后是是否接受软件许可协议,选择同意,点击“下一步”按钮。



图1 安装前的检查

● MySQL数据库设定

   需要说明的是:MySQL服务器名称为 localhost ,这个是 MySQL 的服务器名称,不是 Linux服务器名称。通常 MySQL 的服务器名称是:localhost 。MySQL数据库名称为 mambo,MySQL 账号为mambo且密码为上面设定值,数据库表格字首通常是mom_s,见图2。


图2 MySQL数据库设定

● 网站名称设置

这里设置mambo的别名,请根据情况自己设定。

● 其他设定

这里主要设定管理员电子邮件等信息。见图3。



图3 其他设定

以上内容主要包括五个部分:为了读者填写方便笔者把它做成一个列表,如表1所示。

表 参数设置表

● 安全设定

   测试成功后系统会提醒出于安全考虑,删除安装文件(防止他人使用这些文件修改系统信息),并且要记录下admin(系统管理员)口令,见图4。


图4 系统信息设定成功

# rm -rf /var/www/html/mambo/iinstallation/


5.CMS的常规设置

以系统管理员的身份登录,登录后对话框下边会出现“mambo的管理员控制面板”(见图5)。



图5 管理员控制面板

博客的论坛管理员控制面板,一共十一个大版面:帮助、所有内容管理、静态内容管理、首页管理、单元管理、分类管理、媒体管理、菜单管理、用户管理、回收站管理、全局配置。控制模板可以控制CMS的所有管理选项,另外在帮助首页的“FAQ”中有200页的常见问题回答。这样就可以轻松管理网站了。

6.安装Wiki模块

Mambo提供了一个Wiki模块:Media Wiki。官方网站是:http://www.lyquidity.com/mambo/ 。首先下载两个文件:mod_Wikigotopage.zip和com_mamboWiki-0-9-4.zip

#wegt http://mamboforge.net/frs/download.php/7412/mod_Wikigotopage.zip

#wegt http://mamboforge.net/frs/download.php/7144/com_mamboWiki-0-9-4.zip

然后分别安装这两个模块,图6是com_mamboWiki安装成功的界面。



图6 mambo 的Wiki插件安装成功

Wiki插件安装后就可以发布了,就可以看到编辑工作界面,见图7。



图7 Wiki编辑工作界面

mambo CMS在opensourcecms的全球CMS排名中位于第十位(链接:http://www.opensourcecms.com/index.php?option=content&task=view&id=388&Itemid=143 ),这里我们选择它和Wiki插件构建Wiki网站主要是看到它对中文的良好支持。Wiki可以说是一种建站的工具,它为了让更多人参与建设,使用了比HTML容易得多的简化语法来替代复杂的 HTML语法。加上 Web 界面的编辑工具,极大地降低了站点内容维护的门槛。Wiki最适合做百科全书、知识库等整理某一个领域的知识的知识型站点,身处地球不同地区的人可以利用Wiki协同工作写一本书。要知道除了你外,你所在社区的力量是非常惊人的。Wiki与Blog有太多相似之处,也有许多不尽相同的地方。它们两者都降低了超文本写作和发布的难度,都与内容管理系统关系紧密。但它们又有一些本质上的不同。Blog发散性和随意性太强,主题思想没有Wiki那么专一浓厚。Blog注重的是个人的思想,个性化是Blog的最重要特色。Wiki则不同,相对Blog的个人作者,Wiki的作者是群体。Wiki支持的站点一般都有一个严格的共同关注和维护的主题,更新Wiki站点的内容时要求要与主题保持高度的相关性,任何参与进来的写作者都不能跑题和偏题。Wiki的协作是针对同一主题作外延上和内涵上的延伸,将同一个问题探讨阐述解释得很充分很深入,让你在深度和广度上充分深刻地认识它。个性化在这里不是最重要的,信息的完整性和充分性以及权威性才是真正的目标。Wiki使用最多也最合适的就是去共同进行文档、文章或书籍的写作,特别是技术相关的(尤以程序开发相关的)FAQ。

安全策略

1. 合理设置管理员权限

Mambo CMS的系统管理员具有最大的权限,而该权限可能会与其他的板主权限相冲突而造成不可预期的错误,所以最好不要让系统管理员当版主。另外用root权限运行MySQL也不太安全,这里推荐使用其他用户运行MySQL。方法是:

# mysql -u root -p

Enter password:xxxxxxxxx

………

mysql>update user set user="cao" where user="root";

mysql> flush privileges;

mysql>quit

以后就得通过cao账号访问MySQL数据库了。

2. 关闭MySQL远程连接

首先,应该关闭3306端口,这是MySQL的默认监听端口。由于此处MySQL只服务于本地脚本,所以不需要远程连接。尽管MySQL内建的安全机制很严格,但监听一个TCP端口仍然是危险的行为,因为如果MySQL程序本身有问题,那么未授权的访问完全可以绕过MySQL的内建安全机制。关闭网络监听的方法很简单,在mysql/etc/my.cnf文件中的[mysqld]部分,去掉#skip-networking前面的“#”即可。另外要尽量养成在MySQL下输入密码的习惯,因为Shell下面输入的时候可能会被其他人看见。

3. 禁止MySQL导入本地文件

禁止MySQL中用“LOAD DATA LOCAL INFILE”命令。这个命令会利用MySQL把本地文件读到数据库中,然后用户就可以非法获取敏感信息了。为了禁止上述命令,在/chroot/mysql/etc/my.cnf文件的[mysqld]部分加入下面语句:

set-variable=local-infile=0

为了管理方便,一般在系统中的MySQL管理命令如mysql、mysqladmin、mysqldump等,使用的都是系统的/etc/my.cnf文件。

4. 让mambo(Wiki)服务器在监牢中运行

所谓“监牢”就是指通过chroot机制来更改某个软件运行时所能看到的根目录,即将某软件运行限制在指定目录中,保证该软件只能对该目录及其子目录的文件有所动作,从而保证整个服务器的安全。这样即使出现被破坏或入侵,所受的损伤也较小。将软件chroot化的一个问题是该软件运行时需要的所有程序、配置文件和库文件都必须事先安装到chroot目录中,通常称这个目录为chroot jail(chroot“监牢”)。手工完成这一工作是非常麻烦的,此时可以用jail软件包来帮助简化chroot“监牢”建立的过程。Jail官方网站是:http://www.jmcresearch.com/ ,最新版本是1.9a。jail软件包提供了几个Perl脚本作为其核心命令,包括mkjailenv、addjailuser和addjailsw。mkjailenv:创建chroot“监牢”目录,并且从真实文件系统中拷贝基本的软件环境。addjailsw:从真实文件系统中拷贝二进制可执行文件及其相关的其它文件(包括库文件、辅助性文件和设备文件)到该“监牢”中。addjailuser:创建新的chroot“监牢”用户。

5.PHP配置文件的安全设定

phpinfo和get_cfg_var函数主要用于调试程序是否正常,当LAMP服务器安装结束后应当禁止其使用, 编辑php.ini文件加入一行:

disable_functions = phpinfo,get_cfg_var

这样可以避免泄漏系统服务信息。

6.使用.htaccess文件保护

.htaccess文件是Apache服务器上的一个设置文件。它是一个文本文件,可以使用任何文本编辑器进行编写。. htaccess文件提供了针对目录改变配置的方法,即通过在一个特定的文档目录中放置一个包含一个或多个指令的文件(.htaccess文件),以作用于此目录及其所有子目录。 .htaccess的功能包括设置网页密码、设置发生错误时出现的文件、改变首页的文件名(如index.html)、禁止读取文件名、重新导向文件、加上MIME类别、禁止列目录下的文件等。上传.htaccess文件时,必须使用ASCⅡ模式,并使用chmod命令改变权限为:644(RW_R__R__)。每一个放置.htaccess的目录和其子目录都会被.htaccess影响。例如,在/abc/目录下放置了一个.htaccess文件,那么/abc/和/abc/def/内所有的文件都会被它影响,但/index.html不会被它影响,这一点是很重要的。通过.htaccess来保护CMS网站更为方便和安全。因为它不像利用程序实现密码保护时,有可能通过猜测的方法获取密码。利用.htaccess文件实现密码保护,一般是很难破解的。

到此为止,基于mambo CMS系统上的Wiki网站就建立了,由于mambo CMS功能强大,包含系统信息也比较多,所以,用户必须要了解到这个软件有可能会产生一些安全上的漏洞。建议随时注意官方网站:http://www.mamboserver.com/ ,这里不定期会有一些安全技术公告,可以帮助用户的Wiki使用更加安全。

推广二维码
邮件订阅

如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

重磅专题