サーバのHDDが壊れた

実際は壊れたのではなく、パーティションが破損したというのが正解だと思います。

先日就職活動周りで東京に行っていたのですが、休憩中に会った方と水曜どうでしょうの話題で盛り上がっていました。「もしシステムに障害とか起こったら予告編のBGMを流しそう」とか馬鹿馬鹿しい話をしていたのですが、もしかしたらこれはフラグだったのかもしれません。

さて本題。ブログなどを稼働しているメインのサーバはWindows Server 2012 R2を導入しています。なので当然ながらWindows Updateもあるわけです。たまたま自分のSurfaceとサーバを同時にアップデートしていたのですが、サーバだけ何時間経っても終わらずに「これ途中で詰まっているんじゃないか?」と思い、電源長押しで切ったわけです。これが運の尽きでした続きを読む サーバのHDDが壊れた

FileZillaでFTPSを使う

最近のサーバーはFTPのほかにもFTPSに対応しつつあります。

FTPSというのはFTP over SSL/TLSの略で、FTPはパスワードを含め平文で通信されるため、SSLの中に通してしまおうという考えです。

Filezillaはインストール時にSourceForgeのダウンローダが起動するのであまり好きではないので、Cerberus ftp serverを使用していたのですが、少し不調(パッシブモードでの通信がうまく行われない)ため、FilezillaのFTPSサーバを使うことにしました。その際にFTPSの有効化を施したので、メモとして残しておきます。 続きを読む FileZillaでFTPSを使う

H2Oの設定で手こずった点

結合しても証明書のエラーが出る

h2oはnginxのようにcat 証明書 CA証明書 中間CA証明書 > ssl.crtという感じで証明書を結合しなければなりません。ここで結合すると「証明書がなんかおかしいです」といったエラーが起こりSSLが使用できないという事案が起こりました。

とりあえず問題の結合された証明書を見てみると…

これはダメですわ。ちゃんと改行しましょうね。

これで正しく使用できるようになりました。

ApacheのようにSystemd(かUpstart)から起動できるようにする

ApacheやNginxではSystemdやUpstartから起動するのですが、h2oでは同じようなことができないようなので、自分でスクリプトを書く必要があります。
大学にある自分のサーバー(VineLinux)はh2oをUpstartを用いてデーモン化しています。
書いたら設定をリロードして使えるようにします。ここらへんを参照してください。

このように書けばOKかと思います。しかしUpstartはUbuntu 15.04からSystemdによって置換されてしまうのでこの手段は使えません。おそらくUbuntu 16.04 LTSにアップグレードするときに壁にぶつかるのではないでしょうか。
SystemdのUnitの書き方は次のような感じです。このUnitは現在動いている自宅サーバで使用しています。(おそらく間違えているかと思います。詳しい方教えてください)

systemctl enable h2o.serviceで有効化したらsystemctl start h2o.serviceで使えるようになりますね。
※h2o.confでpidなどを正しく指定しないとこのUnitも動かないです。

サーバの再構築をした

今までWordPressなどが動いている自宅サーバーがとてもとても重いので、一念発起してWebサーバの再構築をしました。

今までの環境(~2015/7)

  • CentOS 6.6 x64(VMware上で稼働)
  • MariaDB
  • PHP 5.6.7
  • Apache 2.4

これからの環境(2015/8~)

  • Ubuntu 14.04 x64(Hyper-V上で稼働)
  • Percona Server
  • HHVM 5.6.99
  • H2O

OSから何まで変わっています。

参考になったサイト

Percona Server

[Ubuntu] aptで、Percona Server(MySQL)を入れる方法
尋常では無いほど詳しく書かれています。

HHVM

Prebuilt packages on Ubuntu 14.04
PHP5よりも速そうなHHVMを使いました。Facebookが作ったと聞くだけですごく速そうです。
service hhvm startと入力したらFastCGIサーバが稼働します。
なお、エイリアスが設定されているのでhhvmコマンド以外にもphpコマンドも使えます。php -vと入れてもバージョン情報が出力されます。

h2oのインストールと設定

H2OでPHP(がちょっとだけ動くまで)

続、PHPとH2OをfastCGIでつなぐ話、暗黒道

新、PHPとH2OをfastCGIでつなぐ話、解決編

うずらさんによるこちらの記事が役に立つのではないでしょうか。

なお、h2oはApacheやnginxのようにUpstart(またはSystemd)から動いてくれないので自分でスクリプトを用意する必要があります。ここに関しては後で書こうと思います。