知識庫平臺選擇javascript
http://www.oschina.net/project/tag/320/pkmphp
最近接到一個任務,要求搭建一個用於部門內部業務知識規範管理和共享的平臺,目的是把部門內的FAQ知識規範化,保持版本統一。css
需求以下:html
可以在線編輯資料並設置格式,頁面上可以插入和顯示截圖。java
可以插入表格,而且最好能顯示顏色和邊框。mysql
能上傳和下載附件。linux
並可以給每一個人設置只讀或修改等不一樣的權限。nginx
在知足以上要求的前提下,儘可能讓界面操做簡單,結構清晰明瞭。web
鄙人前後在本身的虛擬機上搭建並測試了HDwiki、JSPwiki 都不是太理想。後來發現knowledgeroot能夠實現我上面的需求,並且界面比較簡單。因而就用它搭建了個人知識庫平臺。下面把我利用knowledgeroot搭建內部知識庫的步驟分享給你們。因爲這個知識庫只是供部門內部使用,服務器不能連外網,因此搭建在內網環境裏。ajax
實施:
1、搭建內網本地的yum源,爲安裝lnmp環境作準備。見此文。centos6.4利用iso文件搭建本地yum源
二、部署lnmp環境:linux+nginx+mysql+php環境,這一步本文先不闡述。你們能夠參考網上的一些方法。
3、部署knowledgeroot站點程序。
1、下載knowledgeroot-1.0.4程序。
去該網址http://www.knowledgeroot.org/下載最新的安裝包:knowledgeroot-1.0.4.tar.gz
同時在下面的頁面中下載ckeditor這個編輯器插件ckeditor_3.6.2.krx,用來替換knowledgeroot自帶的編輯器,該編輯器比自帶的編輯器要強大一些,功能更多一下,關於ckeditor的詳細介紹,請看Web 編輯器CKEditor 介紹。
2、將下載來的knowledgeroot-1.0.4.tar.gz上傳並解壓到服務器的web站點根目錄下。
往linux上傳文件你們都會的,我這裏使用rz工具上傳,可我服務器上沒法使用rz命令,是由於沒有安裝rz命令相關的軟件包。那就加一個小插曲,把rz工具安裝上。(會上傳文件以及使用其餘工具上傳的朋友略過。)
a、查看rz命令屬於哪一個軟件包。
[root@centos6~]# yum provides */rz
Loadedplugins: fastestmirror, security
Loadingmirror speeds from cached hostfile
lrzsz-0.12.20-27.1.el6.x86_64: The lrz and lsz modem communications programs
Repo : c6-media
Matchedfrom:
Filename : /usr/bin/rz
b、安裝lrzsz-0.12.20-27.1.el6.x86_64工具包。
[root@centos6~]# yum install lrzsz -y
安裝完成。
此時就能夠在遠程的終端裏輸入rz命令,系統會自動彈出選擇上傳文件的選擇框,找到本地電腦上的文件,肯定後就能夠傳到當前目錄。
解壓文件:
[root@centos6~]# tar zxvf knowledgeroot-1.0.4.tar.gz
tar:它彷佛不像是一個 tar 歸檔文件
tar:跳轉到下一個頭
tar:因爲前次錯誤,將以上次的錯誤狀態退出
這裏出錯了,系統認爲該文件不是tar壓縮包,有點奇怪,那咱們看看他究竟是什麼文件。
[root@centos6~]# file knowledgeroot-1.0.4.tar.gz
knowledgeroot-1.0.4.tar.gz:gzip compressed data, from Unix
原來他是gzip的壓縮文件,ok,那咱們用gzip來解壓縮。
[root@centos6~]# gzip -d knowledgeroot-1.0.4.tar.gz
[root@centos6~]# ll
總用量13900
-rw-r--r-- 1 root root 1986919 11月 2 01:06ckfinder_php_2.4.zip
-rw-r--r-- 1 root root 11080018 11月 2 02:33 knowledgeroot-1.0.4.tar
此時發現原來的knowledgeroot-1.0.4.tar.gz 已經變成knowledgeroot-1.0.4.tar文件了,接着再用tar來解壓,就順利成章的獲得壓縮包裏的文件了。
[root@centos6~]# tar xvf knowledgeroot-1.0.4.tar
[root@centos6 ~]# mv knowledgeroot-1.0.4/data/htdocs/www/ ###將解壓後的目錄移動到服務器的web站點的根目錄下,個人web站點根目錄是/data/htdocs/www/
3、配置虛擬主機站點。
咱們確認下站點的目錄。須要把這個路徑配置到nginx的配置文件中。
[root@centos6www]# ls /data/htdocs/www/knowledgeroot-1.0.4/
admin cache content.php doc extension icon.php images index.php lib print.php update.php
ajax-xml.php config debug.php dumps favicon.ico icons include install.php move.php system uploads
[root@centos6www]# vi /usr/local/webserver/nginx/conf/nginx.conf
添加下面一部分信息:
server
{
listen80;
server_namewww.ycitzsk.com 192.168.0.109;
indexindex.html index.htm index.php;
root/data/htdocs/www;
location~ .*\.(php|php5)?$
{
#fastcgi_passunix:/tmp/php-cgi.sock;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
includefcgi.conf;
}
location~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires30d;
}
location~ .*\.(js|css)?$
{
expires1h;
}
log_formatwwwlogs '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" $http_x_forwarded_for';
access_log/data/logs/wwwlogs.log wwwlogs;
}
修改完成測試一下nginx配置文件是否有語法錯誤:
[root@centos6www]# /usr/local/webserver/nginx/sbin/nginx -t
theconfiguration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
configurationfile /usr/local/webserver/nginx/conf/nginx.conf test is successful
測試ok,從新加載配置:
[root@centos6www]# /usr/local/webserver/nginx/sbin/nginx -s reload
[root@centos6 www]# cd/data/htdocs/www/knowledgeroot-1.0.4
[root@centos6knowledgeroot-1.0.4]# chmod -R 777 admin/
[root@centos6knowledgeroot-1.0.4]# chmod -R 777 config
[root@centos6knowledgeroot-1.0.4]# chmod -R 777 cache
4、開始安裝knowledgeroot:
在瀏覽器中輸入服務器的ip或域名及路徑,好比http://192.168.0.109/knowledgeroot-1.0.4/install.php回車就會出現安裝界面,以下,填寫相關信息。
輸入完信息後點擊最下面的「start intallation」完成安裝。
這裏若是報錯諸如「Could not connect to database! " 請檢測數據庫用戶名和密碼是否正確,能夠先在服務器上用你的mysql賬號和密碼測試一下是否可以連接。檢測賬號的受權信息等。
若是報錯跟config目錄權限有關,請檢查admin和config目錄的權限是否已經設置爲了777.
若是權限什麼的都正常,就會返回下面的安裝成功的信息。並提示刪除install.php和update.php,
點擊最下面的「Link Backend: Backend」就能夠跳轉到後臺管理頁面。以下:
(注意這裏若是報錯cache沒有寫入權限的話,請給cache目錄設置權限爲777),刷新就能夠出現登陸界面了。
輸入用戶名和密碼admin 登陸到後臺界面:在這個頁面能夠查看和修改配置信息,也能夠導入插件,添加賬號。
從新打開瀏覽器輸入ip或域名加路徑,登陸到前臺頁面:以下:
可使用admin登陸進去,點擊roots 就能夠建立一級頁面,並能夠設置權限,設置是否繼承權限到子頁面。
選中某個一級頁面,路徑那裏會顯示當前選中的頁面,點擊「增長新頁面」就能夠在該一級頁面下建立二級頁面。
一樣的,選中某一級頁面,點擊「增長新的內容」就能夠打開內容編輯頁面,這裏能夠編輯頁面內容了。
5、個性化配置knowledgeroot。
原來安裝包建立的數據庫默認使用瑞典語,這個很很差看,能夠打開dumps/mysql.sql 文件進行修改,將
ENGINE=MyISAM AUTO_INCREMENT=1
所有替換爲
ENGINE=MyISAM AUTO_INCREMENT=1CHARACTERSET utf8 COLLATE utf8_unicode_ci
用下面的一行命令一次性修改完成:
sed -i 's/ENGINE=MyISAM AUTO_INCREMENT=1/ENGINE=MyISAMAUTO_INCREMENT=1\ CHARACTER SET utf8 COLLATE utf8_unicode_ci/g' dumps/mysql.sql
便可保證全部的表建立爲UTF-8 格式的。
登陸管理後臺:瀏覽器中輸入http://服務器站點ip或域名/admin例如:個人站點是http://192.168.0.109/admin/回車後就會出現登陸界面,輸入初始賬號和密碼都是admin,點擊登陸就會出現下面的界面。
如上圖所示,點擊左側的configure按鈕,右側就會出現當前的配置詳情,能夠根據本身的需求更改相應的配置,雙擊等號下面的參數值就能夠更改。修改後回車即時生效。也能夠在服務器上站點目錄下的config目錄中修改app.ini文件,這個頁面就是調用的該文件。
如下是個人配置文件,應該調試的時候更改了一些參數,我把站點根目錄也改爲了/data/htdocs/wiki/,結果以下:
[root@centos6wiki]# more /data/htdocs/wiki/config/app.ini
[base]
version= "1.0.4"
title = "IT運維知識庫" ##這裏是瀏覽器標籤欄上顯示的標題,根據本身想顯示的標題寫
cryptkey= "yourcryptkeyhere"
base_path= "/data/htdocs/wiki/" ##這裏是網站在服務器上存放的絕對路徑,根據本身實際狀況填寫
base_url= "http://192.168.0.109/" ##這裏是訪問網站的url路徑,根據本身的實際狀況填寫。
charset= "UTF-8" ##這裏是編碼
locale= "zh_CN" ##默認語言
showlogo= "1"
theme= "wordpress"
[admin]
loginhash= "f6fdffe48c908deb0f4c3bd36c032e72"
base_path= "/data/htdocs/wiki/admin/"
[upload]
url_suffix= "upload/"
path= "uploads/"
maxfilesize= "30720000"
[output]
compression= "1"
level= "6"
[db]
adapter= "mysql"
params.host= "127.0.0.1"
params.username= "admin"
params.password = "mysql_password"
params.dbname= "wiki"
encoding= ""
schema= ""
profiler= "1"
pconnect= ""
[session]
handle= "1"
lifetime= "60"
check_browser= "1"
check_ip= "1"
only_cookies= "1"
[login]
delay= "30"
max= "50"
[email]
notification= ""
html= "1"
[cache]
options.caching= ""
options.lifetime= "7200"
options.automatic_serialization= "1"
path= "cache/"
[log]
adapter= "file"
level= "info"
file= "log/knowledgeroot.log"
[translation]
adapter= "gettext"
folder= "system/language/"
[development]
runtime= ""
toolbar= ""
sqldebug= ""
[tree]
expandall= "1"
type= "static"
ajax= "1"
edittooltiptext= "1"
order= ""
showcounter= "1"
defaultlayout= ""
defaultlayoutarray= ""
symlink= "1"
[content]
showtitle= "1"
showtitledetails= "1"
collapsecontent= "1"
statusbar= "1"
autosave= "1"
autosaveevery= "30"
[menu]
context= "1"
dragdrop= "1"
type= "static"
showsourceforgelogo= ""
[misc]
defaultpage= "1"
recursivdelete= "2"
pagealias.use= "1"
pagealias.static= "1"
pagealias.rights= "2"
langdropdown= "0"
download.static= ""
subinheritrightsonmove= ""
showpagebottomnavi= "1"
[javascript]
cdn= ""
cdn_url= "http://ajax.googleapis.com/ajax/libs/dojo/1.6.2/dojo/dojo.xd.js"
cdn_css_base_url= "http://ajax.googleapis.com/ajax/libs/dojo/1.6.2/"
6、安裝歷史版本插件,使其支持歷史版本。
從http://www.knowledgeroot.org/extensions.html網站下載history.krx插件,並在後臺界面import頁面中導入history.krx插件,install的時候會向數據庫中增長一個表,可能會由於mysql版本的問題,致使表格添加失敗,這樣在打開頁面中的歷史版本的時候就會有報錯。若是這樣,就手動在mysql中執行下面的sql語句,(相對與history插件原始的sql建表語句主要就是更換了最後面一行的sql語句)手動建立數據庫表kx_ext_history。這樣歷史版本就沒問題了。
CREATETABLE `kx_ext_history` (
`id` int(11) NOT NULL auto_increment,
`contentid` int(11) NOT NULL,
`version` int(11) NOT NULL,
`title` varchar(255) default NULL,
`content` mediumtext NOT NULL,
`type` varchar(255) NOT NULL default 'text',
`lastupdatedby` int(11) NOT NULL default '0',
`lastupdated` timestamp NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci;
7、將ckeditor整合到knowledgeroot中,替換默認編輯器,並將ckfinder和ckeditor組合起來,實現文件上傳、圖片上傳功能。
參考第三部分的第1步,下載並安裝ckeditor插件,導入ckeditor插件並啓用,替換默認的編輯器。以下圖:
導入成功後點擊「extensions」在右側能夠看到已經導入的插件,點擊install 並enable,就能夠啓用相應的插件。
此時從新登陸前臺頁面,打開增長新內容頁面,就能夠看到編輯器已經替換爲ckeditor了,功能比原來強大了好多。