#author("2025-03-22T18:23:57+09:00","","") #author("2025-03-22T18:32:40+09:00","","") *[[chapter8 運用について(メンテナンスなど)]] [#le14ff5c] Pukiwikiを使い続けるために必要なノウハウや考え方、注意点や手順について解説します。 便利に使うためには、安定した運用が欠かせません。ここで、運用のための知識を身につけてください。 // ----- #contents(); //#access(); **8-1 PukiWiki Developers Teamについて [#fd3a702d] ***公式サイトと開発サイト [#z1d29b46] Pukiwikiを使用したサイトを運営していく上で、必要な情報を集めたり疑問を解決するためには、チームが運営しているPukiwiki公式サイトを利用するのが基本です。 公式サイトには様々な疑問や質問、それに対する回答などが掲載されてますので、自分と同じ疑問をついて書かれてるページがないかどうかを探すことで、 疑問を解決できることがあります。 チームでは公式サイトと開発サイトの2つのPukiwikiを運営してます。運用サーバーにはオープンソースを利用してます。 ***ページデータのバックアップからの復元 [#s64caa37] ページの編集内容を以前の状態に戻したい場合には、ページデータのバックからコピーして、編集画面で改めてペーストして更新します。 ページデータのバックアップは、ナビゲーター部にあるバックアップより、バックアップ一覧画面で参照できます。 バックアップ一覧画面では設定ファイル内でしていされている時間ごとに保存されている以前のバージョンがリストアップされてます。 戻したいバージョンを選び、ソースの項目からソースを表示して、ソース部分を選択してコピーします。 その後、該当のページを再表示して編集画面へ移り、先ほどコピーした内容wpペーストして更新してください。pukiwikiではバックアップから復元を一発で行う機能は用意されていません。 バックアップから復元機能をやたらに利用されてページを荒らすようなことがなようにするため、あえて機能を設けていないのも理由のひとつですが、復元機能自体がそれほど多用されるものでないので、 現状でも問題がないことも事実です。 &ref(./img20250322_18201659.jpg,50%); // **8-2 サイトメンテナンス [#dcab88d8] Pukiwikiでサイトを運営していく上で、メンテナンスは必要になります。 ---------------------------------------------------------------------------------------------------- // ***管理者としてのメンテナンス [#la3ee6e5] wikiはユーザーが自由にページを増やしたり書き換えることができるので、 放置しておくと不要なページが増えたり、使われなくなるページが増えてきます。時にはページ名を変更したり、 以前の状態に戻したくなったりもします。 そのようなメンテナンスを行うときも、基本的にはWebブラウザから作業することができます。 しかし、一括でページ内の文字列を変更したりする場合には、稼働しているサーバー上で直接作業したほうがいい場合もあります。 // ***ページ名の変更 [#hd29eece] 一度作成したページの名前を変更するには、既存ページの内容をコピー、新規ページを作成してペーストして保存、 その後に既存ページを削除するのが基本的な方法です。しかし、実はページ名を変更するための機能があります。 pukiwiki画面下部のアイコンが並ぶツールバーの中に「名前変更」として用意されています。 既存ページから新規ページを作成してのページ名変更はページの更新日時が最新になってしまいますが、 名前変更ツールをを利用するとページの更新日時を変更せずにそのままページ名を変更することが可能です。 ただし、ページ名を変更してもその他の既存ページに含まれるリンクが自動的に変更されることはないので、 ページ名変更後は各ページ内のBracketNameやWikiNameを書き換えて、リンクを貼り直す必要があるので注意してください。 &ref(./名前変更の説明.png,50%); // ***ページのバックアップからの復元 [#d2c741a6] ページの編集内容を以前の状態に戻したい場合には、ページデータのバックアップからコピーして、編集画面で改めてペーストして更新します。 ページデータのバックアップは、ナビゲーター部にある「バックアップ」より、バックアップ一覧で参照できます。 バックアップ一覧画面では設定ファイル内で指定されている時間ごとに保存されている以前のバージョンがリストアップされています。 戻したいバージョンを選び、ソースの項目からソース表示して、ソース部を選択してコピーします。 その後、該当のページを再度表示して編集画面へ移り、先ほどのコピーした内容をペーストして更新してください。 Pukiwikiではバックアップからの復元機能をやたらに利用されてページを荒らすことがないようにするため、あえて機能を設けないもの理由のひとつですが、 復元機能自体がそれほど多用されるものでもないので、現状でも問題がないことも事実です。 &ref(./dumpプラグイン.png,50%); // ***ページデータの一括バックアップ [#i6d03db2] 自分で設置したPukiwikiのページデータは、あなたやほかのユーザーが作成したかけがえのない資産です。 Pukiwikiが活用されるにつれて重要性は高まり、失ったときに受けるダメージが大きくなります。 大事なデータを失わないためには、データのバックアップを行うことが重要です。 ページ単位でのバックアップは、自動的に取られていつでも参照することができる機能が用意されていますが、 Pukiwikiに含まれるページ全体、添付されたファイル、更新ごとのページバックアップ機能は、dumpプラグインとして実装されてます。 dumpプラグインはコマンド型のプラグインなので、実行する際には設置したURLにコマンドとして「?plugin=dump」を加えてアクセスしてください。 dumpプラグインでは、Pukiwikiのデータをtar.gz形式、または、tar形式でまとめられた形でダウンロードできるようになっています。 ダウンロードしたファイルはtar形式なので、対応する解凍ツールを用いて展開しることで元のファイルを取り出すことができます。 バックアップ復元時には、展開したファイルをそのままディレクトリごとにFTPなどの方法を用いてPukiwikiを設置した場所にコピーすることで完了します。 UNIX系OSを使用する場合には、アップロード時のファイルパーツミッションには注意してください。 また、dumpプラグイン自体でも復元機能を持っています。しかし、初期状態では復元機能は無効にされています。 復元機能を有効にするdumpプラグイン本体、plugin/dump.inc.phpに含まれるPLUGIN_DUMP_ALLOW_RESTOREの値をTUREに変更してください。 復元機能を有効にすると、ファイルアップロード用のフォームが追加されます。 ここにバックアップとして保存しておいたtar形式のファイルをアップロードすると自動的にサーバー上に展開されて、バックアップから復元されます。 バックアップデータの復元機能を使用する際には注意したいのが、アップロードできるファイルサイズの制限です。 初期状態では1MB程度に制限されているので、ページデータや添付ファイルを含んだバックアップファイルを復元しようとする場合に、 バックアップデータファイルがファイルサイズ制限に引っかかってしまう場合があります。その場合には、PLUGIN_DUMP_MAX_FILESIZEを任意のサイズに変更しましょう。 あまりに大きなファイルサイズができあがってしまった場合には、前述のFTPなどの方式を用いて展開したファイルをサーバーにコピーする方法で対応してください。 -変更前 // Allow using resture function define('PLUGIN_DUMP_ALLOW_RESTORE', FALSE); // FALSE, TRUE -変更後 // Allow using resture function define('PLUGIN_DUMP_ALLOW_RESTORE', TURE); // FALSE, TRUE &ref(./20250322_1816.png,30%); // -dumpプラグインだけでいいの? [#a4f3c0b0] dumpプラグインでバックすることができるデータは、wiki,attach,backupの3つのディレクトリに含まれるファイルです。 ページデータとして必要なものはこの3つのディレクトリに含まれているので、ページだけのバックアップを考えた場合には十分です。 しかし、その他のディレクトリに含まれるものは、dumpプラグインではバックすることができません。 サイトの訪問者数を保存しているcounterディレクトリやカスタマイズしたあとの設定ファイル、自作プラグインを追加した後のpluginディレクトリなども含めてバックすることを考えた場合、dumpプラグインではなくFTPなどでサーバー上からファイルをコピーする手段を用いて丸ごとバックアップするのがいいでしょう。 サーバーの不具合などでファイルが消失することを考えると、やはりPukiwikiの設置しているディレクトリの全部を丸ごと手元にコピーしてバックアップとして残すことが望ましいでしょう。 // ***ページ内の直接書き換え [#ybf8a37b] 複数ページ内に含まれる一定の記述を別の書き方に変更したい場合、Pukiwikiでは地道に1ページずつ修正を行う必要があります。 テキストエディタなどでテキストを編集するのであれば、便利な置換機能を利用して一括で記述を変更できますが、Pukiwikiには そのような機能が標準では用意されてません。 ひとつの方法として、テキストエディタの複数ファイルに対する一括置換機能を使用することが考えられます。Pukiwikiのページデータは wikiディレクトリの中に普通のテキストファイルとして保存されているので、wikiディレクトリを手元にコピーして、任意のテキストエディタ で開き、一括置換機能で記述を書き換えることができます。 ただし、再度Pukiwikiに書き戻すファイルの送信日時がサーバへアップした時点になってしまったり、置換作業を行った時点になってしまうので、 更新日時を変更せずにページ内の一括置換を行いたい場合には問題があります。 サーバー上でPerlなどのスクリプトが使用できる場合には、文字一括置換用のスクリプトを作成してサーバー上で動かし変換してしまう手があります。 ページ内の複数箇所にURLをたくさん記述したようなサイトで、そのURLを一括して別の移動先URLへ書き換えるような作業を行ったことがありました。 その際にはPerlでwikiディレクト内のテキストファイルを直接置換してファイルを書き出すようなスクリプトを作成し、サーバ上で一括置換を行いました。 // ***ページデータのファイル名の確認 [#xb61e750] メンテナンスの目的でページデータを直接開いて編集したい場合があります。 Pukiwiki各ページデータは、wikiディレクトに保存されます。 wikiディレクトに含まれるページデータは、一般的なテキストファイルです。 EUP-JPまたはUTF-8の文字コードで作成されたテキストファイルなので、それぞれの文字コードに対応したテキストエディタであればページデータをそのまま開くことができます。 しかし、ページデータのファイル名はページ名をエンコードした形で保存されてるため、しただけではどのファイルがどのページに対応したものかは判別することができません。 ファイルを開いて中身を見ればある程度は判断することができますが、大量にある場合や中身が似たようなページがたくさんある場合には、 ファイル名がわからない場合は判別が難しいことになります。 Pukiwikiにはページデータのファイル名を一覧する機能が用意されてます。 ナビゲーター部用意されてる「一覧」リンクでは作成されているページ名一覧が表示されますが、その名一覧の画面でさらに「ファイル一覧」が見つかります。 このファイル一覧を参照することでページ名ごとのページデータファイル名を識別 することができるので、ページデータのテキストファイルを直接編集したい場合には、このファイル名一覧でページデータのファイル名を調べてください。 &ref(./20250322_1812.png,30%); ***ページの一括削除 [#y8bcfb7c] ページを削除するには、編集画面でページ内容を~にしてからページの更新を 行えばできます。しかし、この削除方法は1ページ単位での削除です。 一度に大量のページを削除したい場合にはサーバ上のwikiディレクトリ内のデータを まとめて消すことになります。 wikiディレクトリには先ほど説明したとおり、ファイル名がエンコードされた形で保存されているので、 一括削除対象となるページデータに対応するファイル奈は、ファイル一覧から探しておく必要があります。 調べたファイルをサーバ上で一括削除することで、ページ削除は完了します。 手動で削除した場合には、ページに対応したバックアップデータや更新ページ名一覧など、 ほかの関連するデータとの整合性が取れなくなります。 削除したページのバックアップデータを残したままの状態でいると、バックアップ一覧から削除したページを復活することができます。 ページに対応するバックアップ一覧から、さらに全ページのバックアップ一覧を参照することができるので、もしページを完全に削除する目的でページデータを一括削除したいのであればバックアップデータも忘れずに削除してください。 バックアップデータを一括削除したい場合は、ページデータと同様にサーバ上に保存されてるファイルを直接削除します。バックアップデータは、backupディレクトリにgzip形式で圧縮されたファイルで保存されています。 ファイル名はページデータとp同様にエンコードされているので、ファイル名一覧で対応するファイルを調べてから削除します。 // ***ページ一括削除プラグイン [#v023bd6e] ページの一括削除については、上記のように直接サーバ上で操作するよりも簡単で便利な方法があります。 公式サイトでページ一括削除プラグインとして紹介されている自作ブラグインdeldel.inc.phpを使用します。 公式サイトのページ「自作プラグイン」より プラグインについて情報を参照してください。 なお、公式サイトの自作プラグインページは、プラグインが大量にリストアップされているため表示までにたへん時間がかかります。 目的のプラグイン名がわかっている場合には、検索エンジンで直接プラグイン名を検索したほうが早く目的のページにたどり着けます。 deldelプラグインは、okkez氏が作成した自作プラグインです。 配布は作者のサイト上で行われているので、公式サイトにある作者のサイトへのリンクからたどりましょう。 deldelプラグインはPukiwiki版とPukiwikiPlus!版が配布されています。 通常とされているものをダウンロードしてください。 配布されているプラグインはUTF-8形式で作成されているので、お使いのPukiwikiがEUC-JP対応版の場合には設置前にEUC-JPへ変換する必要があります。 -インストールは、pluginディレクトリに設置するだけです。 -コマンド型プラグインなので、Pukiwiki設置URLに「?pluin=deldel」と加えてdeldelプラグインの画面へアクセスします。 -deldelプラグインの画面では、まず削除対象とするデータの収められたディレクトリ名をプルダウンリストから選択して、管理用パスワードを入力した上で検索ボタンをクリックします。 // ***リンクキャッシュ更新 [#j48aadfe] ページデータを直接削除すると、pukiwiki内部で使用されているリンクキャッシュファイルの整合性が取れなくなる場合があります。 リンクキャッシュファイルはページごとのリンクしている、リンクされている状態をキャッシュしておき、関連しちるページ一覧を生成する際などに使用されます。 このキャッシュの整合性を取るために、コマンド型プラグインlinks.ini.phpが用意されています。 pukiwiki設置URLの後ろに? plugin=links と記入してアクセスすると、キャッシュ更新画面が表示されます。 管理用パスワードを入力するだけで、キャッシュの更新は完了します。 サイトに含まれるページ数によってはキャッシュ更新にしばらく時間が掛かります。 ページデータを一括削除したような場合や、ページデータを直接編集したあとは、リンクキャッシュの苦心を行っておくと関連するページ名一覧などが正しく状態を保つことができます。 &ref(./20250322_1808.png,50%); // **8-3 荒らし、SPAMへの対策 [#n80d6698] pukiwikiのどこでも誰でもwebブラウザだけで書き込むことができるというのはたいへん便利な機能ですが、悪意を持ったユーザーに対しても同様に便利な機能になり得ます。 ---------------------------------------------------------------------------------------------------- ***誰でも書き込めるから誰でも修復できる [#yd0e04bb] Pukiwikiを始めてみるときに、ページを他人に荒らされないか不安になる人も多いようです。 しかし、始めてしまえばわかりますが、実際のところは以外に荒らされることはありません。むしろ荒らされることよりも、他人に書き込まれることが少なくて物足りない思いをする場合のほうが多いでしょう。 とはいえ、ある程度サイト運営を続けていると、いろいろなことがあります。 特に有用な情報が集まりだし、コミュニケーションが活発になればばるほど荒らしが起こる可能性もあがるので、 いざというときのために荒らしの対応策は頭の隅にいれておくといいでしょう。 また、ここ数年ではwikiへのSPAMも増えてきてます。SPAMは望まないサイトの広告のようにな、迷惑な書き込みが無作為に書き込まれる現象をいいます。 SPAMはプログラムを利用して自動的に行われることが多いので頻繁に書き込まれることがおおく、対処することがかなり困難な問題です。 &ref(./img20250322_08173602.jpg,30%); ***時には機能を制限する [#b52e3e82] 悪意を持つユーザーに望まない画像URLを書き込まれ、不適切な表示されてしまい、不快な思いをすることがあります。 だれかがその画像URLを削除してくっることで気づかないうちに修復されている場合が多いですが、そのようなイタズラが長く続くとサイトの印象が悪くなってします。 // **8-4 バージョンアップ [#q4464702] ***バージョンアップについて [#m4ceca5f] バージョンアップによって新機能が追加されたり、セキュリティアップデートが施されたりすることがあるので、場合によってはバージョンアップする必要が出ます。 以前からPukiwikiを活用している場合にはその使用しているバージョンによっては内部仕様の変更によりデータの 互換性をなどに差が出るときがありますので、バージョンアップの際に注意して作業を行わなければなりません。 // ***pukiwikiの今後のバージョンアップ [#zcd0b4b7] 今後、Pukiwikiの内部の仕様が大きく変更されるかどうかはわかりませんが、大きな変更があったとしても基本的には移行するためのツールが提供されるでしょう。 大きな変更がない限りは更新された箇所に注意を払いつつ、各ファイルを上書きすることでバージョンアップが可能です。 特に注意を払う必要があるのは、バージョンアップ後の設定ファイルに新たな設定項目が追加されていないかどうかです。 設定項目が追加されているのにも関わらず旧バージョンの設定ファイルを使用し続けようとした場合には、動作に不具合が起こったり、動作しないことが起こります。 また、従来の設定ファイルやスキンファイルなどにかなり手を入れたり、プログラム内を改造していたりする場合には、新バージョンへの改造部分の移植はそれなりに手間が掛かることになります。 ただし、この改造をバージョンアップ後に適用する手間というのは基本的にどのバージョンを使用していたとしても発生する問題であり、Pukiwikiを使用し続ける上では避けがたいことです。 カスタマイズ内容を新バージョンに適用する際に省力化するためには、カスタマイズした部分について、配布状態の標準時ファイルからの差分として残しておくことが一般的です。 Wiindowsでも同様に移植されているものがあるので利用しましょう。あるいは別途手作業で変更部分を記録しておくことも有効です。 Pukiwikiのカスタマイズ内容について設置しているPukiwikiにページを設けて記録しておくことも、おすすめできる方法です。 ***Pukiwikiを動かす環境のバージョンアップ [#i8bc18cf] Pukiwikiを動かす環境として必要となるWebサーバーやPHPのバージョンアップも、随時バージョンアップする必要があります。 特にPHPについては割と頻繁にアップデートが行われるので、必要と考えられる場合はアップデートしましょう。 ただし、お使いの環境がレンタルサーバーなど自分の管理する範疇ではない場合は、管理者の方針に従うしかありません。 Pukiwikiの公式サイトではPHPのバージョンアップにつうてはトップページに随時お知らせが掲載されるので、公式サイトには随時アクセスして ある程度ニュースを把握しておいてください。 //ここまで