私のメモです。参考になればいいですが、間違っていたらごめんなさい。16.04LTSから16.04LTSへのアップグレードのメモです。@2018.08.15
--------------------------------------------------------https接続に対応するのため、DN2820FYKHにインストールしていたUbuntu Linux14.04LTSを16.04LTSへアップグレードしたところ、セキュリティの関係で16.04LTSでletsencryptコマンドを使うことができない状態になっていました。16.04LTSから18.04LTSへのアップグレードは比較的スムースなようなので、16.04LTSにアップグレードしてすぐに18.04LTSにアップグレードすることにしました。
万が一に備えて、無くしては困るファイルはバックアップを取ります。16.04LTSへアップグレード直後ですが、多少設定ファイルも変更したので、/etc以下、sshのauthorized_key2をバックアップしました。
16.04LTSでも、ja_JP.UTP-8がLANGに設定されていると、do-release-upgradeでのメッセージが全て文字化けして読めません。そこで、LANGコマンドで文字コードを「C」に設定しておきます。
# LANG=C
準備が出来たら、まずは現在の14.04をできるだけアップグレードしておきます。
もし、全く必要とされないファイルが残っているというメッセージが出たら、autoremoveで削除しておきましょう。カーネルのアップデートをしていると、ヘッダファイルなど容量を食うファイルが残ったままになっていることがあります。。
アップグレードするパッケージがなくなったら、do-release-upgradeコマンドでいよいよ18.04LTSへアップグレードを実行します。
aptのサイトをチェック後、削除されるパッケージの個数、新しくインストールされるパッケージの個数、アップグレードされるパッケージの個数が表示され、続行するかを尋ねられます。ここで「y]を入力するとパッケージのダウンロードが始まり、18.04LTSへアップグレードが開始されます。
パッケージのダウンロードが終わると、Change Logがレポートされます。読み終えた後、実際にインストールが始まります。参考までに、僕のサーバでは、インストールを終えて再起動するまでに次のことを尋ねられました。
再起動後、CMOSバッテリーエラーが出て起動できずに焦りましたが、単にマザボのコイン型電池が切れたことにより、一時的に再起動できなかっただけのようです。、DN2820FYKHを分解してコイン型電池を交換することも試みましたが、CPUファンの下にあり、CPUファンがどうしても外せなかったため、断念しました。電源をコンセントに指して、1分待ってから起動すると何とか起動するようです。
14.04LTS→16.04LTSより変更が少なかったので、次の修正をしました。
インストール時にメンテナのファイルに追記されていた「DefaultRuntimeDir ${APACHE_RUN_DIR}」を追記しました。。
インストール時にメンテナのファイルに置き換えた際、「自動再起動」が無効になりました。コメントアウトされた「// Unattended-Upgrade::Automatic-Reboot "false";」を「Unattended-Upgrade::Automatic-Reboot "true";」にし、aptでアップデートした際に必要であれば自動で再起動するように修正しました。
ライブラリ関係もアップデートされたようなので、もう一度バイナリを生成したところ、make checkでコアダンプしてしまいました。無視しているインストールしても、ちゃんと機能しないようで、僕の力量では直しようがないことから、Hyper Estraierを諦めて、Namazuをインストールすることにしました。
今回はOffice YUAiさんのブログを参考にやってみました。僕の環境では、iptablesでポート443番を開けてからLet’s encryptの導入し、apacheの設定ファイルを修正しました。
ウェブサーバを立てていると、既にport80番をiptablesでACCEPTにしているはずです。それに倣い、443番もACCEPTにしました。具体的には/etc/network/interfaceに記載されているiptablesのルールに、次の2行を追加しました。
上のように設定を終えたら、「/etc/init.d/networking restart」でネットワークを再起動します。また、僕のサーバのように、ブロードバンドルータを介してインターネットにつながっている場合、ブロードバンドルータのポートフォワードの設定で、「tcp 443」をサーバのIPアドレスに転送するよう設定する必要があります。
iptables -Lコマンドで次の行が表示されれば設定OKです。
Office YUAiさんのブログの通り、以下のコマンドを実行して、apache用の証明書取得のクライアントツールcertbotをインストールします。
、apacheの設定ファイルにドメイン名を入力しておく必要があります。/etc/apache2/sites-available/000-default.confファイルに次のようにドメイン名を追記します。
追記したら、apacheを再起動します。
以下のコマンドでapacheに証明書をインストールするようにします。
すると、メールアドレスを入力するダイアログが現れますので、メールアドレスを入力してEnterキーを押します。

マニュアルのURLが現れますので、「Agree」を押します。

先ほど入力したメールアドレスをElectronic Frontier Foundationで共有して良いかを聞かれます。個人のポリシーに従ってYes/Noを入力して先に進みます。

Apacheの設定が始まります。僕の環境では、http接続をhttpsへリダイレクトするか問われ、「Yes」にしました。

リダイレクトの設定が成功したという下のメッセージが表示され、すぐに次のImportant Noteが表示されて設定が終了しました。。


ケータイでhttp://fishers.mydns.jpにアクセスしたところ、ちゃんとhttps://fishers.mydns.jpに接続されていました。
上のメッセージにも書かれている通り、証明書は一定期間内に更新しなくてはなりません。以下のコマンドでcrontabをエディタnanoで編集できるようにします。
最下行に以下を追記します。
上記は毎月15日の23:55にcertbot renewを実行するというものです。追記したら、Ctrl+oで保存し、Ctrl+xでエディタを終了します。。
これまでお世話になったHyper Estraierがmake checkでcore dumpするようになり、とうとう僕には動かすことができなくなりました。名残惜しいですが、老舗のNamazuに変えることにしました。
Ubuntu 18.04LTSでは、「namazu2」というパッケージになります。また、インデックスを作成するのに必要な「namazu2-index-tools」、「libnkf-perl」、「libtext-kakasi-perl」もインストールします。
ウェブサーバで使う/usr/lib/cgi-bin/namazu.cgiを/var/www/cgi-binにコピーし、パーミッションを読み取りと実行、所有者とグループをwww-dataに変更します。
namazuが使うテンプレートもコピーしておきます。コピーしたテンプレートを自分のウェブページに合わせてカスタマイズすると良いです。パーミッションは読み取りにします。
namazuのcgiは同じディレクトリにある.namazurcを優先的に読みに行きます。そこで、設定ファイル/etc/namazu/namazurcをnamazu.cgiのあるディレクトに.namazurcとしてコピーして使います。
設定ファイル.namazurcのコメントアウトを外して、自分の環境に合わせて設定します。以下は僕の環境の例で、#以降は説明で、実際の設定ファイルには記述しません。
| Index | /var/www/cgi-bin/nmz | # インデックスファイル置き場 |
| Template | /var/www/cgi-bin | # テンプレートファイルNMZ.*.ja置き場 |
| Replace | /var/www/html/ https://fishers.mydns.jp/ | # ファイルパスをURLへ変換 |
| Lang | ja | # 日本語で表示 |
| Charset | "ja_JP.ecujp" "ECU-JP" | # 文字セットはEUC-JPに |
編集を終えたらパーミッションは読み取りにします。また、インデックスや結果の表示などで使う文字セットはここで設定したものに合わせます。namazuでは文字セットがECU-JPを前提にしている節があるので、それに従ってECU-JPにしました。
インデックス作成の前に、Ubuntu18.04LTSで使用できる文字セットにja_JP.ecujpが入っているかを「locale -a」で確認します。僕の環境で日本語の文字セットはja_JP.utf8しかありませんでした。そこで、次のコマンドで使用できる文字セットを確認し、EUC-JPをインストールします。
次にインデックスを作成します。デフォルトでは、/usr/share/namazu/filter/hnf.plとmp3ファイルのIDタグを検索する/usr/share/namazu/filter/hnf.pl というnamazuのフィルタがエラーを起こすので、このファイルを名前を変更して無効化します。
インデックスの作成はmknmzコマンドで行います。-Lで文字セットを、-Oで出力先を指定でき、そのあとにインデックスを作成するディレクトリを指定すると、そのディレクトリ以下をインデックス化します。下の例では、animalディレクトリ以下が/var/www/cgi-bin/nmz以下にインデックス化されます。
複数のディレクトリを1つのインデックスにする場合、ディレクトリをスペースで区切って指定します。
注意点として、インデックスは追加だけされてるようです。自宅サーバ程度の規模であれば、定期的にインデックスファイルを全て削除してからインデックスを作成した方が良いかも知れません。
ウェブページで検索が行えるよう、検索機能を付けるページに次の行を追加します。
<form action="https://fishers.mydns.jp/cgi-bin/namazu.cgi" method="get">
<input type="text" name="query" size="50">
<input type="submit" name="submit" value="K's Pageの検索">
<input type="hidden" name="whence" value="0">