Linux-PC実験室 2003/03/10  Home <<Back >>Next

Linux8.0HTTPサーバ構築
以前にも何度かLinux8.0でHTTPサーバを構築しているが、手順を整理する意味で、今回またインストールからの手順を繰り返している。前日の設定で、すでにDHCPサーバとIPマスカレードは動作して、インターネットへの接続までは完了している。

■Apacheの設定
[メインメニュー]→[サーバ設定]→[HTTPサーバ]を開く。
[メイン]タブに下記入力する。
サーバー名 www.kin.sytes.net ←NOIPで取得したドメイン名
管理者のメールアドレス kin@pc.sytes.net ←自分のメールアドレス

[サーバ]タブに下記入力する。
ユーザ nobody
グループ nobody
[OK]で保存して終了する。

■サービスの設定
[メインメニュー]→[サーバ設定]→[サービス]を開く。
一覧から[httpd]の[起動時に開始]にチェックを入れて保存し、開始をクリックしてhttpdを起動する。
WindowsのPCからブラウザで192.168.0.1を開き、テストページが開くか確認する。


■FTPサーバの構築
[メインメニュー]→[サーバ設定]→[サービス]を開き、一覧からvsftpdにチェックを入れて保存する。
xintedをクリックして再起動させると、vsftpdが起動する。
WindowsのPCからFFFTPなどを使って192.168.0.1のユーザーのディレクトリにアクセスできるか確認する。

このままでは、アップロードは出来てもユーザーのホームページが見られないので、httpd.confを以下の手順で編集する。


■httpd.confの編集(ユーザーディレクトリをWebページとして公開する設定)
/etc/httpd/conf/httpd.conf ファイルをエディタで開く。
下記太字の行のコメント(#)を追加削除する。
<IFModule mod_userdir.c>
   #
   # UserDir is disabled by default since it can confirm the presence
   # of a username on the system (depending on home directory
   # permissions).
   #
   #UserDir "disable"
   
   #
   # To enable requests to /~user/ to serve the user's public_html
   # directory, use this directive instead of "UserDir disable":
   #
   UserDir public_html

</IFModule>

日本語の優先度を上げる。
LanguagePriority en da nl et fr de el it ja …の行を見つけて、下記のように修正する。
LanguagePriority ja en da nl et fr de el it …

表示の言語が西ヨーロッパ言語にならないようにする。
AddDefaultCharset ISO-8859-1 の行を見つけて、下記のように修正する。
AddDefaultCharset none

/home/kin ←などのユーザフォルダの属性を755に変更する。

ユーザフォルダにpublic_htmlというフォルダを作成し、ホームページをアップロードする。
(例:/home/kin/public_html)

これで、ユーザホームページが利用出来るようになりました。

■CGIが動作するように設定する
/usr/bin/perl ←などのパール関係のファイル(perl***)7個?を/usr/local/bin/ へコピーする。

/etc/httpd/conf/httpd.confをエディタで開き、下記の行を見つける。
AddHandler cgi-script .cgi
この行がコメント化されていたら、#を消す。

httpd.confの一番下に下記の赤字の内容を追加記述する。(パスは適当に書き換える)
#<Directory "/var/www/html">
<Directory "/home/kin/public_html">
Options Indexes Includes FollowSymLinks

AllowOverride None
Allow from from all


Order allow,deny
</Directory>

<Directory "/var/www/icons">
Options Indexes MultiViews

AllowOverride None
Allow from from all


Order allow,deny
</Directory>

#<Directory "/var/www/cgi-bin">
<Directory "/home/kin/public_html/cgi-bin">
Options ExecCGI

AllowOverride None
Allow from from all


Order allow,deny
</Directory>

<Directory "/home/*/public_html/cgi-bin">
Options ExecCGI

AllowOverride None
Allow from from all


Order allow,deny
</Directory>

<Directory "/home/*/public_html">
Options Includes
</Directory>

一番下の<Directory "/home/*/public_html/cgi-bin">以下9行は、ユーザディレクトリをWeb公開する場合必要。


ユーザフォルダのpublic_html内に、cgi-binフォルダを作成し、CGIファイルをアップロードする。
他のサーバで動作していたCGIをFFFTPなどでダウンロードしてアップロードすると、起動しないことがあります。私の場合はまったく動作しませんでした。改行コードが原因らしく、CGIプログラムの1行目PERLのパスを下記のように書き換えたら動作するようになりました。
#!/usr/local/bin/perl --

PerlEditorを使用してCGIを編集していますが、改行コードの設定をLFに変更する必要があるようです。
(RedHatLinux7.3の時は設定しなくても動いたのにな〜?)
一度アップロードして動作していた、CGIファイルをFFFTPでダウンロードして、そのまま新しいサーバにアップロードすると、どうもうまく動かないことがあるようです。ちょっとCGIを編集して上書きしてからアップロードすれば動作するようです。
このあたりはデリケートですね。



今日はここまで!

2003/03/10  Home <<Back >>Next