昨日(2022年3月26日)、関西新文化振興会 公式サイトを再構築しました。その際、rNoteを静的サイト構築ツールとして使用することとなったので、その手順をここにメモします。
rNoteとは
rNoteは2004年に公開されたblogツールで、ずいぶん前に更新が終了しています。基本、php4上で動かす前提で作られており、php5では動きますが、php7以降では動きません。以前はphp5が動くレンタルサーバが多かったものの、最近は減ってきていることから、別システムへの移行を検討しました。しかし、設定を色々しており移行も面倒だったため、rNoteを自宅Windows10上で静的サイト構築ツールとして使用して、必要ファイルをサーバにアップロードすることにしました。
本記事の前提条件
本記事の前提条件は、現在公開中のサイトをrNoteで構築している、独自ドメイン(以下の説明では example.jp とします)を使用している、そのサイトでは内容によって構成を変えるとか色々していて単にWordPressなどへの移行をするにはかなりの手間がかかる、つっこみ(コメント)や掲示板機能を使用しない、手元にWindows10があるのでそれを使用するといったあたりです。rNote の一般的な使用法については、本記事では説明しません。なお、移行前に掲示板等を使用していても、この手順で移行後に掲示板等を使う気がなければ大丈夫です。
なお、今から新規にサイトを作る方は、WordPressなり、静的サイト構築ツールなりを使って自由に作れますので、この記事は参考にしなくて良いと思います。
手順
本手順を、手元のWindows10から行います。手順の都合、全て同じマシンで行うのが良いでしょう。この手順は、記事を増やすごとに実施することになります。ただし、①から④と⑨は、一度実施したらPCを変更するなどしなければ実施する必要はないはずです。
① 手元のWindows10にxamppをインストール
XAMPP のダウンロード・インストール方法と基本的な使い方あたりの記事を参考に、php5が使用できる xampp-win32-5.6.30-1-VC11-installer.exe あたりを手元のWindows10にインストールします。
以下では、インストールフォルダを D:\TOOL\xampp であるとします。
② .htaccess ファイルの設定
rNoteの rnote.php ファイルと同じフォルダにある .htaccess ファイルの最後に、以下の1行を追記します。
php_flag display_errors off
①の環境でrNoteを動かすと結構な数のエラーが表示されますが、軽く確認したところ問題ないエラーしか出ていないようなので、表示しないように設定します。思ったように動かず、原因が不明で困った場合は、この記述を消してみてエラーメッセージに向き合ってもいいかもしれません。
③ httpd-vhosts.conf 設定
D:\TOOL\xampp\apache\conf\extra\httpd-vhosts.conf に以下を追記します。
<VirtualHost *:80> DocumentRoot "D:/TOOL/xampp/htdocs/example.jp" ServerName example.jp </VirtualHost>
④ HTTrack Website Copier のインストール
【httrack】ホームページを丸ごとダウンロードできる便利ツールあたりの記事を参考に、HTTrack Website Copier を手元のWindows10にインストールしてください。
①から④までは、一度実施したらPCを変えるなどしなければ実施する必要はありません。
⑤ 手元ファイル準備
「D:\TOOL\xampp\htdocs\example.jp」フォルダを作成した上で、手元にあるサイトを構成するファイル一式(rnote.php ファイルを含む一式)をフォルダ構成を保ったままコピーします。2回目以降は、変更するファイルのみ触ればいいはずです。
⑥ Apache稼働・hosts ファイル変更
「スタートボタン」→「XAMPP」→「XAMPP Control Panel」をクリックし、Apache の右側の「Start」ボタンをクリックします。
C:\Windows\System32\drivers\etc\hosts ファイルを管理者権限で開いたメモ帳で開いて、最後の行に
127.0.0.1 example.jpとして保存します。以後の作業の都合、ブラウザのキャッシュは消しておいた方が良いと思います。
⑦ rNoteの再構築
管理者ツール( rnoteadmin.php )にブラウザで独自ドメインを指定してアクセスし、CREATE LOG CACHE をクリックした後に、サイトを再構築します。ここでは、hosts ファイルを変更しているので、自分のマシン上に構築されたサイトにアクセスしています。勘違いしないように注意してください。
⑧ サイトの一括ダウンロード
HTTrack Website Copier にて、http://example.jp/をまるごと 「D:\www\www-htdocs」(例) にダウンロードするよう設定して HTTrack Website Copier を終了します。必要に応じて、【httrack】ホームページを丸ごとダウンロードできる便利ツールあたりを確認して作業してください。こちらも、hosts ファイルを変更しているので、自分のマシン上に構築されたサイトにアクセスしています。勘違いしないように注意してください。
「D:\www\www-htdocs\example.jp」(ダウンロード設定次第で細部は異なります)フォルダにある「hts-log.txt」を見て、
22:17:32 Error: "Not Found" (404) at link example.jp/img/abcde.pdf (from example.jp/abcdefg/)などとなっていた場合は、「D:\www\www-htdocs\example.jp\example.jp\img」フォルダに「abcde.html」ファイルがあると思います。これは、404エラーの時のファイルですので次の⑨で404エラー処理が行えている場合は「abcde.html」ファイルを消して大丈夫です。時間があるなら、元のrNoteを構成していたファイル群の内容を確認して、不要なリンクを消した方が良いとは思います。
⑨ 公開用 .htaccess ファイル準備
このままでは、公開するファイルに .htaccess ファイルがないことになります。「D:\www\www-htdocs\example.jp\example.jp」(ダウンロード設定次第で細部は異なります)のルートになる index.html ファイルがあるフォルダには、.htaccess ファイルがないはずです。そこで準備します。
ここでは、公開用 .htaccess ファイルを「D:\www\www-send\example.jp-temp」(例)に保存することにします。まず、「D:\TOOL\xampp\htdocs\example.jp」フォルダの .htaccess ファイルを「D:\www\www-send\example.jp-temp」フォルダにコピーします。このとき、404、500等のエラーの際に表示するためのエラーファイル(例:error.html)がある場合は、それもコピーします。
以下、コピーした .htaccess ファイルを編集します。まず、②で追記した「php_flag display_errors off」は不要ですので、コピーしたファイルからはこの行を削除します。RewriteRuleの内、rnote.php が含まれる行も全て削除します。「DirectoryIndex rnote.php」の行は、
DirectoryIndex index.htmlと書き換えます。
そして、今書き換えた「DirectoryIndex index.html」の一つ前の行に、
RedirectMatch 301 ^([^.]*[^/])\.htm$ $0lを挿入します。これは、rNoteが*.htmでファイルを作るのに対して、HTTrack Website Copierでファイルをダウンロードすると*.htmlとなるため、googleなどから以前のURLで飛んできた人に対して適切に転送するための設定です。ちなみに、当方環境では上記でちゃんと動いていますが、RedirectMatchについてはあまり詳しくはないので、うまく動かないときは自分で調整してください。
⑨は、一度実施したら通常は実施する必要はありません。
⑩ Apache停止・hosts ファイル変更
「XAMPP Control Panel」のApache の右側の「Stop」ボタンを押して、Apacheを停止した後、「XAMPP Control Panel」を終了します。
C:\Windows\System32\drivers\etc\hosts ファイルを管理者権限で開いたメモ帳で開いて、最後の行にある「127.0.0.1 example.jp」を
#127.0.0.1 example.jpと変更して保存します。以後の作業の都合、ブラウザのキャッシュは消しておいた方が良いと思います。
⑪ データアップロード
「D:\www\www-send\example.jp」フォルダを作成し、「D:\www\www-send\example.jp-temp」フォルダと、「D:\www\www-htdocs\example.jp\example.jp」フォルダの内容をコピーします。2回目以降は「D:\www\www-send\example.jp」フォルダを一旦空にしてからコピーした方が良いと思います。
後は、「D:\www\www-send\example.jp」フォルダの内容をftp等でサーバにアップロードすれば作業終了です。2回目以降は、サーバ側のhtmlファイルを一旦全て削除するか、少なくともindex????.htmlとなっているファイルは消してからコピーした方が良いかもしれません(未確認)。後はブラウザでサイトが正常に表示されているか確認すれば大丈夫でしょう。
なお、3月にブログを更新するのは、なんと2010年以来となりました。