centos6.8搭建dokuwki

使用dokuwiki知识库

由于项目开发正规化和流程化的需要,使用dokuwiki构建团队的知识库,用于存放项目管理、开发、运维要点以及一些探索性的技术知识总结。以下是关于如何在centos6.8上安装dokuwiki的详细介绍,包括安装支持php7的apache服务器,部署dokuwiki以及控制网络访问安全。

安装php7环境

yum

已经安装yum的话,直接跳过。若在安装php7的过程中,遇到Error: xz compression not available,那么照此重装python和yum。

升级yum仓

yum install epel-release
yum update

安装依赖库

yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel readline readline-devel libxslt libxslt-devel
yum -y install httpd httpd-devel
# 安装libmcrypt
wget http://www.atomicorp.com/installers/atomic
sh ./atomic
yum install php-mcrypt libmcrypt libmcrypt-devel

下载php7安装包

wget -O php7.tar.gz http://cn2.php.net/get/php-7.1.1.tar.gz/from/this/mirror

安装

若想使用libphp7.so运行php,须指定–with-apxs2=/path/to/httpd/2.2/bin/apxs进行编译。
否则,得用Apache提供的其他方式运行,比如:
1.使用mod_fcgid配合php-cgi运行(类似IIS + PHP-CGI)
2.使用mod_proxy_fcgi配合php-fpm运行(类似Nginx + PHP-FPM)

tar -zxvf php7.tar.gz
mv php-7.1.1 php
cd php
./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-soap --with-apxs2=/usr/sbin/apxs --with-libxml-dir --with-xmlrpc --with-openssl --with-mcrypt --with-mhash --with-pcre-regex --with-sqlite3 --with-zlib --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --with-libmbfl --with-onig --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib-dir --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable-zip --enable-mysqlnd-compression-support --with-pear --enable-opcache

如果configure抛出以下错误:

Sorry, I cannot run apxs. Possible reasons follow:

  1. Perl is not installed
  2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs
  3. Apache was not built using --enable-so (the apxs usage page is displayed)

The output of /usr/sbin/apxs follows: ./configure: line 6187:
/usr/sbin/apxs: No such file or directory configure: error: Aborting

根据提示信息,修改–with-apxs2=/path/to/apxs,运行"find / -name apxs"找到apxs的路径修改即可。

make && make install
vim /etc/profile
>> PATH=$PATH:/usr/local/php/bin
>> export PATH
source /etc/profile

查看安装是否成功。

php -v

在这里插入图片描述

httpd

httpd是apache(http server 1.0)升级到2.0后换了个新名字,是被广泛使用的开源web服务器。以下配置以版本2.2为例。

基础配置

更改主配置文件 /etc/httpd/conf/httpd.conf如下:

Listen 80	#监听本机所有IP的80端口
Listen 127.0.0.1:79	#监听localhost的79端口
KeepAlive  On	#打开长连接
DocumentRoot "/var/www/html"	#设置web站点目录

	Options None
	AllowOverride None
	Order allow,deny
	Allow from all

配置支持php7

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.html index.php
LoadModule php7_module modules/libphp7.so

在默认的Web站点目录DocumentRoot /var/www/html下生成探针文件info.php:

service httpd start

在浏览器中输入http://ip:port/info.php,如果出现以下页面则说明httpd已成功支持php7。
centos6.8搭建dokuwki_第1张图片

Dokuwiki

下载dokuwiki包

从https://download.dokuwiki.org/下载dokuwiki-stable.tgz压缩包,解压到/var/www/html。

cd /var/www/hmlt
wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
tar -zxvf dokuwiki-stable.tgz

安装

chown -R apache:root /var/www/html/dokuwiki  
chmod -R 755 /var/www/html/dokuwiki/
find /var/www/html/dokuwiki/ -type d -exec chmod 775 {} \; 

设置权限后,在浏览器中输入http://localhost/dokuwiki/install.php,安装完成后删除install.php。
centos6.8搭建dokuwki_第2张图片

访问安全

dokuiwiki官网建议以下目录禁止从网络直接访问:

  • data
  • conf
  • bin
  • inc(尽管可访问时没有危险)

要检查你是否需要调整访问权限,你可以试着访问http://yourserver.com/data/pages/wiki/dokuwiki.txt。你应该无法以这种方法访问到该文件(https://www.dokuwiki.org/start?id=zh:security)。

否则,在主控制文件中添加以下LocationMatch规则,并重启httpd服务。

 
     order allow,deny
     deny from all
     satisfy all
 

解决本地文件名称中文乱码问题

找到inc目录下的pageutils.php,修改两个函数utf8_encode()和utf8_decode()。

vi inc/pageutils.php
 /function utf8_encode
 注释以下两行:
 $file = urlencode($file);
 $file = str_replace('%2F','/',$file);
 /function utf8_decode
 将最后行return urldecode($file);替换成
 return $file;

你可能感兴趣的:(Centos)