たった1つのボタンを押すだけで、てがろぐ本体をバージョンアップできる!
てがろぐCGIの本体ファイルを1クリックだけで最新版にバージョンアップできるPHPスクリプト「TegUp」を作りました!
下図のように、たった1つのボタンを押すだけでバージョンアップできます!(※黄色矢印の先)
既に最新版が稼働している場合には、上図の緑色矢印のように「既に最新版ですよ」という案内を表示するだけなので、無駄にファイルを書き換えたりはしません。
この「TegUp」が設置されていさえすれば、あとは何の準備も不要の1クリック(1タップ)だけで済みますから、スマートフォンのような小型モバイル端末からでも簡単にバージョンアップができます。
※現状では、正式版へのバージョンアップだけをサポートしています。β版へのバージョンアップは(今の時点では)できません。
※「いま稼働しているβ版」を「次の正式版」へバージョンアップする用途には使えます。
手動でのバージョンアップの面倒さと不安を解消
てがろぐCGIを手動でバージョンアップするには、単に tegalog.cgi と fumycts.pl の2ファイルを上書きアップロードして頂ければ良いのですが、そうは言っても、手動でそれをするには、以下のような問題というか不安点というか、面倒さがありますよね。
- 《面倒》ZIPを落としてきて、展開して、2ファイルだけを抜き出す手間が要る。
- 《面倒》tegalog.cgi を別名に変更して使っているなら、その変更の手間が要る。
- 《面倒》tegalog.cgi ソース冒頭付近に直接記述する設定項目を変更しているなら、新ファイルを同様に書き換えなければならない手間が要る。
- 《不安》2ファイル以外のファイルを誤って上書きしてしまうことで、投稿データが消えてしまったり、設定が初期化されてしまったり、パスワードが破棄されてしまったりする点に気をつけなければならない不安がある。
……というような、上記の面倒さと不安を解消するのが、この「TegUp」です。
てがろぐ本体(tegalog.cgi)の設置してあるディレクトリに、この「TegUp」の本体である tegup.php ファイル1つを置くだけでセットアップは完了します。 一度設置すれば、以後ずっと使えます。 詳しくは後述しますが、てがろぐの管理画面HOMEから直接TegUpに移動できます。
ボタンを押して、1~2秒でバージョンアップ完了
バージョンアップ処理は、たいてい1~2秒くらいで完了します。
具体的には、この「TegUp」は、だいたい以下のような作業を全自動で実行します。
- 新バージョンのZIPファイルを自動で(作者サイトから)ダウンロードしてきます。
- そのZIPを展開して、てがろぐ本体ファイルだけを抜き出します。
- いま稼働中のてがろぐ構成ファイルを念のためにZIPにバックアップ圧縮しておきます。
- いま稼働中のソース1行目にある Perlパス(=シバン行)を抜き出して、新ファイルに適用します。
- いま稼働中のソース冒頭にある13個の設定値も抜き出して、新ファイルに適用します。
- その書き換えた新ファイルを、稼働中のてがろぐ本体ファイルに上書きコピーします。
- それらのファイルを、今まで稼働していたてがろぐ構成ファイルと同じパーミッション値に再設定します。
……というわけで、必要な作業は全部PHP側がやってしまうので、手動で操作する必要があるのは「ボタン1クリックだけ」です。
※バージョンアップ作業を開始する前には、念のために『いま稼働中のてがろぐ』の構成ファイルをZIPに圧縮してバックアップしておく仕様になっています。もし何らかの問題が発生して正しく動かなくなった場合でも、そのZIPを展開して上書きすれば、元のバージョンに戻せます。 (TegUpが過去に生成したバックアップZIPは、次にTegUpがバージョンアップ作業をする際には自動で削除されます。なので、放置していても無駄にZIPファイルが蓄積されることはありません。)
てがろぐ管理画面HOMEから実行できる
バージョンアップ版が存在するとき、てがろぐの管理画面HOMEにアクセスすると、下図のように「バージョンアップして下さい」ボタンが見えます。 TegUpを設置している場合は、このボタンを押すと、TegUpに移動できます。 (※TegUpが設置されていない場合は、このボタンのリンク先は、公式ドキュメントのバージョンアップ方法案内区画になっています。)
直接 tegup.php にアクセスする方法でもバージョンアップは可能です。
▼通常は、てがろぐ側のログインが必要:
しかし、標準設定では(たとえ tegup.php に直接アクセスしても)てがろぐにログインしている状態でないと実行できないようになっています。(第三者が勝手にバージョンアップすることはありません。)
▼ログイン不要で実行できるように設定も可能:
しかし、TegUp側の設定で「ログインしていなくても実行を許可」の値に設定しておくこともできますから、(ローカルで稼働しているとか、Basic認証の影響下で使用しているなどで、第三者がアクセスする可能性がないと確実に言える場所に設置しているなら)非ログイン状態でも直接バージョンアップ可能なようにもできます。
詳しくは、オプション設定項目をご覧下さい。
てがろぐ本体(tegalog.cgi)に直接記述する設定変更にも対応・ファイル名の変更にも対応
上記の作業ログにも出てきますが、この TegUp では以下のように「いま稼働中の tegalog.cgi ソース」から各種設定値を抽出して、新しくダウンロードしてきた新バージョンの tegalog.cgi に同じ設定値を書き込みます。 なので、CGIソース中に記述するタイプの設定値を変更している場合でも、その設定値を維持してバージョンアップができます。
tegalog.cgi のファイル名を例えば index.cgi 等に変更して稼働させている方もいらっしゃると思いますが、その場合でもちゃんと下図のように「変更後のファイル名」で上書きします。(※ただし、どんなファイル名に変更しているのかを最初にTegUp側に設定しておいて頂く必要はあります。)
簡単設置:てがろぐ本体と同じディレクトリに置くだけ!
- わずか1個のPHPファイルを、てがろぐ本体と同一のディレクトリにアップロードすれば使えます。(※TegUpを設置している場合は、てがろぐの新バージョンが公開されると、てがろぐ管理画面からTegUpへ直接移動できるようになります。)
- このスクリプトは、(てがろぐ本体とは異なり)PHPで記述されています。PHP 5.2以上が使えるサーバでなら使えます。詳しくは後述の設置方法項目をご覧下さい。
※注:てがろぐCGIが動作しているサーバでも、PHPが使えないサーバなら、TegUpは動作しません。