运维人员按区域组织,人员分散,集中培训成本比较高; 新入职运维人员除了培训手册,没有其它渠道可以持续深入了解公司产品; 运维人员的知识存在各自脑袋里,缺少有效的渠道来传播和分享; 运维知识体系需要积累,形成公司资产; 选择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. myeclipse中的web项目导入到eclipse中注意事项,项目部署到tomcat后无法访问jsp文件

    打开eclipse,点击空白处,右键可以看到import>general>existing projects into workspace>next>选择你的myeclipse ...

  2. 内存映射文件mmap

    1.  mmap mmap可以把磁盘文件的一部分直接映射到内存,这样文件中的位置直接就有对应的内存地址,对文件的读写可以直接用指针而不需要read/write函数.使用内存映像文件的另一个优点是可以共 ...

  3. WPF程序只运行一个实例

    1.WPF程序在 启动窗口的构造函数执行InitializeComponent之前判断是否已经存在实例 不涉及服务器情况,可直接进行判断(不在mainwindow的构造函数中判断) // public ...

  4. UIControl事件

    1.UIControlEventTouchDown 单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候. 2.UIControlEventTouchDownRepeat 多点触摸按下事件,点触计 ...

  5. Hadoop学习(4)-- MapReduce

    MapReduce是一种用于大规模数据集的并行计算编程模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题.其主要思想Map(映射)和Reduce(规约)都是从函数是编程语言中借鉴而来的 ...

  6. 基于jdk proxy的动态代理模式

    代理模式 是spring AOP机制的实现基础,有必要学习一下. 有两种,一种是目标类有接口的, 采用JDK动态代理,一种是目标类没接口的,采用CGLIB动态代理. 先看一组代码, package c ...

  7. 王家林 大数据Spark超经典视频链接全集[转]

    压缩过的大数据Spark蘑菇云行动前置课程视频百度云分享链接 链接:http://pan.baidu.com/s/1cFqjQu SCALA专辑 Scala深入浅出经典视频 链接:http://pan ...

  8. Spring的2个思想

    IOC:控制反转 反转:获取依赖对象的方式被反转了 控制反转是关于一个对象如何获取他所依赖的对象的引用,反转是指责任的反转. (1)对象实例化问题(Spring完成) 传统的依赖方式:程序员实例化 ( ...

  9. Android深入浅出之Binder机制

    一说明 Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的.所以搞明白Binder的话,在很大程度上就能理解程序运行 ...

  10. ls -l 列表信息详解

    我们平时用ls -l 命令查看一个目录下的文件和子目录的详悉信息时,会得到一个详细的文件和目录名列表.这个列表包含了文件的属性,所属用户,所属组,创建时间,文件大小等等信息.这些信息到底是什么意思呢? ...