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

    Winforms-GePlugin-Control-library http://download.csdn.net/download/xm379303813/4247029

  2. SO_REUSEADDR

    问题:Linux的服务器程序,关闭后马上启动,经常报错,说是端口已经被占用,不过稍等一会儿就可以启动了. 原来我们在调用closesocket把已绑定端口的socket关闭时,这个socket并没有立 ...

  3. 【转】Tomcat7启动的总过程 (有时间自己写下tomcat8的)

    首先,说明tomcat8和tomcat7的启动过程不一样,这篇是针对tomcat7的. Tomcat启动的总过程 通过上面的介绍,我们总体上清楚了各个组件的生命周期的各个阶段具体都是如何运作的.接下来 ...

  4. mysql 插入重复值 INSERT ... ON DUPLICATE KEY UPDATE

    向数据库插入记录时,有时会有这种需求,当符合某种条件的数据存在时,去修改它,不存在时,则新增,也就是saveOrUpdate操作.这种控制可以放在业务层,也可以放在数据库层,大多数数据库都支持这种需求 ...

  5. M面经prepare: Shuffle a deck

    设计一个shuffle card 用了java. Random Class package Random; import java.util.*; public class Solution { st ...

  6. 树形DP(Holiday's Accommodation HDU4118)

    题意:有n间房子,之间有n-1条道路连接,每个房间里住着一个人,这n个人都想到其他房间居住,并且每个房间不能有两个人,问所有人的路径之和最大是多少? 分析:对于每条边来说,经过改边的人由该边两端元素个 ...

  7. Java SE series:1. environment configure and Hello world! [We use compiler and packager to create an application!]

    1. cli (command line interface) and gui (graphic user interface) use javahome path, search classpath ...

  8. POJ 2947 Widget Factory(高斯消元)

    Description The widget factory produces several different kinds of widgets. Each widget is carefully ...

  9. java中创建线程的几种方法及区别

    1,实现Runnable接口创建线程 特点: A:将代码和数据分开,形成清晰的模型 B:线程体run()方法所在的类可以从其它类中继承一些有用的属性和方法 C:有利于保持程序风格的一致性 2,继承Th ...

  10. 12.了解或熟悉 C, C++, .NET

    挂起,暂不了解,不过C++略懂,.net虽不懂但是做过实际项目,有能力担当