先日参加させて頂いたインターンシップ先の企業で、不要となったタワーサーバを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, PHPをyum経由でインストールします:
# 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で行いました。もちろん、ローカルネットワークの無線に繋がないように設定することを忘れずに。。私はここでドツボにハマりました。
以上で、外部からアクセスできる環境が整いました。やや電気代や火災などの事故が怖いところではありますが、アルバイトの経験を生かしていじくり倒したいと思います!