インターネットサーバを立ち上げる


参考文献:Apache Webサーバー Black Book(インプレス)

インターネットサーバーは、Yahooや多くのWebサイトで使われている、Apache(アパッチ)を使用します。Apacheも、ほとんどの配布されているCD-ROMの中に入っていると思います。/stand/sysinstallやpkg_add等でインストールしましょう。



Apacheのインストール

pakegesからインストールの場合、以下のようにpkg_addコマンドを使用してインストールします。
なるべく、最新のバージョンのものをインストールしてください。

hoge# pkg_add /usr/tmp/apache-1.3.22_7.tar.gz


既にインターネットに接続出来る人で、portsからインストールする場合は以下の様な感じになります。

hoge# cd /usr/ports/www/apache13/
hoge#  make;make install


Apacheの立ち上げ

まずはクライアント側(Windows)のブラウザから、http://ホスト+ドメイン名/を打ち込んでみてください。
ネームサーバーが立ち上がられていれば、Apacheのホームページ(デフォルト)が表示されてるはずです。また、ネームサーバーが立ち上げられていなくても、サーバーのIPアドレスを直接打ち込めば、表示されます。
APACHE1.GIF - 13,787BYTES

一般ユーザーのWEBページの公開
システムの設定によって異なりますが、FreeBSDに追加したユーザーなら、/usr/home/のディレクトリの中に、各ユーザー名でホームディレクトリが作成されています。
例えば、システムにfreemanと言う一般ユーザーを作成した場合には、/usr/home/freemanというディレクトリが作成されます。
このディレクトリは、sambaで使用されたり、WEBページを公開するときにも利用されたりします。と言うか利用できます。
WEBページを公開するためには、その中にpublic_htmlと言うディレクトリを作成する必要がありますので、public_htmlというディレクトリを作成して、その中にhtmlファイルとか、WEBページ用のファイルを置いておきます。
public_htmlの作成は、各ユーザーがftp接続してきて、public_htmlファイルを作成するのも楽ですが、ここではあらかじめ各ユーザーの為に、あらかじめpublic_htmlファイルを作成しておきます。

hoge# mkdir /usr/home/freeman/public_html
hoge# chown freeman /usr/home/freeman/public_html
hoge# chmod 755 /usr/home/freeman/public_html
suしてルートになってから、
public_htmlを作成しています。
そして、ディレクトリのオーナーをユーザー(ここではfreeman)に変えています。(chown)
ついでに、パーミッションを755にでも変えておきましょう。(chmod)

public_htmlにhtmlファイル等を置いて、クライアントからhttp://hoge.foo.jp/~freeman/○○○.htmlという感じでアクセスをすると、WEBページが観覧できてると思います。~freeman、「~」がミソです。(^^;

httpd.confの編集
(現在のバージョン以降ではhttpd.confの中に全ての設定を記載しておくのが推奨されています。)
Apacheは、httpd.confのファイルの中に記述されている内容を参照して、動作をします。
httpd.confファイルの場所は、インストールされかたによって、まちまちのようですが、FreeBSD4.2Rで、/stand/sysinstallでインストールした場合には、/usr/local/etc/apache/にhttpd.confファイルがあります。

Aliasの使用
Aliasは、ユーザー名とは違う名前でホームページを公開したいときに使用したりします。
機能としては、ディレクトリと、http://で始まる名前との対応付けを行うのですが、以下のようにして使用します。
まずは、httpd.confをエデイタで開いて、以下の内容をhttpd.confの最後にでも追加しておいてください。
Alias /freemans_lab /usr/home/freeman/public_html
httpd.confを編集してApacheを再起動をさせますと、上記の設定が有効になります。
http://hoge.foo.jp/freemans_lab/index.htmlみたいな感じで、ブラウザからアクセスをしてみますと、/usr/home/freeman/public_htmlの中に置いておいたhtmlファイルが、観覧出来ていると思います。
(apacheの再起動は、インストールの仕方によって変わりますが、root権限で/usr/local/sbin/apachectl restartもしくは、/usr/local/bin/apachectl restartです。)

APACHE3.GIF - 18,839BYTES

CGIの設定
ついでにCGIも使用できるようにしてみましょう。

初めから、apacheでは/usr/local/www/cgi-bin/以下のディレクトリの中でGCIは動作するのですが、他の任意の場所でも使用できるようにしてみましょう。

まず、/usr/home/freeman/public_htmlの中にcgi-binというディレクトリを作ります。
hoge# mkdir /usr/home/freeman/public_html/cgi-bin

そして、httpd.confファイルをエデイタで開いて、ScriptAliasで始まる行を探して、先頭に#を記入して、その行をコメントアウトしておきます。
次に、最後の行に以下の内容を追加します。
Alias /cgi-bin/ "/usr/home/freeman/public_html/cgi-bin/"

<Directory /usr/home/freeman/public_html/cgi-bin>
Options ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>

これで、freeman/public_html/cgi-bin以下の中で.cgi .plというファイルがCGIとして動作します。

SSIの設定
SSIを有効にするには、以下の内容を付け加えてください。
<Directory /usr/home/freeman/public_html>
AddHandler server-parsed .shtml
AddType text/html .shtml
Options +Includes
Options IncludesNoExec	#Exec形式でも使用したい場合はここを削除してください。
</Directory>
/usr/home/freeman/public_htmlのディレクトリの中で拡張子が.shtmlのページで、SSIが使用できるようになります。

Indexesの設定
ブラウザから、http:/hoge.foo.jp/freemans_lab/と打ち込んで、index.htmlが見つからなかった場合には、そのディレクトリの中の内容をインデックス表示する機能です。
これが、書いてありませんと、index.htmlが見つからなかった場合、エラーと表示されます。

以下の内容を、最後の行に付け加えて置いてください。
<Directory /usr/home/freeman/public_html>
Options Indexes
</Directory>

尚、セキュリティ面から考えると、この機能を有効にするのは好ましくないようです。
APACHE4.GIF - 11,382BYTES

.httaccessファイルが使用できるようにするには
AllowOverride AuthConfigを追加します。パフォーマンスのことを考えると、特定の範囲内の中で有効にした方が良いと思います。
この例では、上記の設定に便乗して、下記の様に・・・。
<Directory /usr/home/freeman/public_html>
AllowOverride AuthConfig
Options Indexes
</Directory>

尚、全体的な範囲で使用する場合は、 httpd.conf内の、AllowOverride Noneとなっている箇所を、AllowOverride AuthConfigに書き換えます。

他にも、いろいろな設定方法がありますが、詳しくはJAPANIZED APACHE SERVER PROJECTのWebページをご覧ください。


その他
ドキュメントルートにしているディレクトリ/usr/local/www/dataを、ローカルアドレス以外から観覧できないように、以下のように制限してみました。
<Directory /usr/local/www/data>
	Order deny,allow
	Deny from all
	Allow from 192.168.0
</Directory>


BACK