Linux中部署Dokuwiki

253 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、简介

dokuwiki是一个开源wiki引擎程序,运行于PHP环境下。无需数据库。DokuWiki 程序小巧而功能强大、灵活,适合中小团队和个人网站知识库的管理。

二、安装步骤

2.1.安装前需要确保以下相依组件是否已经安装(如果未安装依次执行以下命令)

yum install gcc-c++

yum install make

yum install expat-devel

yum install perl

yum install curl-devel

yum install libxml2-devel

yum install libjpeg-devel

yum install libpng-devel

yum install freetype-deve

2.2.由于dokuwiki需要PHP环境,故要先装PHP(注:php版本一定要在5.4以上)

yum list php  //查找可安装php程序包

yum install ***.(如php.x86_64//安装相应php程序包

注:如果安装的是php5.3的版本,可能会出现语法错误

image.png

进入到报错的文件lib/plugins/authplaincas/auth.php中修改语法,按照如图所指。

image.png

2.3.dokuwiki还需要Apache服务,故还需装httpd

#yum list httpd //查找可安装httpd程序包

#yum install ***.(如httpd.x86_64//安装相应httpd程序包

2.4.然后安装dokuwiki,dokuwiki是没有linux和Windows之分,所以安装的时候可以自己下载下再导入虚拟机中,也可以直接执行以下命令

wget -c http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz //下载网站安装压缩包

tar -zvxf dokuwiki-stable.tgz    //解包解压缩

cp -r dokuwiki-2017-02-19e /var/www/html/wiki  //复制解压的网站源码文件到网站根目录

(注意:上面下载为默认最新版,安装的时候需要注意dokuwiki-2017-02-19e为解压后dokuwiki的名称)

2.5.更改httpd.conf

vi /etc/httpd/conf/httpd.conf

将DocumentRoot目录更改到第4步中的dokuwiki路径下 默认为/var/www/html

下面配置作用是对URL进行过滤以保证数据安全

<LocationMatch "/wiki/(data|conf|bin|inc)/">

    Order allow,deny

    Deny from all

    Satisfy all

</LocationMatch>

image.png

由于我在第4步中,在/var/www/html下建了一个wiki目录,所以在DocumentRoot目录中我改为DocumentRoot "/var/www/html/wiki"

2.6.修改权限

根据httpd.conf 中下述两个配置值进行修改

User apache

Group apache

权限不修改会导致下面的访问页面报错

chown -R apache.apache /var/www/html/wiki   //将文件所有者由root用户改为apache用户 

2.7.调整Apache mime设定,让Apache 可以支援 PHP (/etc/mime.types ) ,在配置中加入

application/x-httpd-php                         php php4 phtml

application/x-httpd-php-source                  phps

2.8.重启 Apache (service httpd restart)或者(/bin/systemctl restart  httpd.service),连接到 Wiki 下的目录执行 install.php 进行安装设定(http://IP或者域名/install.php)如出现以下红框内提示说明数据不安全,需返回步骤5进行URL过滤配置。

image.png

然后就开始安装dokuwiki。

2.9.由于公司需要进行cas登录验证(个人无此需求可以跳过),dokuwiki自己有对应的cas登录验证插件,故直接安装一个dokuwiki插件即可。经过调研authplaincas比较好用,在dokuwiki中,点管理然后点击扩展管理器,进入插件安装列表

image.png

安装插件的时候,可以直接在下面进行搜索并安装,也可以在官网下载插件放入dokuwiki的/var/www/html/wiki/lib/plugins目录下

image.png 插件安装完成后需要进行配置。

首先,这个插件需要一个phpCAS库,所以需要先下载wiki.jasig.org/display/CAS…,将下载下的phpcas放到/var/www/html/wiki/lib/plugins/authplaincas/下,并重命名为phpCAS,然后到www.dokuwiki.org/auth:cas  下载dokuwiki_inc.zip解压到/var/www/html/wiki/inc目录下。

然后再打开管理,配置设置,对插件进行最后的配置

image.png

先在在认证设置中,选择插件名称authplaincas

image.png

然后在插件设置中,点击authplaincas进入插件配置

image.png

踩坑1:

初次访问可能会出现以下错误:

解决httpd: Could not reliably determine the server's fully qualified domain name

解决方法

用记事本打开 httpd.conf(/etc/httpd/conf/httpd.conf)

将里面的 #ServerName localhost:80 注释去掉即可。

踩坑2:

PhpCAS在此会默认为https请求,而我们的为http,所以需要自己再phpCAS/CAS/Client.php(313行)中,在function _getServerBaseURL()函数中把https改为http

image.png

踩坑3:

如果出现了找不到class“phpCAS”的错误

image.png

image.png

解决方法

 在lib/plugins/authplaincas/phpCAS中,将CAS的相对路径修改为绝对路径,如图中框定所示

image.png

踩坑4:

点击登录后会提示 PHP Fatal error: Class 'DOMDocument' not found in /var/www/html/wiki/lib/plugins/authplaincas

解决方法

执行以下命令

yum -y install php-xml

然后重启服务

/bin/systemctl restart httpd.service

未完待续。。。。