运维人员按区域组织,人员分散,集中培训成本比较高; 新入职运维人员除了培训手册,没有其它渠道可以持续深入了解公司产品; 运维人员的知识存在各自脑袋里,缺少有效的渠道来传播和分享; 运维知识体系需要积累,形成公司资产; 选择Wiki系统

最初公司遇到的问题是运维人员经常向研发人员或者上级领导咨询重复回答无数次的问题。我在接手这个需求时,首先想到的是百科系统,类似百度知道。设想是运维人员遇到问题,将问题描述写出来,由其它能解决问题的人(研发或者经验丰富的运维人员)来回答。在这个阶段,我查找了多个百科系统,并尝试安装试用。试用过程中,发现对需求的理解似乎有很大的偏差。运维人员需要的应当是一个运维手册,像汽车那种维修手册一样。百科系统没有严格的目录组织结构,并不适合查阅。Wiki系统比文档系统或百科系统更合适。我找了多个Wiki系统,并做了一番对比:

HDWiki 互动百科

这个是国产的Wiki,宣传做得好,很多文章都推荐他们。但我进入他们官网浏览几个案例后,发现功能复杂花哨,因此直接不予考虑。

MediaWiki

知名大牌Wiki系统。功能很丰富,安装也比较简单,需要数据库服务支持。我不希望Wiki服务跟现在的服务混合在一起。当前服务器环境的mysql数据库已作它用,备份比较稳定,不希望Wiki这个额外的服务插入。

DokuWiki

也是知名Wiki系统,而且是绿色安装。不需要数据库支持是我选择它的主要原因。

安装Nginx

这是凑字数的段落。我维护的服务器上运行好几个服务,Nginx不需要安装。

sudo apt-get install nginx

php环境

讲真,作为个Javaer,PHP这种宇宙第一语言接触不多。

安装PHP:

sudo apt-get install php5-fpm

虽然据说现在都PHP7了,但我并不想浪费时间在PHP新版本可能出现的各个坑上。

PHP我知道,PHP5-FPM是个什么东西还真不知道。万能的Google会给我答案:PHP-FPM 的FPM是 FastCGI Process Manager的缩写,用于管理PHP-CGI的。

配置PHP参数

网上查阅其它教程,有介绍到修改/etc/php5/fmp/php.ini的设置,可以增加安全性。在Nginx的默认PHP配置部分也提到修改这个参数。

sudo vim /etc/php5/fmp/php.ini

修改 fix_pathinfo 的值为0

cgi.fix_pathinfo=0

新安装的PHP5-FPM,需要反注释这行代码,并修改值为 0

Nginx增加PHP支持

将 /etc/nginx/site-avaliable/default 文件拷贝为 /etc/nginx/site-avaliable/dokuwiki 。

将内容修改为:

server { listen 9002 default_server; listen [::]:9002 default_server ipv6only=on; root /var/www/dokuwiki; index index.php index.html; server_name localhost; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } location ~ \.php$ { fastcgi_split_path_info^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

修改的条目包括:

端口号 根目录位置 PHP配置

重启nginx就完成PHP环境的配置。

添加一个测试文件 phptest.php :

<%php phpinfo(); ?>

保存到 /var/www/dokuwiki 目录下,在浏览器中打开 http://localhost:9002/phptest.php ,看到PHP信息则说明PHP环境配置成功。

将DokuWiki安装到目录中,其它完成配置。

DokuWiki

DokuWiki是一个小型的Wiki系统,采用文本储存,所有数据都保存到安装目录下的data文件夹中。

目录结构 bin/ DokuWiki的核心代码 conf/ 配置目录 data/ 数据目录 inc/ lib/ vendor/ doku.php index.php install.php data/ 数据目录

数据目录中的 data/pages 是保存所有Wiki文档的目录,DokuWiki会以txt文本的形式将数据储存到此目录中。

conf/ 配置目录

配置目录中的 conf/acl.auth.php 是访问控制的配置文件,哪个组可访问哪些文档,哪个用户不能访问哪些文档等都由此文件控制。

配置目录中的 conf/local.php 是网站的配置文件,包括网站名字、主题、语言等配置。

身为运维工程师怎么用Nginx部署DokuWiki的更多相关文章

  1. Linux运维工程师成长必经之路

    本路线图是从0基础开始,全方位由浅入深,按照多年Linux培训经验和优秀教学方法制定的学习思路和学习方法,路线图包括初级入门.中级进阶.高级提升和资深冲刺四个阶段,每阶段对应着不同优秀的课程和学习方法 ...

  2. linux运维工程师面试题收集

    面试必考 mysql5和mysql6 有什么区别 mysql-server-5.5:默认引擎改为Innodb,提高了性能和扩展性,提高实用性(中继日志自动恢复) mysql-server-5.6:In ...

  3. Linux运维工程师必学必备的8项IT技能

    如果你在学习Linux,那么强烈推荐你选择RHEL和Centos作为学习的Linux发行版本,在公司及企业当中他们是使用最多的,毕竟学习除了本身是爱好,其次也是为了就业.Centos是RHEL的克隆版 ...

  4. 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路

    做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...

  5. 要成为linux网站运维工程师必须要掌握的技能

    要成为linux网站运维工程师必须要掌握的技能 2015-07-27 发表 老男孩点评:感谢此文的作者,写的非常到位,值得入门的初学者认真看看 我是一名linux运维工程师,确切的说是网站运维工程师, ...

  6. linux运维工程师成长过程

    原文地址:https://blog.csdn.net/kwame211/article/details/78059331 初级篇 linux运维人员常用工具拓扑详见: 1rsync工具 很多地方经常会 ...

  7. 详解Linux运维工程师

    运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感知前方潮流变化.如:今年大数据,人工智能比较火……(相对表示就是 Python 比较火) 之前写过运维 ...

  8. Linux运维工程师是什么鬼?

    第一部分:定义 运维工程师,字面理解运行维护. linux运维即linux运维工程师,集合网络.系统.数据库.开发.安全工作于一身的“复合性人才”.   除了传统IT运维部分,运维人员还是管理制度.规 ...

  9. 运维是做什么的?史上最全互联网Linux工作规划!十分钟找到linux运维工程师职业方向!

    首先祝贺你选择学习Linux,你可能即将踏上Linux的工作之旅,出发之前,让我带你来看一看关于Linux和Linux运维的一切. Linux因其高效率.易于裁剪.应用广等优势,成为了当今中高端服务器 ...

随机推荐

  1. lib3ds类库

    lib3ds类库 /* * The 3D Studio File Format Library * Copyright (C) 1996-2007 by Jan Eric Kyprianidis &l ...

  2. Java- 基本封装

    package test.studet_manager; public class Student { static int num = 100; // 编号-->唯一的 private int ...

  3. Xcode 6.x 添加Empty Application模板

    Xcode 6.x 添加Empty Application模板 在Apple最新的XCode6.x中没有了Empty Application模板,这对一个老人来说是不能别接受的,同时也可以看出Appl ...

  4. "provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接"错误的解决方法

    这个错误主要有以下几个原因造成: 1. 错误的连接字符串:例如数据源的实例名称“\"错误写成"/"了 2.Named Pipes(NP)没有启动 其他原因,详见:http ...

  5. configure: error: C++ compiler cannot create executables

    今天装虚拟机LNMP环境 安装报错:configure: error: C++ compiler cannot create executables 这是因为 gcc 组件不完整,执行安装 yum i ...

  6. snapshot standby database

    快照备库接收和归档主库发送来的redo,但是不会应用:切换成physical standby之后会自动开启redo apply.快照standby不可以参加主备切换:在最大保护性模式下,如果只有一个备 ...

  7. [翻译] java NIO 教程---介绍

    原文地址:http://tutorials.jenkov.com/java-nio/index.html Java NIO(new IO)是从java1.4之后的对IO API的另一种选择,即对标准j ...

  8. bash 截取字符串

    转载自http://blog.chinaunix.net/uid-1757778-id-3162034.html 命令的2种替换形式 $()和 ``示例:截断字符串    a):    #截取文件名称 ...

  9. HTML语言的一些元素(一)

    1)标题的六个等级:<h1>,<h2>,<h3>,<h4>,<h5>,<h6>.如果写了诸如:<h7>等,则作为正文 ...

  10. PostgreSQL9.2.4内核源码结构介绍

    PostgreSQL的源代码可以随意获得,其开源协议也允许研究者任意修改,这里介绍一下PostgreSQL的源码结构以及部分实现机制.下载PostgreSQL源代码并减压后,其一级目录结构如下图: P ...