Linux Install

Android

Linux Tools

Linux AV

Linux Memo

WINDOWS

PROGRAM

動画 Memo

音楽 Memo

モバイルアプリ Memo

FILE FORMAT

PROTOCOL

DEVICE

BookMark

その他


wiki自体   

install

ファイル設置

pukiwiki のパッケージをとってきて適当な場所に置き、見えるようにする
http://pukiwiki.sourceforge.jp/
tar xzfp pukiwikixxxx.tar.gz
chown -R apache.apache pukiwiki*

ubuntu22

apt install php libapache2-mod-php php-fpm php-common php-mbstring php-xmlrpc php-gd php-xml php-mysql php-cli php-zip php-curl php-imagick php-intl

php-fpm

default-ssl.conf

  <FilesMatch \.php$>
      SetHandler "proxy:unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost/"
  </FilesMatch>
a2enmod proxy_fcgi setenvif
a2enconf php8.1-fpm
systemctl restart php8.1-fpm apache2

設定

php -r 'echo md5(password);'

ここで出た数値を後の $adminpass に書く

pukiwiki.ini.php

$adminpass = '{x-php-md5}'.....;
$defaultpage = 'TopPage';
$page_title = 'Page';
$modifier = 'kopenta';
$modifierlink = 'https://caffeinecat.net/';
$nowikiname = 1;  # WikiName みたいな単語が勝手にリンクされてウザいので無効化
$autolink = 0; # 勝手にリンクされちゃイヤ 
$line_break = 1; # チルダで改行するのめんどくさい
define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0); # これを0にすると複数行プラグインOK

default.ini.php

$related_link = 0;

upload ファイルのサイズ

/etc/php.ini

upload_max_filesize=2000M
service httpd restart

plugin/attach.inc.php

max の上限をあげる

link の設定

デフォルトでは file: スキームがリンクされない

  • lib/make_link.php
    L363 file の追加
|
(?:\\\\.+)

skin の変更

  • tDiary のskinが使える skin をとってきて入れる

index.php

define('TDIARY_THEME',   'hatena-lime');
  • 全ページ共通javascript等を入れたい場合

skin/pukiwiki.skin.php

<script language="javascript">
<!--
function GetHeight(ID,NAME)
{
    if (document.height){
        document.getElementById(ID).style.height = parent.frames[NAME].document.height +40 +"px" ;
    }else{
        document.getElementById(ID).style.height = parent.frames[NAME].document.body.scrollHeight +40 +"px";
    }
}
function jumpto(parts){
    var url = parts.options[parts.selectedIndex].value;
    if (url.indexOf("http")==0){
        location.replace(url);
    }else{
        location.replace  ("/index.php?"+url);
    }
  }
//-->
</script>

plugin

plugin ディレクトリに attachref.inc.php と rename しておいておく

ファイルサイズの上限アップと、ファイルアタッチの許可
plugin/attach.inc.php

 ini_set('upload_max_filesize', '2000M');
 define('PLUGIN_ATTACH_MAX_FILESIZE', (1024 * 1024 * 1024 * 2)); 
 define('PLUGIN_ATTACH_UPLOAD_ADMIN_ONLY', FALSE); 
  • pre.inc.php
    cd plugin 
    wget "http://svn.sourceforge.jp/svnroot/lsx/plugin/pre.inc.php"
    使用法
    #pre{{
    <html>
     <head>
     </head>
     <body>
     </body>
    </html>
    }}
  • mail.inc.php
  • search.inc.php
     <div>
     SEARCH
     <input type="text"  name="word" value="$s_word" size="20" />
     </div>

サイドバーカスタム

 一覧からMenuBar を選んで編集
 recent を削除
 &edit(MenuBar,noicon){EDIT};
 を有効に

plugin作成方法

テンプレ

<?php
/*------------------------------------------------------------
  pukiwiki 用プラグインテンプレ
 1.ファイル名を変更して作成する
    template.inc.php 
  template の部分を【プラグイン名】
  2.文字列置換 template -> 【プラグイン名】
  ------------------------------------------------------------*/

#========================================
# global vars 
// PLUGIN_【プラグイン名】_【変数名】 として宣言するのがお作法?
// define('PLUGIN_TEMPLATE_VAR',   16); 

#========================================

# インライン要素として呼ばれた際に呼ばれるコールバックメソッド
function plugin_template_inline(){
    return '【インライン要素としては使えません】';
}


# ブロック要素として呼ばれた場合に呼ばれるコールバックメソッド
function plugin_template_convert() {
# 引数を得る
    $args = func_get_args();

# 引数の配列数を求める
# count($args)

# 引数を処理
# for ( $i = 0; $i < count($args); $i++){
#    $args[$i];
# }
  $retstr = "表示したいHTML表記";
    return($retstr);
}


# cgi として直接呼ばれた際に呼ばれるコールバックメソッド
# 戻り値:メッセージとボディの配列
#
# 例:return(array('msg'  => 'template Error',
#                  'body' => '失敗しました。'));
function plugin_template_action() {
  $retbody = "送信しました";
  return(array('msg' => 'template sent', 'body' => $retbody));
}

?>

移植方法

旧wiki にて

tar czfp wiki.tgz wiki
tar czfp attach.tgz attach

新wiki にて

  • /tmp 等に wiki.tgz, attach.tgz をコピーして展開
  • attach.inc.php の asort が動かないのでコメントアウト
  • utf8 に変換する際には作業必要
    • PukiWiki_FileViewer
    • KanjiTranslator
  • chown -R nobody.nobody wiki attach

閲覧制限

http://pukiwiki.sourceforge.jp/?FAQ%2F41

$auth_users = array(
 'Group1' => 'hogehoge', // 閲覧許可グループ名 => パスワード
 'Group2' => 'hegehege', // 編集許可グループ => パスワード
);
$auth_method_type = "pagename"; // ページ名で制限する
$read_auth = 1; // 閲覧許可有効 (0で無効)
$read_auth_pages = array(
 '/^☆.*$/' => 'Group1', // 閲覧制限ページ(正規表現) => 閲覧許可グループ名
);
$edit_auth = 0; // 編集許可有効 (0で無効)
$edit_auth_pages = array(
 '/^.*$/' => 'Group2', // 編集制限ページ(正規表現) => 編集許可グループ名
);
$search_auth = 1; // 検索対象を閲覧可能ページだけに (0で無効)