相似gitbook的wiki選擇

一直以來,都使用xwiki做爲團隊內部的文檔管理工具,但一直想換一個比較輕量級的系統。團隊成員廣泛對gitbook風格有好感,因而前後試用了mdwiki、dokuwiki、hexo、mindoc、wikitten。php

mdwiki:純粹用AJAX寫的,部署最簡單,可是目錄只能兩級;css

dokuwiki:PHP寫的,沒有數據庫,有很多插件。一直在這個和wikitten中猶豫,最後仍是選擇了wikitten,主要仍是界面風格,wikitten比較簡潔;html

hexo:採用node.js開發的,也是由於這個才知道wikitten。由於服務器上已經有PHP的環境了,不想再增長node.js,因此放棄了,不然是很好的選擇;node

mindoc:golang開發的,這個其實也不錯,但我只要一本書,他卻提供了一個書櫃;nginx

wikitten:PHP寫的,沒有數據庫,沒有插件,文檔也少。但界面一眼看中了,就這樣了。git

到github下載,解壓。網上說PHP須要fileinfo組件,其實還須要json組件,這個須要注意了。因爲我使用nginx,而且無法安裝到站點根目錄下,因此一直有問題。github

location ~* ^/static/(css|js|img|fonts)/.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt|swf|pdf|txt|bmp|eot|svg|ttf|woff|woff2)$ {
    access_log off;
    expires max;
}
location /wiki/ {
    rewrite ^(.*)$ /wiki/index.php last;
}

主要是location /wiki/ 這段,若是沒有,頁面解析正常,但左側tree的連接不正常,由於僞靜態的緣由,能夠理解。但若是加上這一段,則頁面解析不正常了,主要是static這個目錄訪問不到了。對PHP不怎麼熟悉,而且還能夠用php -S 0.0.0.0:8000 route.php執行,在nginx裏配置一個proxy_pass就好,因此也就懶得折騰了,用這種方式來作吧。golang

補記:數據庫

通過調試比對apache下的配置,發現問題出在apache有這麼一句:apache

RewriteCond %{THE_REQUEST} !^GET\ /.*?static/(css|js|img)

通過在https://segmentfault.com/q/1010000014633581討教,終於知道了緣由:

!^GET\ /.*?static/(css|js|img)表示排除/static/(css|js|img)這些路徑的請求
nginx沒有對應的排除的方法
能夠用變通的方法
先給location /一個try_files,而後優先匹配/static/(css|js|img),匹配到的不配置try_files

location / {
    try_files $uri $uri/ /index.php;
}

location ~* ^/.*static/(css|js|img)/ {
    expires 1d;
}

參考以上的內容修改

location / {
            root   /usr/local/www/nginx;
            index  index.html index.htm index.php;
            # Wikitten
            try_files $uri $uri/ /wiki/index.php;
        }


location ~* ^/static/(css|js|img|fonts)/.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt|swf|pdf|txt|bmp|eot|svg|ttf|woff|woff2)$ {
    access_log off;
    expires max;
}

完美的解決了問題。

其它注意要點:

若是APP_NAME要用中文,那麼config.php必定要轉成UTF8保存,不然無法正常顯示。

<?php
// Example configuration file for Wikitten. To use it,
// first rename it to `config.php`.

// Custom name for your wiki:
define('APP_NAME', '這裏用中文');

// Set the filename of the automatic homepage here
define('DEFAULT_FILE', 'index.md');

// Custom path to your wiki's library:
// define('LIBRARY', '/path/to/wiki/library');

// Enable editing files through the interface?
// NOTE: There's currently no authentication built into Wikitten, controlling
// who does what is your responsibility.
// define('ENABLE_EDITING', true);

// Enable JSON page data?
// define('USE_PAGE_METADATA', true);

// Enable the dark theme here
// define('USE_DARK_THEME', true);

// Disable the Wikitten logo here
define('USE_WIKITTEN_LOGO', false);

// Enable PasteBin plugin ?
// define('ENABLE_PASTEBIN', true);
// define('PASTEBIN_API_KEY', '');
相關文章
相關標籤/搜索