wiki自体 の変更点   


#author("2022-09-13T01:43:25+00:00","default:pentacle","pentacle")
#author("2023-03-20T09:47:28+09:00","default:pentacle","pentacle")
* install [#i056d2e6]
** ファイル設置 [#dd7021a4]
 pukiwiki のパッケージをとってきて適当な場所に置き、見えるようにする
 http://pukiwiki.sourceforge.jp/

 tar xzfp pukiwikixxxx.tar.gz
 chown -R apache.apache pukiwiki*

//chown nobody.nobody wiki attach
//pukiwiki.ini.php  
//  defaultpageをかきかえ

** ubuntu22 [#mc1a69a0]

 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 [#p24d908c]
''default-ssl.conf''
   <FilesMatch \.php$>
       SetHandler "proxy:unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost/"
   </FilesMatch>

#pre{{

a2enmod proxy_fcgi setenvif
a2enconf php8.1-fpm
systemctl restart php8.1-fpm apache2

}}

* 設定 [#c7f5a34f]
 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 ファイルのサイズ [#zef75aaf]
''/etc/php.ini''
 upload_max_filesize=2000M

 service httpd restart

''plugin/attach.inc.php''
 max の上限をあげる


** link の設定 [#hcced2cb]
デフォルトでは file: スキームがリンクされない~
- lib/make_link.php
 L363 file の追加

 |
 (?:\\\\.+)
 
 

** skin の変更 [#nc1e4919]

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


''index.php''
 define('TDIARY_THEME',   'hatena-lime');


- 全ページ共通javascript等を入れたい場合

''skin/pukiwiki.skin.php''

#pre{{
<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 [#k2f643a9]
- [[attachref.inc.php:http://pukiwiki.sourceforge.jp/?%E8%87%AA%E4%BD%9C%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%2Fattachref.inc.php]]~
画像などをその場所に追加したいときに便利。

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>

** サイドバーカスタム [#mf2675a8]
  一覧からMenuBar を選んで編集
  recent を削除
  &edit(MenuBar,noicon){EDIT};
  を有効に

----
* plugin作成方法 [#q4d58b42]
** テンプレ [#ed3e9e0f]
 <?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));
 }
 
 ?>

----
* 移植方法 [#r2024228]
*** 旧wiki にて [#tef46063]
 tar czfp wiki.tgz wiki
 tar czfp attach.tgz attach

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

* 閲覧制限 [#ya22cc1c]
http://pukiwiki.sourceforge.jp/?FAQ%2F41
#pre{{
$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で無効)
}}