!!!Webサーバ(Apache) RedHat9.0には標準でApache(httpd)が[[RPM]]形式でインストールされています(2.0.40)。Apacheは「httpd」というサービスで提供されるWebサーバです。 HTTP/HTTPSを使用したサイトを立ち上げる場合のサーバプログラムとしてよく使われます。 http://httpd.apache.org/ からソースをダウンロードし、ビルド作業を行います(2005/06現在は2.0.54が最新)。 Webサーバはセキュリティに気を使う必要があるため、常に最新版でアップデートすることをおすすめします。 !!Apacheのインストール前に RPM形式でApacheが存在するか、 rpm -qa | grep httpd にて確認します。最新をソースからビルドする場合は rpm -e httpd のように関連ファイルをアンインストールしていきます。 !!Apacheのビルド ソースをダウンロードし「htpd-2.0.54.tar.gz」を解凍して、展開したディレクトリに 移動します。 tar xvfz httpd-2.0.54.tar.gz cd httpd-2.0.54 ビルドは以下の手順で行ってます。なお、SSL対応/WebDAV対応のオプションを有効にしています。 ./configure --enable-module=all --enable-mods-shared=most --enable-ssl --enable-shared=yes enable-dav=yes make make install 「./configure」は1行で入力します。その後、「make」を実行、「make install」を実行で、「'''/usr/local/apache2'''」にApacheの関連ファイルがインストールされます。 configureのオプション指定は御本家の「http://httpd.apache.org/docs-2.0/」に 日本語で詳しく乗ってますので(というよりもApacheについての設定なども含めて) まずはこちらを見るほうがいいかもしれません。 !!設定ファイルを調整 そのままApacheを起動すればWebサーバが立ち上がることになりますが、 デフォルトではテストページなども参照できるようになってます。 ですので、自分で作ったテストページが表示できるように調整します。 設定ファイルとして 「'''/usr/local/apache2/conf/httpd.conf'''」を編集することになります。 要チェックの部分のみ説明します。 !ServerRoot Apacheをインストールしたディレクトリです。たぶん、そのままでOKです(インストーラが自動で設定してくれています)。 ServerRoot "/usr/local/apache2" !ServerAdmin ServerAdmin admin@xxxx.co.jp これは、エラーページで表示されている管理者のメールアドレスです。 特にWebサーバのシステムで使用するわけではないですが、設定しておきましょう。 !ServerName Webブラウザでアクセスする場合のURLを指定します(つまり、これがサーバ名)。 ServerName www.xxxx.co.jp:80 クライアントからは「www.xxxx.co.jp」でアクセスできることになります。 コロンの後の80はHTTPでのポート番号です(省略可能)。 !DocumentRoot 実際のHTMLファイルを置く位置(ディレクトリ)を指定します。 DocumentRoot "/var/html/htdocs" これは、ユーザから参照できないようなところにするのが無難です。 ここでは「/var/html/htdocs」にHTMLファイルを配置するものとします。 !HTMLを配置するディレクトリの設定 Webサーバ上で管理するルートディレクトリでのアクセス情報などを指定します。 Directoryの後のダブルクォーテーションでDocumentRootで指定した ディレクトリを入れてます。 Options FollowSymLinks Indexes Includes MultiViews ExecCGI AllowOverride All Order allow,deny Allow from all Optionsの「FollowSymLinks」でシンボリックリンクもたどる対象にしています。 「Indexes」でURLでディレクトリ指定された場合に、ディレクトリ内のファイル一覧を列挙します。 「ExecCGI」はPerlなどのCGI実行を有効にします。 「AllowOverride All」で、各ディレクトリごとの「.htaccess」ファイルの指定を有効にします。 「Order allow,deny」で、許可・拒否の順にアクセス制御を行います。 「Allow from all」アクセスを許可するホスト(IPアドレスなど)を指定しますが、ここではallでフルアクセスしてます。制限をかけたい場合に使用します。 しかし、ディレクトリ内のファイルが表示されたり、 ルートでCGI実行ができてしまうのは怖いです。 ので、必要な項目以外はカットしてしまいます。 Options FollowSymLinks AllowOverride None Order allow,deny Allow from all CGIが必要な場合や「.htaccess」が必要な場合は、別ディレクトリを 作れば対処できますので、ルートはただ単にHTMLファイルがみることができるだけ、 としておきます。 なお、 Alias /icons/ "/usr/local/apache2/icons/" ... みたいな「Alias」「Directory」の組み合わせが複数あります。 特に使用しないのであれば、これらをコメントにして アクセスできないようにします。 たとえば、「/icons」が有効な場合、 「www.xxxx.co.jp/icons/xxx.gif」みたいにしてアクセスできるようになります。 実体(実際のディレクトリ)は「/usr/local/apache2/icons/xxx.gif」です。 !DirectoryIndex ファイル名が省略して指定された場合の、とりあえず呼び出すファイル名を 指定します。 DirectoryIndex index.html index.html.var index.htm !CGIを置くディレクトリを指定 ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" これで「/usr/local/apache2/cgi-bin/」内にPerlなどの ファイルを置くことにより、CGI実行が可能になります。 このときのURLのディレクトリは「cgi-bin」となります。 http://www.xxxx.co.jp/cgi-bin/hoehoe.pl みたいにアクセスできます。 なお、ScriptAliasのディレクトリ名の最後が「/」である点に注意してください。 !ルート以外のディレクトリを参照 上記では「/var/html/htdocs」をルートとしましたが、それ以外のディレクトリを 参照したい場合もあります。 Alias /test/ "/home/htdocs/" Options FollowSymLinks AllowOverride None Order allow,deny Allow from all 上記のような追加を行うと、「www.xxxx.co.jp/test/hoehoe.html」みたいに ブラウザから呼ぶときに「/home/htdocs/hoehoe.html」をみることができるように なります。 コンテンツを分けて管理したい場合に、このような方法は使えますね。 また、各Aliasごとに「.htaccess」の使用やアクセス許可設定を行うことができます。 なお、Aliasのディレクトリ指定では最後に「/」をつける、 のところでは「/」を末尾につけない、という点に注意してください。 !日本語文字化け対策 Linux上でApacheを運用する場合、2バイト全角が化けてしまう、 という現象にまれに出くわします。 設定ファイル「httpd.conf」にて、以下の二カ所を見直すことで 回避できることが多いです。 AddDefaultCharset off 「AddDefaultCharset」の記述部分でoffを指定します。 デフォルトの文字列はApache内では「iso-8859-1」らしく、これを 使用しないようにしてます。 また、 LanguagePriority ja en ca cs da ... のように、「LanguagePriority」で日本語(ja)を先頭に持ってきます。 !!Apacheサービス起動 /usr/local/apache2/bin/apachectl start !!Apacheサービス停止 /usr/local/apache2/bin/apachectl stop !!Apacheサービス再起動 /usr/local/apache2/bin/apachectl restart