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');
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で無効)