ユーザ用ツール

サイト用ツール


dokuwikiに関して

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
dokuwikiに関して [2019/05/05 07:02] – [Pukiwikiからの移行] arakidokuwikiに関して [2020/11/25 09:56] (現在) – [Pukiwikiからの移行] araki
行 1: 行 1:
 ====== DocWikiに関して ====== ====== DocWikiに関して ======
 ===== 概要 ===== ===== 概要 =====
 +
 +docwiki はファイルベースの wiki であり、モダンなデザイン((レスポンシブデザインなど))を持っている。
 +マークアップは、wikiで多く用いられているmarkdownではないものの、webベースのエディタによる十分なサポートがあるため、特に記述には苦労はしないだろう。
 +
 +編集も、見出し単位で行えるので、ページを丸ごと編集していておかしなことになってしまったり、長大なページで、編集したい場所を見つけるのに苦労するなどといったことも起きにくい。
 +
 +プラグインによる拡張も行うことができるが、大きなバージョンアップの際には、プラグインの互換性が問題となって、アップデート後にページが表示されないようなことも起こりうる。
 +
 +バージョンアップ時にはプラグインの互換性を確認する必要があり、場合によってはプラグインの使用を中止する必要もあるので、過度に依存すると問題となることもあるので、適切に管理する必要がある。
 ===== 導入 ===== ===== 導入 =====
 ===== 設定 ===== ===== 設定 =====
 ==== Nginx+php-fpm ==== ==== Nginx+php-fpm ====
 +
 +PHPベースのシステムなので、例によって Nginx+php-fpmで運用する。
 +SSLにはLet's encryptを使用する。
 +
 +<code>
 +upstream wiki-handler {
 +    server unix:/var/run/php-fpm.sock;
 +}
 +server {
 +    listen 80;
 +    server_name wiki.example.com;
 +    return 301 https://$server_name$request_uri;
 +}
 +
 +server {
 +    listen 443 ssl;
 +    server_name wiki.example.com;
 +    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
 +    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
 +    root /var/www/dokuwiki;
 +    access_log /var/log/nginx/wiki_access.log;
 +    error_log /var/log/nginx/wiki_error.log;
 +    index index.php index.html doku.php;
 +    location / {
 +        try_files $uri $uri/ @dokuwiki;
 +    }
 +    location ~ \.php$ {
 +        try_files $uri $uri/ /doku.php;
 +        fastcgi_index index.php;
 +        fastcgi_split_path_info ^(.+\.php)(.*)$;
 +        fastcgi_keep_conn on;
 +        include /etc/nginx/fastcgi_params;
 +        fastcgi_pass wiki-handler;
 +        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 +        fastcgi_param PATH_INFO $uri;
 +        fastcgi_param QUERY_STRING $query_string;
 +        fastcgi_param REQUEST_METHOD $request_method;
 +        fastcgi_param CONTENT_TYPE $content_type;
 +        fastcgi_param CONTENT_LENGTH $content_length;
 +    }
 +    location @dokuwiki {
 +        rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
 +        rewrite ^/_datail/(.*) /lib/exe/detail.php?media=$1 last;
 +        rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
 +        rewrite ^/(.*) /doku.php?id=$1&$args last;
 +    }
 +    location ~ ^/lib.*\.(gif|png|ico|jpg)$ {
 +        expires 30d;
 +    }
 +    location ~ \.ht {
 +        deny all;
 +    }
 +    location ~ /(data|conf|bin|inc|vendor)/ {
 +        deny all;
 +    }
 +}
 +</code>
  
 ==== PHP(php-fpm)の設定 ==== ==== PHP(php-fpm)の設定 ====
 DocWikiはUTF-8を前提としている。 DocWikiはUTF-8を前提としている。
-特に、編集のためのテキストエリアへのコンテンツの呼出には、''htmlspecialchars()''を利用しており、PHPのデフォルトの文字セットがUTF-8になっていないと、編集が出来なくなってしまう。+特に、編集のためのテキストエリアへのコンテンツの呼出には、''htmlspecialchars()''を利用しており、PHPのデフォルトの文字セットがUTF-8になっていないと、編集が出来なくなってしまう。((編集画面内の''textarea''が''htmlspeialchars()''によって空欄になってしまう。))
  
 php-fpmが利用したい文字コードとデフォルトのPHPの文字コードが異なる場合、php-fpmの設定で、この部分を上書きするようにすれば良い。 php-fpmが利用したい文字コードとデフォルトのPHPの文字コードが異なる場合、php-fpmの設定で、この部分を上書きするようにすれば良い。
-例えば、VineLinuxのように ''php.ini''が''default-charset="EUC_JP"''となっている場合には、''/etc/php5/fpm.d/default-pool.con'' の下の方に次の一行を追加してやり、php-fpmを再起動すればよい。+例えば、VineLinuxのように ''php.ini''が''default-charset="EUC_JP"''となっている場合には、''/etc/php5/fpm.d/default-pool.conf'' の下の方に次の一行を追加してやり、php-fpmを再起動すればよい。
  
-''php_admin_value[default_charset] = UTF-8''+<code> 
 +php_admin_value[default_charset] = UTF-8 
 +</code>
  
 ==== Pukiwikiからの移行 ==== ==== Pukiwikiからの移行 ====
行 25: 行 93:
  
 以下のプラグインを導入する必要がある。 以下のプラグインを導入する必要がある。
-  * definitions plugin +  * definitions plugin((HogFather (51.x)では互換性がなく使用できない。)) 
-  * indexmenu plugin+  * indexmenu plugin((HogFather (51.x)では互換性がなく、defer_jsを無効化する必要がある。対応を表明しているが2020-11-25現在未対応。))
   * color plugin   * color plugin
  
行 36: 行 104:
 まずは画像。 まずは画像。
  
-''$ puki2doku.pl -v -A -E utf8 -s /var/www/pukiwiki/picture -d /var/www/dokuwiki/data/media''+<code> 
 +$ puki2doku.pl -v -A -E utf8 -s /var/www/pukiwiki/picture -d /var/www/dokuwiki/data/media 
 +</code>
  
 なお、''-E utf8''はPukiwikiをUTF-8化していた場合のみ必要。 なお、''-E utf8''はPukiwikiをUTF-8化していた場合のみ必要。
  
 次に本文を移行する。 次に本文を移行する。
- +<code> 
-''$ puki2doku.pl -v -E utf8 --font-color --indexmenu --ignore-unknown-macro -s /var/www/pukiwiki/wiki -d /var/dokuwiki/data/pages''+$ puki2doku.pl -v -E utf8 --font-color --indexmenu --ignore-unknown-macro -s /var/www/pukiwiki/wiki -d /var/dokuwiki/data/pages 
 +</code>
  
 同様に、''-E utf8''はUTF-8化していた場合にのみ用いる。 同様に、''-E utf8''はUTF-8化していた場合にのみ用いる。
 +==== アップグレード ====
 +
 +=== アップグレードプラグイン ===
 +
 +=== Hogfather (51.x)へのアップグレード ===
 +
 +互換性のないプラグインが原因で、アップグレード後に500エラーを起こす。
 +当方で使用していたものとしては foont sizeと description listのプラグインが該当した。
 +
 +また、indexmenu は未対応だが、 <code>$conf[defer_js]=0;</code>を conf/local.php に追記してからアップグレードすることで問題を回避できる。
 +
 +この設定はHogfatherへアップグレードしたのちは、管理メニューの設定画面からOFFできるようになる。
 +
 +
 +
 +
dokuwikiに関して.1557007361.txt.gz · 最終更新: 2019/05/05 07:02 by araki