Raspberry Pi 3Bに、Western Digital のHDDを繋げて、ownCloud 入れて、ファイルサーバにしてみた。 フロントは nginx + php-fpm で、dbは MySQL である。 というか、この Wordpress と共有。 特に、ラズパイだから、何という要素はなく、普通に Linux のインストール手順で入れただけ。 パフォーマンスも全く問題ないと思われる。 多分、ネットワーク回線の方が遅い。 今時、自分でサーバを持つこと、自分でクラウド環境を作ることにどれほどの意味があるのかは微妙だが、自前でやってみるのは楽しい。 色々、やってみているけど、ラズパイ。 普通にサーバとして使える。 これから暑い季節になるが、冷却ケースくらいは必要かな。。。と思っている。 追記 全然、はまらなかった。。。みたいに書いたが、その後、tmp が小さすぎて、大きなファイルの転送に失敗した。 以前、tmpfs (ramdisk)に tmp を置いて Micro SD の寿命を延ばそうとしていたのが裏目に出た。 今は、HDD で動かしているので、素直に tmp を HDD に動かして解決。
Docker ネタを...
Raspberry Piで、Dockerというネタを書こうかなと思ったが…。 動作自体は64Bitの2B, 3Bだったら問題ないようだけど、CPUがARMなので、ほとんどのイメージがx86_64なDockerだと、結局Raspberry Pi用のイメージを使うという世界になってしまうようで、あまり意味が無いからやめた。 まあ、仮想コンテナとよりも、アプリケーションコンテナの分だけ、ハードウェアを揃えてもいいような世界だしね。。。 スティックPCとかでやったらいいようなネタかも。
Raspberry Pi Zero のパフォーマンス
数値データとかは何にもないです(笑) 感覚的な話。 Raspberry Pi Zero W が届いたので、普段 Raspberry Pi 3B で動かしている、このサイト(笑)を Micro SD だけ入れ替えて起動してみた。 結果、問題なく起動し、サイトも 3B よりかは遅いものの、同時アクセスされることがあまりない、備忘録・日記レベルのサイトならば問題なく動く。という感触。 起動はちょっと時間が掛かるが、それでも、Windows 7 以前の Windows マシンよりかは早いくらい。 メモリの使用状況だが、若干、スワップが発生していて、パフォーマンス的には気にならなかったものの、運用するなら Micro SD の寿命が気になるかなと思う。 処理速度的には遅いものの、省電力、低発熱はすばらしく、iPhone の AC アダプタで問題なく動くし、発熱も 3B が 53℃前後に対して、Zero W は39℃程度と、かなり良好。 悩むけど、やっぱり 3B で継続かな。。。 Zero で本格的に運用しようとすると、結局、ハブだのケーブルだのだらけになって、本体は小さいのに、邪魔な感じになってしまうから。 Zero は USB で PC に繋げて遊べるので、持ち運べるおもちゃになりそう。
Blog in A Box の WordPress の日本語化
WordPress の提供元である Automattic が、Raspberry Pi 用に一発でWordPress環境が構築できるパッケージである Blog in A Box を公開している。 簡単に Raspberry Pi で WordPress 環境が構築できるのだが、残念ながらメニューやテーマの設定が英語版である。 この環境を日本語化するには、以下の手順で行う。 なお、ssh は必須なので、インストールの際に設定しておく必要がある。 ssh で pi ユーザでログインして、以下のようにする。
1 | cd wordpress |
次に、ログインしたときには、日本語化されているはずだ。 なお、このWordPress環境は、cronでアップデートするようになっているらしい。 crontabにwp core language updateも追加しておいた方がいいのかもしれない。 通常の自動アップデートにしたかったら、
1 | sudo chown -R www-data:www-data wordpress |
とすればできるが、セキュリティなどはまた別で考慮する必要がある。
Raspberry Pi Zero /W で USB ケーブルで Windows に接続
Raspberry Pi Zero /W は、USB ケーブルで直接 Windows と接続できる。 名前の解決にBonjour サービスが必要になるので、あらかじめ iTunes をインストールしておく必要がある。 私の場合はiTunesを使う目的で最初から入っていたが。 (iTunesじゃない方法もあるらしい) ssh で接続するまでの手順をまとめると、 Raspbian の入った、Micro SD カードを用意する。 Micro SDのルートディレクトリにあるファイルを編集 config.txt に以下の行を追加
1 |
|
cmdline.txt の行の中間、rootwait の次くらいに以下の内容を追加。 1行の中間に挿入し、改行はしてはいけない。
1 |
|
ルートディレクトリに ssh という名前の空ファイルを作る。 拡張子は無し。 編集が終わったら、Micro SD をデバイスの取り外しで取り外して、Raspberry Pi Zero にセット。 PC と USB ケーブルで接続。 このとき、電源側じゃなくて、 USB デバイス用の方に接続する。 LEDの点滅が収まるまで待つ。 PC 側はドライバがいるので、以下のサイトからダウンロードしておく http://domotique.caron.ws/cartes-microcontroleurs/raspberrypi/pi-zero-otg-ethernet/ フランス語でビビるが “RPI Driver OTG.zip” が落とせればOK。 展開しておく。 PCのマイコンピュータを右クリックし [管理]-[デバイスマネージャ] ポート(COMとLPT)から、 USBシリアルデバイスを探す。 (COM 4)みたいなのがそう。 数字が4かどうかは環境に依存する。 右クリックし、[ドライバの更新]-[コンピューターを参照してドライバーソフトウェアを検索] 先ほどの展開フォルダを指定し、ネットワークアダプターに[USB Ethernet/RNDIS Gadget]が入ればOK。 コマンドプロンプトで、
1 |
|
でつながればOK。 反応がない場合は、手順を再確認しよう。 ここまでくれば、PuTTY などで、raspberrypi.local で、いつもの pi ユーザーでログインできる。 以下の手順で Wifi の設定をすれば、次回以降は無線LANで接続できる。
1 |
|
wpa_supplicant.conf の平文パスワードは消しておいた方がいい。 接続確認は
1 |
|
で、できる。 その後、Macでも試したが、Macで接続する場合は、ドライバが要らないので、楽だった。
Raspberry Pi Zero W
英国から届いた。
下にあるのは、USB Micro B ケーブルの付いた USB ハブ + LAN I/F。 MODMYPI にて、送料合わせて 29 GBP (4000円くらい)くらい。 ちと高い。 国内で正規に手に入るようになったら、半額くらいで買えるかも。
bash on Windows
今更だが、Microsoft謹製の bash on Windows を使ってみた。 といっても、 Windows Creators Update を入れて、コントロールパネルをいじって、管理者モードのコマンドプロンプトで bash と打つだけで入るし、動作する bash 環境も、まんま Ubuntu なので、あまりネタにならない。 どうも、Creators Update よりも前は使いにくい点も多かったようだが、大幅に改善されたようだ。 今はネタにならないくらい、簡単に完ぺきに動くのは驚異的。 apt-get で、いわゆる LAMP (本当は WLAMP になるのか?) 環境を作って、 WordPress 動かしたりするのも、全く Ubuntu と変わらない。 Apache を起動するときに、変な警告が出るので、apache2.conf に以下の 2行を追加。
1 | AcceptFilter http none |
MySQL を起動するときに No directory, logging in with HOME=/ という警告が出るが、実害はなさそうなので、気にしないことにする。 bash コンソール画面を落とすと、システムごと落ちるみたいなので、そこだけは注意。 デーモンとか、 cron の類もデフォルトでは、ほとんど起動していない。 ローカルテスト環境としては、エミュレータの類や、XAMPP よりも便利じゃないかと思った。パフォーマンスもいいように思える。 Microsoft やるな!
バッ〇ァローから、TP-LINKに
表題通り、無線ルータを TP-LINK に換えた。 結果、非常に安定していて、満足している。 無線 LAN がやたらプチプチ切れる問題や、 WAN 側からの設定を禁止しているにもかかわらず、たまに外から設定のログイン画面が見える問題とか、色々解消した。 また、ちょっと説明が難しいが、LAN 内に HTTP サーバがあってポート開放している場合の問題も解消した。 これは、LAN 内に HTTP サーバがあって、ポート開放。 ルータの外側のグローバル IP アドレスに DNS で Web サーバの名前として DNS でサーバ名が設定されている場合、同じ LAN 内の作業マシンから、ルータの外側を示す DNS名(FQDN) でアクセスする (行って来いみたいな感じ) と、外側アドレスを指定しているにもかかわらず、何故かルータの設定画面が見えてしまう問題。 これには hosts ファイルで FQDN を LAN 内のローカルアドレスに名前解決したり、hosts ファイルが使えない端末 (Wifi で繋がった iPhone 等)の場合は hosts ファイルが使えるマシンにローカル proxy を建てて、そこ経由でアクセスしたりとか、色々面倒だった。 TP-LINK のルータだとそうした問題も無く、何も考えずに、ローカルマシンで一旦外を通って、Web サーバにアクセスできる。 設定画面は非常にわかりやすいし、購入前にエミュレーター(なのか?)を触れるのも安心感があった。 中華製 (しかも台湾じゃなくて、大陸) なので、どうだろうとも、ほんの少し考えたが、米国でシェア1位になってる段階で、まあ、問題ないだろうと考えた。 アメリカの消費者は緩いところは緩いが、厳しいところは多分、世界一厳しい。 Consumer Reports なんか見ればわかる。 自動車なんか衝突試験以外は信用しないような人たちがいるんだから。 通信機器だから、変なパケット出したら、一発でばれるしね。。。 ただ一つ残った可能性としては、有事にバックドアを使って、何かしらの攻撃拠点にされる可能性 (DDoSとか)があるかもしれないが、DDoS なんかしたら、真っ先に接続業者から切られるだろうから、まあ、問題ないんじゃないかと。
Simplicity のカスタマイズ --- Google Fonts を使う
このサイトでは、テーマとして Simplicity 2 を使っている。 デフォルトでは、タイトルが大きいと思ったのと、フォントを Google Fonts にしてみたかったので、[カスタマイズ] - [追加 CSS] に以下を追加した。 アルファベットは Bitter 、日本語は Google Fonts + 日本語 早期アクセス にあった M+ 1p にしている。
1 | @import url('https://fonts.googleapis.com/css?family=Bitter'); |
カスタマイズするときは、テーマの style.css のソースを見て、カスタマイズしたいところだけ抜きだして、[追加 CSS]に書くのが一番簡単かなと思った。 追記 言われる前に自分で言うけど、一番最後に入れ子の一番内側で実行されるであろうこのモジュールに @import を書くのは効率的にどうだろうというのはある。 しかし、js のモジュールなんかはもっと冗長に呼ばれているケースがいくらでもあるだろうと思うし、2度目以降のオーバーヘッドは小さいだろうから、気にしないことにしている。
simplicity2
/* ここに独自の CSS を追加することができます。 詳しくは上のヘルプアイコンをクリックしてください。 */ @import url(‘https://fonts.googleapis.com/css?family=Bitter‘); @import url(‘https://fonts.googleapis.com/earlyaccess/mplus1p.css‘); body{ font-family: ‘Bitter’, ‘Mplus 1p’, ‘Hiragino Kaku Gothic ProN’, Meiryo, Helvetica, Arial, sans-serif; } .entry h2 a{ font-size:20px; } .article h1 { font-size:20px; } .top-title-catchphrase{ text-shadow: 3px 3px 5px #000; } #sidebar h3 { margin-bottom: 5px; font-size: 16px; }