Apacheでホームページを立ち上げる


はじめに

やりたいことは単純です。CPUに486が使われている古いノートパソコンを使って、自宅Webサーバーを立ち上げたいというだけです。FreeBSDを使って、Apacheを起動してやれば486でも軽快に動くと聞きました。色々と調べているうちに実践したいと思い立った訳です。しかしなぜLinuxではないのか?それは単に人とは違うことをやりたかった(笑)という理由です。当然苦労するでしょうね。でも本当のことを言うと、Linuxはディストリビューションが多すぎて、あまりにも方向性が絞れないから、私の最大の目的(安定性)を満たすものがどれなのかわからなかったというのが本音です。その点FreeBSDなら安定志向の私にぴったりと言えます。たぶん..

Apacheって凄すぎる!!

Apacheというアプリ程、知名度が高いフリーなアプリも珍しいですよね。ここまで高性能で安定性信頼性が高く、そして完全にオープンリソースなアプリなんて凄すぎます。@ITでも特集が組まれていますので、Apacheについて知りたいぜ、という方はこちらを参照してみて下さい。きっとチャレンジしてみたくなるに違いありません。それくらい凄いアプリです。

私も自分なりにApacheを使うメリットをまとめてみましたので、良かったらこちらを読んでみてください。

Windowsで自宅Webサーバーを立ち上げてみた感想

Apacheの話は少しだけ置いておきましょう。私は既にWindowsを使った自宅Webサーバーの立ち上げには成功しました。Windows環境でWebサーバーを構築するのは、比較的容易に出来ます。NT系のWindowsなら比較的安定した動作も期待出来ます。しかしWindowsが軽快に動作するには、それなりにマシンスペックを必要とします。古いノートパソコンで自宅Webサーバを立ち上げるには厳しいです。

そこでFreeBSDによるWebサーバー立ち上げを思い立ちました。ここでApacheの登場です。しかし現実はかなり厳しいです。まずFreeBSDはWindowsとは勝手が違うので、UNIXとしてのFreeBSDの操作を覚えるまではかなり手強いと感じます。実際問題、UNIXについてのそれなりの知識が必要になりますので、始めてその日にサーバーを立ち上げて運用に成功する方は極まれでしょう。FreeBSDに慣れる必要があるからです。

もし短期間で手間をかけずに自宅Webサーバーを立ち上げたいのなら、こちらのサイト(Kent Web)を参考にしてWindows環境で構築すると良いでしょう。主にcgiを扱っているサイトですが、自宅Webサーバーの立ち上げ方法としてcgiを使える環境までセットアップする手順が丁寧に紹介されています。実際私もこちらのサイトを参考にして、Windows環境で自宅Webサーバーを立ち上げて約1年間運営してきました。cgiの完成度も高いので今でも幾つか利用させて頂いています。非常に優れたcgiを配布している上、サポートもしっかりした文句の無いサイトです。蛇足かも知れませんが、KentさんのcgiはApacheの環境でも問題なく動作するため、cgiの知識をお持ちでない方は是非一度訪れてください。超お薦めサイトです。

FreeBSDにApacheをインストール

さて、FreeBSDApacheをインストールしましょう。FreeBSDなら手っ取り早くPackageインストールを使えば、簡単にApacheをインストールできます。Packageによるインストールでは、最新のApacheをインストールすることは出来ないかも知れませんが、簡単にインストールできるのでお薦めです。取りあえず勉強するなら早いほうが良いに決まっています。後から何度でもやり直しは出来ますので、是非簡単なPackageからインストールして、今すぐ始めて見て下さい。ソースコードをゲットしてインストールする手順はこちらにまとめました。ただしPackageインストールの手順についてはここでは触れません。FreeBSDをインストールする過程でPackageインストールの方法に殆どの人がお気づきだと思うし、そういう手順を紹介したサイトはいくらでも見つかるからです。

まずFreeBSDを色々と触っていれば、Packageからインストールする事は簡単に出来るようになるので心配は要りません。少々厳しい言い方をすれば、その位の知識が無ければ、まだApacheをインストールして実際に運営するには時期が早いと思います。とにかくFreeBSDに触れて慣れることが必要だと思います。でも諦めないで下さい。何も分からない私でも、なんとかここまでたどり着けました。慌てずに楽しみながらFreeBSDに慣れて下さい。気が付いたら簡単に出来るようになっているでしょう。

FreeBSDのPackageに含まれている古いバージョンではなく、最新のApacheをインストールしたいという人も居るでしょう。それらの方法についても、色々な所から情報を得ることができます。書籍は多数出版されていますし、本を買わなくても解説してくれているサイトは探せばいっぱいあります。恐らく思ったより簡単にインストールは行えるでしょう。そしてそれが出来たらFreeBSDの基本操作は身に付いていると言っても良いと思います。

しかしながら、実際はインストールしただけでは終わりません。Apacheデモンストレーションページが見られる様になっただけで満足していてはいけません。UNIXという物を少しでも理解出来れば、エディタを使って設定を変更しなくてはならないことに気づくでしょう。でも臆すること無くチャレンジしてみて下さい。エディタはviemacsがメジャーですが操作は慣れるまで複雑怪奇です。そういう人はFreeBSDにデフォルトでインストールされているeeエディタを使えば良いのです。正直に言って私はいまだにee(Easy Editor)しか使えませんし、環境設定する位のエディタ使用頻度なら、それで事足りています。eeエディタの起動は簡単です。

ee filename

eeエディターは、操作キーも画面に表示されますので、少しずつ覚えれば必要にして十分なエディット作業が行えるハズです。将来的にプログラミングを始めたら、その時初めてviemacsを使い出せば十分だと思います。

Apacheの概念

さて、概念というと大げさに聞こえるかも知れませんが、構えずに読んでみて下さい。まず私が約半年の間Apacheを理解できず苦労した原因は、概念を理解出来ていなかったことです。しかし色々な書籍を読んだり、サイトを回ったりして来た結果、ようやく、おおよその概要が見えてきました。Apacheの基本プログラムは比較的容易にインストール出来ますが、Apacheのインストールだけでは何にもなりません。自分で作ったホームページのhtmlファイルをFreeBSDのマシンに転送する手段が必要です。ここでftpdsambaが必要になってくる訳です(これを明確に紹介してくれているサイトには巡り会えなかったし、本にも書いていませんでした)。こうすれば、Windowsパソコンでhtmlエディタを使って作成したファイルを、FreeBSDマシン(Webサーバー)に転送する事ができるのです。FreeBSDに、Apacheftpd(またはsamba)をセットアップして初めてWebサーバーとして機能するのです。

ftpdにするかsambaにするか、少し考えた結果、私はftpdの方を選びました。なぜかというとsambaよりも簡単そうだったからです。sambaについてはここでは触れません。私はApacheとFreeBSDに標準装備のftpdを使って自宅Webサーバーを立ち上げることにしました。スペックの低いマシンで動かそうというプロジェクトですから、正直なところシンプルイズベストで行きたい訳です。

Apacheの起動と停止

ApacheはPackageからインストールした場合、特別何もしなくても起動する様です。FreeBSDを再起動すればhttpdが動き出すみたいです。httpdが動いているかどうかを確認するには、同じネットワーク上に有るパソコンから、ApacheをインストールしたパソコンのIPアドレスにアクセスしてみれば確認出来ます。家の場合はわかりやすく、192.168.1.80というIPアドレスにしましたので、http://192.168.1.80/とするだけです。正常にApacheがインストール出来て、httpd(Apache)が起動していれば、Apacheのデモンストレーション画面が表示されるハズです。これが表示されないなら、Apacheのインストールが上手く出来ていないか、設定が上手く出来ていないので調べてみましょう。

単にhttpdの起動がなされていないだけなら、root権限から、「apachectl start」と入力すれば起動するかも知れませんのでやってみて下さい。私自身まだ理解が浅いのでハッキリとは言えませんが、このコマンドを入力すれば、本来「/usr/local/sbin/apachectl start」と入力しなくてはならないところを省略できる様です。

私自身のメモも兼ねてApacheのコントロールコマンドを整理しておきます。ちなみに、このapachectlコマンドは、まだ他の機能があるようですが、今のところ私には理解できていません。

用途
コマンド
フルパスコマンド
起動 apachectl start /usr/local/sbin/apachectl start
停止 apachectl stop /usr/local/sbin/apachectl stop
再起動 apachectl restart /usr/local/sbin/apachectl restart

Apacheの設定

Apacheの設定はデフォルトで動きますが、自分用に少し設定を変更しなくてはならないと思います。Apacheの設定は、/usr/local/etc/apache/httpd.confに記述されています。viやee等のエディタで開いて中身を編集して、自分の環境に合う様に設定をいじります。この手の話については書籍も色々出ていますし、LinuxFreeBSDの書籍にも取り上げられていますので頑張って調べてみて下さい。このページではとても紹介出来ない(現時点そこまで説明するスキルがない)ので、書籍をゲットしてくるなりして、自力で設定を施して下さい。ここで唯一言えることは、FTPでアクセス出来るディレクトリをApacheのDocumentRootにするということだけです。ftpchrootで設定されたアカウントがアクセス出来るディレクトリを、DocumentRootに設定するだけです(うまく説明出来ません)。

ftpd実装の確認

嬉しいことにFreeBSDには、デフォルトでインストールされたftpdが有る様です。その存在を確認する為に、/usr/libexec/に移動してlsコマンドを投入してファイルを一覧して下さい。そこにftpdというファイルが有ったらftpdは実装されています。これを起動する為に「/usr/libexec/ftpd -D」というコマンドを入力します。root権限で無ければ実行出来ないと思います。これはデフォルトでは、rebootする度にコマンドを入れてやらなければなりません。毎度毎度わずらわしいと感じる方はこちらを参考にしてFreeBSDが起動した時に自動的に有効になる様設定を施しましょう。

ftpchrootの設定

がとらぼさんのHPを参照して、ftpchrootを設定する事にしました。「/etc/ftpchroot」というファイル(デフォルトでは存在しない)を作成して、そこにユーザー名を記入することで、他のFTPユーザーとディレクトリのアクセス権限を分けることが出来るそうです。

/etc/ftpchroot の記入例

user-webuser
user-ftpuser
user-root

user-の後にFreeBSDのアカウント名を記述する様です。つまりFreeBSDにログイン出来るユーザーアカウントで無くてはならない様です。パスワードの設定も当然FreeBSD本体で行うことになります。FTPでアクセスする際にこのアカウントでアクセスすれば、自ずと各アカウントのHomeディレクトリに導かれるという訳で、Homeディレクトリより上には移動出来ないので、セキュリティ面でも有効だということですね。

考え方によっては容易にセキュリティ設定が出来るということですね。私は自分一人でこのFreeBSDを使うのですが、セキュリティ面だけのメリットを享受したくてこの設定を施しました。話が少し前に戻ってしまいますが、この例の場合は、webuserというアカウントでWebのメンテナンスを行うので、Apacheのhttpd.confに書かれているDocumentRoot記述を「/usr/home/webuser」とする事になります。

とりあえず使えるようになった

Apacheのインストール、ftpdの設定、Apacheの設定とステップを踏んで、ようやくオリジナルのhtmlファイルをApacheが動いているFreeBSDマシンに流し込むことが出来るようになったみたいです。これでなんとか基本的なホームページは作れるようになりました。でもまだまだ先は遠いです。次のステップではCGIを動かします