MJHD

エモさ駆動開発

サーバのOSをArchLinuxへ

この三日間ほど、サーバのOSの入れ替えを行っていた。

VineLinuxでサーバをたてたの記事でべた褒めしたVineLinuxだけど、正直CentOSと比べたらパッケージは新しいけど、そこまで新しいという訳でもない。最終的にソースからコンパイルして、自分でシンボリックリンクはったりなんだりとかしているうちに、あ、俺向いてないなこのディストリビューション。と思ったためである。VineLinuxが悪いわけじゃない。

そこで、パッケージ数も尋常じゃなく、ほぼ最新版がそろっているArchLinuxに入れ替えた。

ArchLinuxでは、デーモンの管理がほぼすべて、systemctlというコマンドから行えるようになっている。 例えば、CentOSVineLinuxで行っていた、

$ sudo service httpd start
$ sudo chkconfig httpd on

というコマンドは、ArchLinuxでは以下のように行える。

$ sudo systemctl start httpd
$ sudo systemctl enable httpd

とてもわかりやすい。 しかも、デーモンのログも、

$ sudo systemctl status nginx
* nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled)
   Active: active (running) since Sun 2014-07-06 01:49:23 JST; 13h ago
  Process: 23216 ExecStart=/usr/bin/nginx -g pid /run/nginx.pid; error_log stderr; (code=exited, status=0/SUCCESS)
 Main PID: 23217 (nginx)
   CGroup: /system.slice/nginx.service
           |-23217 nginx: master process /usr/bin/nginx -g pid /run/nginx.pid...
           `-23218 nginx: worker process


Jul 06 12:18:15 devlion.net nginx[23216]: 2014/07/06 12:18:14 [error] 23218#..."
Jul 06 14:48:30 devlion.net nginx[23216]: 2014/07/06 14:48:30 [error] 23218#...4
Jul 06 14:48:30 devlion.net nginx[23216]: PHP message: PHP Notice:  Trying to...
Jul 06 14:48:52 devlion.net nginx[23216]: 2014/07/06 14:48:52 [error] 23218#..."
Jul 06 14:49:09 devlion.net nginx[23216]: 2014/07/06 14:49:09 [error] 23218#0...
Jul 06 14:49:23 devlion.net nginx[23216]: 2014/07/06 14:49:23 [error] 23218#0...
Jul 06 14:50:28 devlion.net nginx[23216]: 2014/07/06 14:50:28 [error] 23218#0...
Jul 06 15:01:13 devlion.net nginx[23216]: 2014/07/06 15:01:13 [error] 23218#...4
Jul 06 15:01:13 devlion.net nginx[23216]: PHP message: PHP Notice:  Trying to...
Hint: Some lines were ellipsized, use -l to show in full.

こんな感じで確認することができる。いちいち、/var/logなどを見に行かなくても確認できるようになった。

この辺の便利さのおかげで、割と苦労せずにサーバを構築することができたと思う。


基本的には、Arch Linux でサーバ構築Comprehensive Server Guide - ArchLinuxWikiを参考に、以下のソフトウェアをインストールした。

  • ウェブサーバとして、nginx。
  • メールサーバとして、dovecot+postfix+mysql(VirtualAccountのため)。
  • ftpd, sshd...etc.

やはり、一番時間がかかるのは、メールサーバの構築だった。今回はmysqlを使ってVirtualAccountの設定をしたのだが、参考としてみていたVirtual user mail system - ArchLinuxWikiの内容が一部間違っていたのである。

/etc/postfix/virtual_alias_maps.cf
/etc/postfix/virtual_mailbox_domains.cf
/etc/postfix/virtual_mailbox_maps.cf

の設定ファイルの内容が少し違っていて、正しくはこちらの記事の内容に置き換えたところ、正常に動作した。


今回、Dockerも導入しようかと思ったのだが、Dockerを使っていくつものサイトを運用しているイメージがわかないので、次回に延期した。本番サーバで使っている企業もあるようだが、いったいどういう構成になっているのだろうか。