/home/by-natures/dev*

ソフトウェア開発者として働く人の技術的なメモ

自宅サーバ構築メモ

先日参加させて頂いたインターンシップ先の企業で、不要となったタワーサーバを200円で購入したので、自宅サーバを構築しようと思い立ちました。

購入したのがインターンシップ5日間中の4日目で非常に疲れていたこと、また手で持って帰るという暴挙に出たため、持って帰るのは非常に大変でしたが…おかげさまで、このWordPress自宅サーバ上で無事稼働しています。今回はどのような手順で構築したのかを簡単に紹介します。

購入したサーバのスペックは以下の通りです。

  • CPU:Pentium4 2.4GHz
  • Memory:1GB(512×2MB)
  • HDD:80GB

インストールしたのは、CentOS4系です。5系を入れたかったのですが手元にインストールCDが無く(DVDならあったのですがサーバがDVD非対応)、4系をまともに使ったことが無かったのでいい機会かな、とも思ったこともあり、4系にしました。 インストールは以下の通りに行いました:

インストール自体は大した作業ではなかったのですが、普段使っているキーボードが正しく認識されなかったり、ディスプレイドライバが組み込まれていないのか、とんでもない色の画面でインストールを進めるなど、変な苦労が多かったです。。

それはさておき、サーバのインストールが終わったら、以下の初期設定を行います。アルバイト先ではもっと細かく丁寧に初期設定を行うのですが、自宅サーバで私以外は使わないので、基本的なところだけ。

  • ユーザ作成、sudo許可
  • rootログイン不許可
  • yumでパッケージのアップデート

初期設定が終わった後は、Apache, MySQL, PHPyum経由でインストールします:

# yum install httpd*
# yum install mysql-server
# yum install php php-mysql

インストールした後は、自動起動設定です。これを忘れていると、サーバ再起動後にApacheなどのアプリケーションが立ち上がらず、混乱を招きます。

# chkconfig --level 3 httpd on
# chkconfig --level 3 mysqld on

この作業が終われば、サーバ側の設定は終了です。Apacheを立ち上げて、サーバから80番の応答が帰ってくることを確認します。サーバのIPが192.168.0.5であれば、http://192.168.0.5 などとブラウザに入力すればOKです。

最後にルータの設定です。外部からのアクセスを、ローカルコンピュータであるサーバに転送する設定を行います。私が使っているルータはAtermというルータで、「ポートマッピング設定」という部分を変更します。

注意すべきは、Atermはローカルネットワーク内のコンピュータからサーバに設定したドメインにアクセスしても、パケットを転送してくれない点です。例えばドメイン example.com を取得し、ルータのグローバルIPに割り当てたとしましょう。このとき、外部のネットワークでブラウザにhttp://example.comと入力すれば、今回構築した自宅サーバへのアクセスがなされます。しかしこのアクセスをローカルコンピュータで行ってしまうと、ルータが正しくマスカレードしてくれず、ルータの設定画面にログインしようとしてしまいます。

解決策としては、ローカルコンピュータのhostsファイルに、example.comと192.168.0.5をひも付けしておくことです。最終確認はiPhoneで行いました。もちろん、ローカルネットワークの無線に繋がないように設定することを忘れずに。。私はここでドツボにハマりました。

以上で、外部からアクセスできる環境が整いました。やや電気代や火災などの事故が怖いところではありますが、アルバイトの経験を生かしていじくり倒したいと思います!