Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
becki:linux:dokuwiki_tips [2010-03-24 16:36] becki created |
becki:linux:dokuwiki_tips [2016-04-04 12:33] (aktuell) becki |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Dokuwiki Tips == | ====== Dokuwiki Tips == | ||
+ | ===== Updating Dokuwiki == | ||
- | This pages replaces [[becki:my:linux:beckisownwiki]] | + | <note important>Consider the [[https://www.dokuwiki.org/install:upgrade|recommended]] approach which overwrites the old installation instead of the manual here!</note> |
- | + | ||
- | ===== Updating Dokuwiki == | + | |
- | This manual presumes that you saved a copy of the //original// config files with the extension ''.org'' //before// you made any changes! | + | This manual presumes that you saved a copy of the //original// config files with the extension ''.sborg'' //before// you made any changes! |
- | * Download and extract newest version on the server | + | - Download and extract newest Dokuwiki version on the server. Use Stable (direct link, not customized) from http://download.dokuwiki.org |
- | * Find all files with the extension .org or .dist. in the old dokuwiki installation and back up the corresponding original <file> as <file>.org in the new dokuwiki installation | + | - Locate all files with the extension ''.dist'' (eg ''conf/local.php.dist'') in the new dokuwiki installation and copy their counterparts without the ''.dist'' extension (eg ''conf/local.php'') to the new dokuwiki installation.\\ Note that it might be necessary to treat ''.htaccess'' manually! |
- | * In the new dokuwiki installation [[diffupgrade|patch]] <file> with the modifications: ''merge <file> old/<file>.org old/<file>'' | + | - Copy additional Interwiki Shortcut images to ''lib/images/interwiki'' |
- | * Copy additional Interwiki Shortcut images to ''lib/images/interwiki'' | + | - Copy additional smiley images to ''lib/images/smileys'' |
- | * Copy additional smiley images to ''lib/images/smileys'' | + | - ''chmod a-rwx install.php''. Do not run it! |
- | * chmod a-w install.php | + | - Set owner and group of ''newDokuwiki/'' recursively to ''root:root'' |
- | * Set owner and group of ''newDokuwiki/'' recursively to ''root:root'' | + | - Set owner and group of ''newDokuwiki/conf'', ''newDokuwiki/data'' and ''newDokuwiki/lib'' recursively to the ID of your webserver eg. ''apache:apache''. [[doku>install:permissions|Optionally finetune permissinons]] |
- | * Set owner and group of ''newDokuwiki/conf'', ''newDokuwiki/data'' and ''newDokuwiki/lib'' recursively to the ID of your webserver eg. ''apache:apache'' | + | - delete unnecessary language translations with ''bin/striplangs.php'' |
- | * delete unnecessary language translations | + | - Download and install fresh revisions of previously installed additional plugins from the web |
- | * Update additional plugins with new versions from the web | + | - Make a list of all files with the extension ''.sborg'' (eg. ''old/conf/acronyms.conf.sborg'') in the //old// dokuwiki installation. Then go to the //new// dokuwiki installation and copy the corresponding original files to <file>.sborg (eg. ''cp new/conf/acronyms.conf new/conf/acronyms.conf.sborg'') |
- | * copy data: <code bash> | + | - In the //new// dokuwiki installation [[diffupgrade|patch]] <file> with the modifications: ''merge <file> old/<file>.sborg old/<file>''. Do this for all files on the list where the old changes are still really necessary for the new wiki version. |
+ | - copy data: <code bash> | ||
cp -a oldDokuwiki/data/attic/* newDokuwiki/data/attic | cp -a oldDokuwiki/data/attic/* newDokuwiki/data/attic | ||
cp -a oldDokuwiki/data/pages/* newDokuwiki/data/pages | cp -a oldDokuwiki/data/pages/* newDokuwiki/data/pages | ||
Zeile 23: | Zeile 23: | ||
cp -a oldDokuwiki/data/meta/* newDokuwiki/data/meta | cp -a oldDokuwiki/data/meta/* newDokuwiki/data/meta | ||
</code> | </code> | ||
+ | - Restore the content of the namespaces ''wiki'' and ''playground'' from the newDokuwiki | ||
+ | - Update index with ''bin/indexer.php''. See [[doku>cli#indexerphp]] | ||
- | See also [[diffupgrade]] & http://www.dokuwiki.org/install:diffupgrade | + | Note: After update to 2014-09-29d "Hrun" the toolbar icons were missing in the edit page. Try: |
+ | - [[doku>faq:toolbar]] | ||
+ | - Admin -> Configuration Settings -> cssdatauri from 0 to 500. | ||
- | FIXME Move content from [[becki:my:linux:beckisownwiki]] to here! | + | See also [[diffupgrade]] & http://www.dokuwiki.org/install:diffupgrade |
===== Add an Interwiki Shortcut == | ===== Add an Interwiki Shortcut == | ||
Zeile 37: | Zeile 41: | ||
See also http://www.dokuwiki.org/interwiki | See also http://www.dokuwiki.org/interwiki | ||
- | ===== Linebreak Plugin == | + | ===== Enable Linebreaks == |
- | FIXME Still necessary? | + | Install [[doku>plugin:xbr]] plugin and set ''renderer_xhtml'' to ''xbr'' in Configuration Settings |
- | + | ||
- | Just install the [[doku>plugin:linebreak|linebreak plugin]]. No additional config is necessary. | + | |
===== URL Rewriting == | ===== URL Rewriting == | ||
+ | |||
+ | Uncomment | ||
+ | LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so | ||
+ | in ''/etc/apache/httpd.conf'' | ||
Make sure that .htaccess file is respected with | Make sure that .htaccess file is respected with | ||
Zeile 58: | Zeile 64: | ||
</code> | </code> | ||
in ''/etc/apache/httpd.conf'' | in ''/etc/apache/httpd.conf'' | ||
- | |||
Uncomment everything beginning with ''#Rewrite...'' in ''/var/www/htdocs/dokuwiki/.htaccess'', but **not** the line ''#RewriteBase /dokuwiki''. | Uncomment everything beginning with ''#Rewrite...'' in ''/var/www/htdocs/dokuwiki/.htaccess'', but **not** the line ''#RewriteBase /dokuwiki''. | ||
Zeile 66: | Zeile 71: | ||
See also: [[doku>wiki:rewrite]] | See also: [[doku>wiki:rewrite]] | ||
- | ===== monospaced in blue == | + | ===== How the Search Index works == |
+ | |||
+ | This section is just informative for interested people. Indexing works automatically, no configuration has to be done. | ||
+ | |||
+ | The search index is saved in ''dokuwiki/data/index/''. | ||
+ | |||
+ | * The file ''page.idx'' lists the filenames of all indexed files. One file per line. | ||
+ | * w<len>.idx lists all occurring words with a length of <len>. One word per line. Eg. ''w14.idx'' lists all words with a length of 14 caracters. | ||
+ | * i<len>.idx lists how often all words of <len> characters occur in which pages. Pages are addressed by their line number in ''page.idx'', counting starts with 0. One word per line. The line number of the entrys in i<len>.idx corresponds to the line number in w<len>.idx, i.e. the entry in line 9 in i<len>.idx refers to the word in line 9 in w<len>.idx. | ||
+ | * ''pageword.idx'' lists where to find all occurring words of the wiki in the w<len>.idx files for every page. One page per line. The line number corresponds to the line number in ''page.idx''. FIXME What is this file used for? | ||
+ | |||
+ | Example: | ||
+ | |||
+ | * ''w14.idx'' contains the word ''developerworks'' in line 9 | ||
+ | * ''i14.idx'' contains the line ''2*1:5*2:9*1'' in line 9. This means the page #2 has 1 occurrence of the word ''developerworks'', page #5 has 2 and page #9 hast 1. | ||
+ | * ''page.idx'' contains the word ''pending'' in line 5, this is the filename of page #5. Hence the page with the filename ''pending'' has 2 occurrences of the word ''developerworks''. | ||
+ | |||
+ | ===== Attic == | ||
+ | ==== Updating Dokuwiki with git == | ||
+ | |||
+ | <note warning>This is still experimental!</note> | ||
+ | |||
+ | [[doku>devel:git#maintaining_a_stable_version_with_git|Info source]] | ||
+ | |||
+ | Download repository with: | ||
+ | |||
+ | git clone git://github.com/splitbrain/dokuwiki.git # or behind a firewall: | ||
+ | git clone http://github.com/splitbrain/dokuwiki.git | ||
+ | |||
+ | Look for the stable branch in the remote repo which you will use as base: | ||
+ | git branch -r | ||
+ | |||
+ | And copy it into a local branch: | ||
+ | git checkout -b stable origin/stable | ||
+ | |||
+ | Create a private branch for your modifications: | ||
+ | git checkout -b mysettings stable | ||
+ | (make your changes) | ||
+ | git commit -a -m '...' | ||
+ | |||
+ | Now you can pull all needed updates whenever a new release comes out: | ||
+ | git checkout stable | ||
+ | git pull | ||
+ | git checkout mysettings | ||
+ | git merge stable | ||
+ | |||
+ | See also [[git#branches]] | ||
+ | |||
+ | You could also directly work on branch ''stable'' instead of creating ''mysettings''. But this seems not to be idiomatic git usage. | ||
+ | |||
+ | ==== monospaced in blue == | ||
lib/tpl/default/design.css --- 2007-01-06 17:16 | lib/tpl/default/design.css --- 2007-01-06 17:16 | ||
Zeile 76: | Zeile 131: | ||
</code> | </code> | ||
+ | ==== Update Manual == | ||
+ | |||
+ | Infos from [[doku>wiki:install:upgrade]] | ||
+ | |||
+ | General Update strategy: | ||
+ | * Install new version near old | ||
+ | * Take over modifikations: | ||
+ | * If old configfile.dist == new configfile.dist just copy configfile | ||
+ | * If old configfile.dist != new configfile.dist get differencs between old configfile.dist and old configfile with ''diff -u configfile.diff configfile > diffs''; cp new configfile.dist to configfile; patch new configfile with ''patch configfile diffs'' | ||
+ | * Take over data | ||
+ | |||
+ | Update in detail: | ||
+ | * Make a backup of whole dokuwiki dir eg. with admin tool from provider | ||
+ | * Optional: Remove unnecessary data: | ||
+ | * ''~/www/dokuwiki/data > rm -r attic/*'' | ||
+ | * ''~/www/dokuwiki/data > rm -r cache/*'' | ||
+ | * ''~/www/dokuwiki/data > rm -r meta/*'' :?: be careful with comment plugin :?: | ||
+ | * ''~/www/dokuwiki/data > rm changes.log ; touch changes.log'' | ||
+ | * Download from http://www.splitbrain.org/projects/dokuwiki on the server with wget and unpack it | ||
+ | * Delete all dirs but en/ es/ & de/ in inc/lang | ||
+ | * Take over config files in dokuwiki/conf | ||
+ | * cp acl.auth.php from old to new | ||
+ | * cp local.php from old to new | ||
+ | * patch diffs form old smilies.conf.org and old smilies.conf to new smilies.conf | ||
+ | * cp icon_ok.png & icon_no.png in lib/smilies | ||
+ | * Enable rewriting by editing dokuwiki/.htacces file, see below | ||
+ | * Take over data: mv pages/* and media/* | ||
+ | * ''mv dokuwiki/ dokuwiki.old'' | ||
+ | * ''mv dokuwiki-<version> dokuwiki'' | ||
+ | * Check access permissions :!: | ||
+ | * delete tgz file | ||
+ | * copy plugins: | ||
+ | * ~/www > cp -a dokuwiki.old/lib/plugins/linebreak/ dokuwiki/lib/plugins/ | ||
+ | * patch ''lib/tpl/default/print.css'' and ''lib/tpl/default/design.css'' | ||
+ | |||
+ | ==== Update Log == | ||
+ | |||
+ | * 2006-04-24(?) --- Update to 2006-03-09 | ||
+ | * 2007-01-26 --- Update to 2006-11-06 | ||
+ | |||
+ | ==== Config Log == | ||
+ | |||
+ | Always conserve the original file before any changes! Eg. ''cp print.css print.css.org'' | ||
+ | |||
+ | === Bash Syntax Highlighting == | ||
+ | |||
+ | Comments wasn't recognized as comments. Removed ''inc/geshi/bash.php'' of version 2006-11-06 with that of old version 2006-03-09 | ||
+ | |||
+ | === URL Rewriting == | ||
+ | |||
+ | Uncomment everithing beginning with ''#Rewrite...'' in ''~/www/dokuwiki/.htaccess''. But **not** the line ''#RewriteBase /dokuwiki''. See [[dokuwiki>wiki:rewrite]] | ||
+ | |||
+ | |||
+ | === Normal text left, not justified == | ||
+ | |||
+ | lib/tpl/default/print.css line 65 --- 2006-08-18 | ||
+ | |||
+ | diff print.css.org print.css | ||
+ | <code> | ||
+ | 65c65 | ||
+ | < text-align: justify; | ||
+ | --- | ||
+ | > text-align: left; | ||
+ | </code> | ||
+ | |||
+ | === monospaced in blue == | ||
+ | |||
+ | lib/tpl/default/design.css --- 2007-01-06 17:16 | ||
+ | |||
+ | diff design.css.org design.css | ||
+ | <code> | ||
+ | 465a466 | ||
+ | > color: darkblue; | ||
+ | </code> | ||
+ | |||
+ | ==== To Do ===== | ||
+ | |||
+ | * Remove languanges from discussion plugin | ||
+ | * Install [[http://www.wikidesign.ch/en/plugin/discussion/start|Discussion Plugin]] | ||
+ | * Read & do http://wiki.splitbrain.org/wiki:security | ||
+ | * http://wiki.splitbrain.org/wiki:tips:hide-inaccessible-items-in-indexes | ||
+ | |||
+ | ==== Old ====== | ||
+ | === Installation and Upgrade == | ||
+ | == Installation ===== | ||
+ | At date? version 2005-07-13 installed | ||
+ | |||
+ | == Upgrade to 2005-09-22 ===== | ||
+ | At 2005-09-29 20:53 | ||
+ | Infos from [[doku>wiki:install]] - > upgrading | ||
+ | |||
+ | At the server: | ||
+ | wget http://www.splitbrain.org/Programming/PHP/DokuWiki/dokuwiki-2005-09-22.tgz | ||
+ | tar -xzf dokuwiki-2005-09-22.tgz | ||
+ | mv dokuwiki dokuwiki.2.bak | ||
+ | mv dokuwiki-2005-09-22 dokuwiki | ||
+ | dokuwiki/data > touch changes.log | ||
+ | cp -r dokuwiki.2.bak/data/pages/* dokuwiki/data/pages/ | ||
+ | cp -r dokuwiki.2.bak/data/media/* dokuwiki/data/media/ | ||
+ | %%dokuwiki.2.bak/conf > cp -v acl.auth.php local.php users.auth.php ~/www.think-deep.com/dokuwiki/conf/%% | ||
+ | |||
+ | In inc/lang all dirs but en/ es/ & de/ deleted | ||
+ | |||
+ | === Changes at the Sourcecode ====== | ||
+ | |||
+ | == Enabling Line Breaks ===== | ||
+ | FIXME This is not done yet! | ||
+ | |||
+ | |||
+ | == inc/parser/handler.php ==== | ||
+ | The following code in function process($calls) of class Doku_Handler_Block | ||
+ | <code php> | ||
+ | if ( isset($calls[$key+1]) && $calls[$key+1][0] == 'eol' ) { | ||
+ | //... | ||
+ | }else{ | ||
+ | //if this is just a single eol make a space from it | ||
+ | $this->calls[] = array('cdata',array(" "), $call[2]); | ||
+ | } | ||
+ | </code> | ||
+ | replaced with: | ||
+ | <code php> | ||
+ | if ( isset($calls[$key+1]) && $calls[$key+1][0] == 'eol' ) { | ||
+ | //... | ||
+ | }else{ | ||
+ | $dobreak= true; // debugging | ||
+ | if ($dobreak && isset($calls[$key-1]) | ||
+ | && ($calls[$key-1][0] != 'eol') | ||
+ | && ($calls[$key-1][0] != 'linebreak') ){ | ||
+ | $this->calls[] = array('linebreak',array(), $call[2]); | ||
+ | } else { | ||
+ | $this->calls[] = array('cdata',array(" "), $call[2]); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | deduced from [[doku>wiki:discussion:nonewline]] | ||
+ | |||
+ | |||
+ | == inc/lang/en/edit.txt ==== | ||
+ | All Line breaks removed from that file because those breaks would also be displayed when edition a wiki page | ||
+ | |||
+ | |||
+ | == lib/tpl/default/design.css ==== | ||
+ | In order to get line breaks also in indented areas: | ||
+ | Source: http://wiki.splitbrain.org/wiki:tips:prewithwrap | ||
+ | <code css> | ||
+ | /* code block by code tag */ | ||
+ | pre.code { | ||
+ | /* ..*/ | ||
+ | /* becki added source: http://wiki.splitbrain.org/wiki:tips:prewithwrap */ | ||
+ | white-space: pre-wrap; /* css-3 */ | ||
+ | white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ | ||
+ | white-space: -pre-wrap; /* Opera 4-6 */ | ||
+ | white-space: -o-pre-wrap; /* Opera 7 */ | ||
+ | word-wrap: break-word; /* Internet Explorer 5.5+ */ | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | === Changes at Configuration Files ====== | ||
+ | |||
+ | == .htaccess ==== | ||
+ | Commented in for nice URL's: | ||
+ | <code> | ||
+ | RewriteEngine on | ||
+ | RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L] | ||
+ | RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L] | ||
+ | RewriteRule ^$ doku.php [L] | ||
+ | RewriteCond %{REQUEST_FILENAME} !-f | ||
+ | RewriteCond %{REQUEST_FILENAME} !-d | ||
+ | RewriteRule (.*) doku.php?id=$1 [QSA,L] | ||
+ | RewriteRule ^index.php$ doku.php | ||
+ | </code> | ||
+ | |||
+ | == conf/local.php ==== | ||
+ | <code php> | ||
+ | $conf['title'] = 'Beckis Own Wiki'; //what to show in the title | ||
+ | $conf['useacl'] = 1; //Use Access Control Lists to restrict access? | ||
+ | $conf['openregister']= 1; //Should users to be allowed to register? | ||
+ | $conf['autopasswd'] = 0; //autogenerate passwords and email them to user | ||
+ | $conf['superuser'] = 'admin'; | ||
+ | $conf['htmlok'] = 1; | ||
+ | </code> | ||
+ | |||
+ | 2006-02-06 10:24 : | ||
+ | <code php> | ||
+ | $conf['dformat'] = 'Y-m-d H:i'; //dateformat accepted by PHPs date() function | ||
+ | $conf['signature'] = ' --- [[@MAIL@|@USER@]] @DATE@'; //signature see wiki:config for details | ||
+ | </code> | ||
+ | |||
+ | 2006-03-02 for nice URL's: | ||
+ | <code php> | ||
+ | $conf['userewrite'] = 1; //this makes nice URLs: 0:off 1:.htaccess 2:internal | ||
+ | </code> | ||
+ | |||
+ | == conf/interwiki.conf ==== | ||
+ | Shortcut for Php manual: | ||
+ | # becki added | ||
+ | phpman http://de.php.net/manual/en/{NAME}.php | ||
+ | |||
+ | == lib/images/interwiki/ ==== | ||
+ | Icon for shortcut for Php manual: | ||
+ | favicon from php.net fetched, converted to gif with convert & uploaded |