created and maintained by tokd
HowToSetUpYukiWikiAtNifty
@nifty では /usr/local/bin/perl しか使えない。
通常は /usr/local/lib/perl5 以下に存在しているはずの標準ライブラリの中で、
動作させたい perl スクリプトが必要とするライブラリを全部転送する必要がある。
以下のファイルを転送した後に chmod 755 wiki.cgi とすることを忘れずに。
perl スクリプト内から呼ばれるその他のファイルに関しては、
実行許可ビットを立てる必要はない。
(覚書:CUI派なら quote site chmod 755 wiki.cgi で変更できる)
導入できたら、最初は my $use_FixedFrontPage = 0; のままアクセスしてパスワードを設定することもお忘れなく。
以下の記述は ActivePerl 522 付属の標準ライブラリ
(通常は、C:\Perl\lib\ にインストールされる)を前提とする。
このサイトで使用しているスクリプト YukiWikiModifiedVersion も参照のこと。
YukiWiki2.1.3 の場合(サーバ側のディレクトリ構成) [パーミッション] cgi-bin/ Algorithm/ [755] Diff.pm [644] CGI/ [755] Carp.pm [644] (from standard library) diff/ [777] (空のディレクトリを作成) info/ [777] (空のディレクトリを作成) plugin/ [755] link.pl [644] recent.pl [644] ruby.pl [644] verb.pl [644] wiki/ [777] (空のディレクトリを作成) Yuki/ [755] DiffText.pm [644] PluginManager.pm*1 [644] RSS.pm [644] YukiWikiDB.pm*2 [644] Carp.pm [644] (from standard library) CGI.pm [644] (from standard library) conflict.txt [644] Exporter.pm [644] (from standard library) format.txt [644] frontpage.txt [644] integer.pm [644] (from standard library) jcode.pl [644] lib.pm [644] (from standard library)*3 overload.pm [644] (from standard library) resource.txt [644] shellwords.pl [644] (from standard library) strict.pm [644] (from standard library) touched.txt [666] (空のファイルを作成) UNIVERSAL.pm [644] (from standard library) vars.pm [644] (from standard library) wiki.cgi*4 [755] homepage/ icon40x40.gif [644] rss.xml [666] wiki.css [644]
- 1 glob("$dir/*.pl") はシェルを呼び出すので @nifty では動かない。
ここを参考にして、以下のように変更した。
(AtHopeGlob.pm を使う方法もある模様)
*** PluginManager.pm.dist Wed Mar 03 17:18:04 2004 --- PluginManager.pm Sun Mar 28 13:54:40 2004 *************** *** 26,32 **** }; # Search for plugins. for my $dir (@dirs) { ! for my $file (sort glob("$dir/*.pl")) { if (-e($file)) { my $pluginname = $file; $pluginname =~ s/.*?(\w+?)\.pl$/$1/; --- 26,36 ---- }; # Search for plugins. for my $dir (@dirs) { ! opendir(DIR, $dir) or die; ! @files = sort grep { /\.pl$/i && -f "$dir/$_"} readdir (DIR); ! closedir(DIR); ! for my $file (@files) { ! $file = "$dir/" . "$file"; if (-e($file)) { my $pluginname = $file; $pluginname =~ s/.*?(\w+?)\.pl$/$1/;
- 2 Fcntl を使わないように変更
# use Fcntl ':flock';
- 3 環境依存の Config.pm を使わないように変更
# use Config; # my $archname = $Config{'archname'}; my $archname = '';
- 4 注意すべき変更箇所
1行目: #!/usr/local/bin/perl 25行目: # use Fcntl; 38行目: my $modifier_url_data = 'http://homepage2.nifty.com/tokd'; # Your data URL (not DIRECTORY, but URL). 41行目: my $modifier_rss_about = 'http://homepage2.nifty.com/tokd/rss.xml'; 61行目: my $file_rss = "../homepage/rss.xml"; 825行目: # tie(%database, "AnyDBM_File", $dataname, O_RDWR|O_CREAT, 0666) or &print_error("(tie AnyDBM_File) $dataname"); 826行目: # tie(%infobase, "AnyDBM_File", $infoname, O_RDWR|O_CREAT, 0666) or &print_error("(tie AnyDBM_File) $infoname"); 850行目: # tie(%diffbase, "AnyDBM_File", $diffname, O_RDWR|O_CREAT, 0666) or &print_error("(tie AnyDBM_File) $diffname");
RSSを正常に動かすには YukiWikiModifiedVersion に示す修正が必要です。
YukiWiki1.6.7 の場合(サーバ側のディレクトリ構成)
cgi-bin/ Algorithm/Diff.pm CGI/Carp.pm (from standard library) Carp.pm (from standard library) Exporter.pm (from standard library) integer.pm (from standard library) jcode.pl lib.pm (from standard library)*1 strict.pm (from standard library) vars.pm (from standard library) yukiwiki.cgi*2 homepage/ yukiwiki.gif
- 1 環境依存の Config.pm を使わないように変更
# use Config; # my $archname = $Config{'archname'}; my $archname = '';
- 2 /cgi-bin 以下のファイルは参照できないので、/homepage に置く
74行目: my $iconfile = 'http://homepage2.nifty.com/tokd/yukiwiki.gif';