あひるに焼かれた話と今後のおーぷん万葉について
TRANSCRIPT
今日は初の方もいらっしゃるので自己紹介
● 東海道らぐ関東の案内人(元名古屋案内人)– 東海道らぐ5周年!!!– サーバー管理人…からは脱却する予定 ←今日のお題
● ちびぎーこ保護者会(別名:日本openSUSEユーザ会)の人– こちらも最近は・・・^^;;;
● 最近は日本語入力についていろいろ勉強中。– 今日のお題その2
近況報告(1)
● 引っ越しました!!!– 引っ越し前:
● 2LDK 約45平米● 2階で目の前は家!● 最寄り駅 徒歩25分● 家賃 75,000円
– 引越し後:● 3DK 約50平米● 4階で見晴らし良好!(但しエレベータ無し)● 最寄り駅 徒歩8分● 家賃 80,000円
もちろんめちゃくちゃ楽!!
引越しコストが高かったけどorz
近況報告(2)
● 東海道らぐサーバ(Web & ML)も引っ越しました!!– 引越し前:
● Ubuntu 12.04 LTS(←インストール時に間違えたんじゃいw)● Apache 2.2● Mailman
– 引越し後:● Ubuntu 16.04 LTS (←これで5年は使える!!w)● Apache 2.4● Mailman
事の発端は…
だがしかし、そもそもOSはそろそろEOLを迎える
→ どうせならOSごと再インストールだな
→ あひる「Let’s Encryptまだ〜?」と催促
→ 「ちょっと待て!」と応戦(すること約半年w)
→ …あれこれやるうちに8月にやることにした
→ が、その8月に自分自身の引っ越しとなったw
→ 大炎上!(^^)!
東海道らぐサーバーにLet’s Encryptを導入しましょう!!!
今回の引越し作業でハマったこと
● mailmanがDebian/Ubuntu系でUTF-8対応
→ 文字化けのせいでメールが送信できない!??
● Apache2.4系になった
→ 「Require all granted」を使いましょう!!
→ mailman付属のapache.confの置き場所が変更?
● その他– あひると最後の攻防(謎)
1. mailman文字化け対応(1)mailman(MLサーバー)からメールを送信しようとすると下記のログを残して落ちてしまう…
Aug 21 16:10:07 2016 (13405) Uncaught runner exception: 'utf8' codec can't decode byte 0xc5 in position 0: invalid continuation byteAug 21 16:10:07 2016 (13405) Traceback (most recent call last): File "/var/lib/mailman/Mailman/Queue/Runner.py", line 119, in _oneloop self._onefile(msg, msgdata) File "/var/lib/mailman/Mailman/Queue/Runner.py", line 190, in _onefile keepqueued = self._dispose(mlist, msg, msgdata) File "/var/lib/mailman/Mailman/Queue/IncomingRunner.py", line 130, in _dispose more = self._dopipeline(mlist, msg, msgdata, pipeline) File "/var/lib/mailman/Mailman/Queue/IncomingRunner.py", line 153, in _dopipeline sys.modules[modname].process(mlist, msg, msgdata) File "/var/lib/mailman/Mailman/Handlers/CookHeaders.py", line 226, in process i18ndesc = uheader(mlist, mlist.description, 'Reply-To') File "/var/lib/mailman/Mailman/Handlers/CookHeaders.py", line 68, in uheader return Header(s, charset, maxlinelen, header_name, continuation_ws) File "/usr/lib/python2.7/email/header.py", line 183, in __init__ self.append(s, charset, errors) File "/usr/lib/python2.7/email/header.py", line 267, in append ustr = unicode(s, incodec, errors)UnicodeDecodeError: 'utf8' codec can't decode byte 0xc5 in position 0: invalid continuation byte
Aug 21 16:10:07 2016 (13405) SHUNTING: 1471763406.166946+da420da292e58a12f0210c1f63f729395700e571
落ちた・・・
1. mailman文字化け対応(2)
肝はこれですね↓
UnicodeDecodeError: 'utf8' codec can't decode
→どうやらmailmanのWeb設定画面で 文字化けが発生していることが原因らしい。。
(え、Web画面の文字化けが原因でメール送信できないの??)
– LILOの西山さんのブログを参考にWeb設定画面の文字化けを修正しました。
http://blog.n-z.jp/blog/2016-04-30-mailman-error.html
(ありがとうございました〜!!!)
2. Apache2.2→2.4対応 (1)
Apacheのアクセス制限の書式が変わった
知ってる方も多いと思うのでここは簡単に。(詳しくはググってください^^)
– Apache2.2:
Order allow,denyAllow from all
↓
– Apache2.4:
Require all granted
LPICでも出題される基本的な箇所
…が、仕様変更したのね。。。
2. Apache2.2→2.4対応 (2)
mailman管理画面にアクセスしようとすると「404 Not found」が返ってくる (そこはせめて「500」だろ…orz)
※このせいでmailmanのWeb設定画面が表示できなかった
→どうやらアクセスしようとするとApacheが落ちてる…
mailmanの付属ファイル = apache.confの置き場所が変わった!!!
Ubuntu 12.04 : /etc/apache2/site-available→ Ubuntu 16.04 : /etc/apache2/conf-available
以前はsite-availableに置いて普通に動いてたけどそこに置くとApacheが落ちるようになったとか
…豪快ですねw(てか気づかないよ〜!!)
原因
というわけで東海道らぐ鯖の今後。
● Let’s Encryptに対応
→SSLがオレオレ証明書ではなくなりました!
→東海道らぐWebページが常時SSLに!
あひるさんが一昨日対応済み
● 今後はおいらと、しまださんと、あひるさんでサーバーメンテを行います。。。(たぶん)
7月末のOSC京都にて…
かな漢字変換「Genji」のrc phase1をリリース!
…が、今回は「まず動くこと」が第一だったので本当に動くくらいの機能しかなかったw
そもそも変換のための辞書ファイルを行きの新幹線で作成してる始末だったのでまともな変換ができるわけなかったorz
「Genji rc phase1」の実力
● できたこと– 当然「わたしのなまえはなかのです」は変換可能– 「あひるやき」も変換できた
● できなかったこと– 「きょうと」が変換できない ←致命的!!!– 「おおさか」が「大坂」になってしまう
ところでどんな変換アルゴリズムだったのか?
純粋に「文節区切りの単語n-gram」ですと話しただけでひよわさんは理解できたっぽい(さすがだ
例: 「私の名前は中野です」
→ これを単語区切りにするとこうなります
「私」「の」「名前」「は」「中野」「です」→ で、単語n-gramなのでこうなります
「私の」「の名前」「名前は」「は中野」「中野です」→ ただし、文節でデータを区切るので
「私の」「名前は」「中野です」
この単位で辞書データに登録されていました
「私」が来た場合に、「の」はどれくらいの確率で来るのか?というのが辞書データに載っています
Genji rc phase1の全体像
● 辞書作成ツールを作る → 「Kasuga」 / 「Fujitsubo」
– 形態素解析器: mecab + naist-jdic
● 変換ライブラリ作成– ローマ字→ひらがな変換 : 「aoi」
– ひらがな→漢字変換 : 「murasaki」
● 辞書検索ライブラリ– オープンソースライブラリの「ux」を使用
1. 辞書作成
「Kasuga」
– Mecab & naist-jdic を利用して形態素解析を行い文節単位に区切って、データをSQLiteで保存
– この際に単語n-gramの確率も保存します
「Fujitsubo」
– SQLiteで保存されたデータをGenjiで使えるように変換
– OSSライブラリuxを利用して辞書を作成します
2. 変換処理
「aoi」– ローマ字→ひらがな変換のライブラリ– 独自のTrie実装!(前に東海道と小江戸オフそれぞれで話したかも)
「murasaki」– ひらがな→かな漢字変換のライブラリ– uxで保存されたデータを取り出して変換する(わりとえぐい実装orz