Apache設定メモ
会社がWindows NTサーバーで運用するLotus Notesメールサーバーがスパムメール攻撃 を数回受けたのを機会に、Linux サーバーを導入した。 OSはRedhat 6.2、メールサーバー[Sendmail]、WEBサーバー[Apache 1.3.12]、DNS サーバー[Bind]など。 設置は社内ノウハウがなく、緊急対応の必要性から、外部に委託した。 WEBサーバーの本格運用の必要性から、Apacheの設定をきちんとしようとする次第。 Apacheの機能について十分な知識がないため、まずそのへんを把握してみたい。[00.6?] そして普通のホームページを公開後の作業としては、以下を実施してきた。 1. アクセスカウンターの設置 2. 一部フォルダでアクセス制限(Password利用) 3. 既製のCGI、検索[Namazu]などによるページ追加 4. Frontpage server extensionの設置[01.7] ●今後の課題 1. 再起動時の設定情報の混乱補正 ( httpd.conf内 loadmoduleをfrontpageのため# ;→正常化予定) 2. Security強化 [Antivirus, Cracking, ログ監視の自動化など] 3. 時々 apacheが落ちる。 原因解明 4. Apache 起動スクリプト修正 (httpd.confの場所誤認) ●メモ 1) 解説本に関して ...再chk 2) ログ解析 ...formatも 3) apache起動script 4) リソース再chk ・WWWサーバ管理者ガイドブック関連リンク[8p] ●参考 Netcraft Web Server Survey[英] ---英Netcraft社は、ウェブサーバーで採用されているソフトに関する毎月の調査結果を発表。 2001.12 3628万サイト。 Apache 56.5% , IIS (Microsoft) 30.8%, iPlanet(Netscape) 3.6% , Zeus 2.2% ●Scriptとの関連 Apacheは、サーバーサイドJava, PHP, Perlに関してモジュールを追加するだけで使用可能となる。
■Apache 設定ファイル
当初はNCSA のものを継承しており、 初期ディレクトリ /usr/local/etc/httpd だった。 設定ファイルは /usr/local/etc/httpd/conf 内 httpd.conf srm.conf access.conf mime.types の4つ。[1.3.4以前] なお設定ファイルは現在、httpd.confに集約するように推奨されている。 その後 ●手動インストール時標準 初期ディレクトリ /usr/local/apache 設定ファイル /usr/local/apache/conf 実行形式プログラム /usr/local/apache/bin サーバーログ /usr/local/apache/logs CGIプログラム /usr/local/apache/cgi-bin アイコン /usr/local/apache/icons HTMLドキュメント /usr/local/apache/htdocs ●RPMインストール時 設定ファイル /etc/httpd/conf * httpd.conf システム起動スクリプト /etc/rc.d/ * /etc/rc.d/init.d/httpd サーバーアイコン・CGIプログラム・HTMLファイル /home/httpd/ マニュアル /home/httpd/html/manual, /usr/man 実行形式プログラム /usr/sbin (又は/usr/bin) * httpd サーバーログ /var/log/http *エラーログ等 註)ServerRoot /etc/httpd PidFile /var/run/httpd.pid (サーバーが実行開始時にプロセスIDを記録するファイル)●参考資料
初心者編:日本語版 Apache設定ファイル ---httpd.conf - 日本語版 付属 Apacheの設定ファイル●Apache のディレクトリ構造
Apache の初期設定では、/usr/local/apache が基本ディレクトリとなり、 各パス名は 通常このディレクトリからの相対パスで表わします。 /usr/local/apache ┃ ┣ bin/ 実行ファイル ┃ ┣ libexec/ 実行ライブラリ ┃ ┣ man/ UNIX 用マニュアル ┃ ┣ conf/ 設定ファイル ┃ ┣ htdocs/ コンテンツ保管 ┃ ┣ icons/ アイコン画像 ┃ ┣ cgi-bin/ CGI 専用 ┃ ┣ include/ 開発用ヘッダファイル ┃ ┣ logs/ ログの保存ディレクトリ ┃ ┗ proxy/PROXY 利用時のキャッシュ 註)RPMインストール時は、前項参照。 ●RPM版 ┣ etc/ ┃ ┣ httpd/┳conf/ (httpd.conf,...) ┃ ┃ ┣logs ┃ ┃ ┣modules ┃ ┣ logrotate/━apache ┃ ┣ rc.d/ ┳ init.d━httpd ┃ rc0.d〜rc6.d/K15httpd ┃ ┏Bin (dbmanage,htdigest,htpasswd) ┣ usr/╋lib/Apache mod_*.so ┃ ┣man ┃ ┣sbin (httpd, logresolve, ab, rotatelogs) ┃ ┏log (httpd) ┣var ╋cache (httpd) from apache-1.3.3-1 RPM for i386 ●Apache -Develop /usr/include/apache/*.h /usr/include/apache/xml/*.h /usr/sbin/apxs /usr/share/man/man8/apxs.8.gz from apache-devel-1.3.27-0.3.3.1 RPM for i386
■Apacheの標準搭載機能
Redhat インストール時、Apacheもインストールされ、デフォルト時では、以下の設定になっています。 ・ 環境設定ファイルの場所(httpd.conf など): /etc/httpd/conf ・ ドキュメントディレクトリの場所 /home/httpd あとはアクセス制限などの環境設定を行うことで、運用を開始し、またPerl,C 等CGI を使用可。 ・何がすばらしいのか Apache の構成は、モジュールの追加によって行う。 つまり、モジュールを追加・削除する事により、効率よく、また高機能なApache を構成可能。 以下に代表的な機能。 ・PROXY サーバ ・SSI(サーバインクルード)およびXSSI ・CGI ・さまざまな認証(ホスト名・ユーザ名 等々) ・Keep- Alive ・バーチャルホスト ・Web上からの状態監視 ・ファイルタイプ(MIME)ベースでのスクリプト起動 ・ハンドラ機能 ・CERN- HTTPd のメタファイル機能 ・改良されたImagemap サポート ・エラーメッセージのカスタマイズ ・持ち主の権限でのCGI 実行 ・URLの高度なマッピング ・HTTP/1.1 ・Cookie による、ユーザ判断/追跡 ・CGI のリソース限界設 ★アクセス制限 ・URLをベースとしたアクセス制限をサポート ・アクセスファイル(.htaccess )に記述可能な指示子の追加 ★PROXY機能 ・mod_proxy モジュールの追加により、PROXY機能が追加
■ApacheのPermission
●メモ
★Apache の標準セキュリティ モジュール mod_access アクセスを許可/禁止するhost,domain,ip一覧を作成できる。 mod_auth 認証データベース mod_auth_db 基本的に mod_auth と同じだが mod_auth_dbm mod_auth と似ているが認証情報が DBMファイルに保存される。 mod_auth_anon 有効なユーザー名を認識し、ロボット型検索エンジン巡回を避ける mod_auth_digest ダイジェスト認証メカニズム ★ユーザーに自分のドキュメントへのアクセス制御を許可する たとえば、Apache がインストールされた標準的な Linux の場合、httpd.conf ファイル に次のような行を追加すればいい。AllowOverride AuthConfig Limit ★Htpasswd、Htdigest、Dbmmanage ユーティリティ これら 3 つのユーティリティは一般ユーザーが使えるツールだ。自分の Web ディレクトリ用のアクセス制御ファイルを作成できるが、実行するには管理者である必要はない。ドキュメントは Apache のインストール時に man/man1 サブディレクトリに収められており、次のようなコマンドで読むことができる。 % man /usr/local/web/apache/man/man1/htpasswd.1 このシリーズ記事のはじめに書いた前提事項に従えば、これら 3 つのアプリケーションは /usr/local/web/apache/bin/ ディレクトリにあり、man ページのソースは /usr/local/web/apache/man/man1/ にある。 参考●セキュリティと Apache:初級必読本1[01.4.07] | 2[01.4.07] | 3[01.4.14] | 4[01.4.14] | 5[01.4.21] | 6[01.4.21] | 7[01.4.28] | 8[01.5.12]●管理者などの制限
結局、[オーナー]、[グループ]、[その他]毎の[読み込み],[書き込み],[実行可] の設定次第。 つまりLinuxの問題ということ。 Apacheに関しては、httpd.confで全て指定される。 Apacheのセキュリティ設定入門[ASCII Linux] ★Apache [私的 Q & A] ・設定は全てやりました。でも ~username/ でアクセスすると Permission Denied... そんなときは public_html の httpd 実行ユーザーに対するパーミッションを確認しまし ょう。大抵 755 にすれば OK。 ・ディレクトリ一覧を表示したいのですが、Permission Denied。 httpd.conf 内の対象ディレクトリディレクティブの Options に Indexes を追加しましょう。 ・どうもシンボリックリンクにアクセスできないんですが... httpd.conf 内の対象ディレクトリディレクティブの Options に FollowSymlinks を追加しましょう。
■アクセスログ
●ログの管理 ●サーバーログの所在 /usr/local/apache/logs [手動インストール時] /var/log/http [RPMインストール時] ●ログの種類 アクセスログ、エラーログ ●ログ形式 CLF(NCSA形式)、 ●ログ設定 httpd.conf ErrorLog /var/log/httpd/error_log LogLevel warn LogFormat " (略) CustomLog /var/log/httpd/access_log common *combinedで纏めること可 ●Log Format # デフォルトの設定 LogFormat "%h %l %u %t \"%r\" %s %b" 表 LogFormat変数 %h リモート・ホスト名 %I identによるリモート・ユーザ名 %u ユーザ認証によるリモート・ユーザ名 %t アクセス日時 %r HTTPリクエストヘッダー %s ステータスコード %b 転送バイト数 %f ファイル名 &U リクエストされたURL %v サーバ名(バーチャルホストなど) %{STRING}i リクエスト内のSTRING内容 %{STRING}o レスポンス内のSTRING内容
●アクセスログ管理ツール WEBサーバー:IISの●アクセスログ に一括収録してある。 次ぎのものがよさそう。 ★[share][sregi](1,000円)LogQuick 1.10 アクセスログ集計・解析ツール 分散ファイル集計や不正アクセスの分割表示が行えます (96K) --- IIS/Apache対応。Win95/98/NT/2000。試用期間、機能制限なし。要VB6sp4ランタイム 分割保存されたログファイルをまとめて集計。抽出された明細をCSV形式で保存可。 さらに対象ファイルを指定し、正常アクセスとアクセス違反を分けて集計。 ★Webalizer 2.01[http://www.mrunix.net/webalizer/] ---2.01 [2000.10リリース], Linux +Apache 1.3x ; フリーウェア Webalizerは、ウェブアクセスログを解析し、代表的な結果をHTML形式で表及びグラフを 作成するソフトウェア
●解説 Apache 1.3.12のインストールと設定[12p] --- COMPILEしてセットアップする方法。httpd.confの項目別個別設定解説。 アクセス 制御、Apacheの管理(起動と終了、ログの管理)の解説。 実際的で推奨 ログ管理については、ログ整理用スクリプト例など Apache講座:アクセスログの有効活用法[Rhythm Factory] Apache講座:Apacheのログを日毎に出力[Rhythm Factory]
■Apacheサーバーの起動と終了
●Apachectlを使う場合
●Apachectlの実行
サーバー起動 /usr/local/apache/sbin/apachectl start *再起動 restart サーバー終了 /usr/local/apache/sbin/apachectl stop サーバー状態表示 /usr/local/apache/sbin/apachectl status サーバー設定チェック /usr/local/apache/sbin/apachectl configtest 註)パスは、>/usr/sbin/apachectl status などと適宜変更●Apachectlはどこに?
自分の場合、Apachectlは入っていない。(Redhat 6.2 RPMインストール) >find / -name "apachectl" -ls で探してみるといい。 Mailinglistの書き込みによると、Apacheをコンパイルしてインストールしない場合に は、無いんだそうな。 その場合は、httpd を使用する。 参考●apachectlを使用してみる ---状態表示、起動停止、再起動、設定ファイル文法チェックの機能あり
●自動で起動スクリプト Apache 1.3.12のインストールと設定[12p]によると、 スタートアップファイルの中にサーバーの起動コマンドを書けばよい、とのこと。 Solaris8の場合、標準で含まれるApache起動スクリプト /etc/rc3.d/S50apacheが用意さ れていて、先頭部分に定義されているパス名を変更して流用する。 ●Red Hat Linuxのシステム起動スクリプトを解剖する
---・システムをインストールするときに、将来のサービス拡張を考えてApache(起動スクリプトは/etc/rc.d/init.d/httpd.init)をインストールした。しかし当面はサーバを起動したくない。
Red Hatのインストーラは、Apacheをインストールすると、/etc/rc.d/rc3.d/S85httpdというシンボリックリンクを作成します。起動したくないのであれば、このファイル名をたとえばs85httpd (sは小文字)に変更すればいいのです。/etc/rc.d/rcは先頭が"S" (大文字)のファイルを順次呼び出しますので、次回のシステム起動時にはApacheは起動されなくなります。
・準備が整ったので、Apacheを起動することにしたい。
ファイル名をs85httpdからS85httpdに変更してリブートするだけです。
・rpm化されていないソフトウェアを導入して、起動時にデーモンを起動するようにしたい。
そのソフトウェアの動作の前提条件を調べ、startおよびstop処理を書いたスクリプトを/etc/rc.d/init.dディレクトリに保存します。そしてRunレベルに応じたディレクトリにSnnxxxxという名前のシンボリックリンクを作成します。もちろん他のスクリプトとの適切な前後関係を考慮して、番号を付ける必要があります。また/etc/rc.d/rc0.dおよび/etc/rc.d/rc6.dディレクトリにも、そのデーモンを停止するためのKnnxxxxというシンボリックリンクを作ります。
●Apache 講座:第1章 Apacheの設定:RPMインストール[Rhythm Factory] ---★デフォルトのインストール場所 /etc/http/conf/ httpd.conf,srm.conf... /usr/sbin/ httpd /var/log/httpd/error_log, access_log, referer_log, agent_log /var/run/ httpd.pid, httpd.lock ★Apacheの停止と起動 サーバを起動するためには、単にhttpdを実行するだけです。これはコードにコンパイル されたロケーションにあるhttpd.confを捜します(デフォルトでは/etc/httpd/conf/http d.conf)。もしこのファイルがどこか他にあれば、-f の引数で本当のロケーションを与えることができます。 /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf もし全てがうまく行けば、これは直ちにコマンドプロンプトを返します。これは、サー バが立ち上がって、実行していることを示しています。サーバの初期化の間になにか不都 合が生じると、画面にエラーメッセージが表示されます。 もしサーバの起動がOKなら、サーバに接続するためにブラウザを使い、ドキュメントを読むことができます。 ★Apacheの終了 standaloneで動作させているApacheを終了させるにはroot権限で以下のようなコマンドを使用します。 # kill '/var/run/httpd.pid' もしくは # killalll httpd ★起動スクリプト /etc/rc.d/rc.local if [ -f /etc/rc.d/rc.httpd ] ; then /etc/rc.d/rc.httpd; fi; /etc/rc.d/rc.httpd #! /bin/sh /usr/sbin/rc.httpd ★パーミッション 攻撃を受ける可能性のあるデータを除き、Webサイト内のすべてのファイルが、ユーザとし てrootを、グループとしてwheelを持つようにする。 httpd.confで設定してある User、Groupに属するユーザおよびグループによってファイル の所有権を保有するようにする。
●httpd を使う場合
●httpd の実行
サーバー起動 [ft:~]# /etc/rc.d/init.d/httpd start *再起動 restart サーバー終了 [ft:~]# /etc/rc.d/init.d/httpd stop サーバー状態表示 [ft:~]# /etc/rc.d/init.d/httpd status 註)# ./httpd {start/stop/status/restart} in "/etc/rc.d/init.d" httpd の実行、停止、状態表示、再起動
●httpd を使う場合 設定ファイルを指定する [ft:~]# httpd -f /etc/httpd/conf/httpd.conf サーバールート[ServerRoot]を指定する [ft:~]# httpd -d /etc/httpd
●コマンドオプション
from Apache の利用を開始する 以下に httpd に対してコマンドラインから指定できるオプションを挙げておきます: -d serverroot ServerRoot 変数の初期値に serverrootを設定します。これはコンフィグレーションファ イル中の ServerRoot コマンドで上書きされます。デフォルトは /usr/local/etc/httpd です。 例:httpd -d /etc/httpd -f config 起動時にconfigで指定したファイル中のコマンドを実行します。もし config が / で始 まっていなければ ServerRoot からの相対パスとして解釈されます。デフォルトはconf/httpd.conf です。 例:httpd -f /etc/httpd/conf/httpd.conf またはhttpd -f "/etc/httpd/conf/httpd.conf" -X 内部デバッグのためだけにシングルプロセスモードで実行します。デーモンはターミナル から離れず、子プロセスも fork しません。このモードで通常の Webサービスを提供しないでください。 -v httpd のバージョンを表示して終了します。 -V httpd の設定情報を表示して終了します。 -? httpd のオプションリストを表示して終了します 註)オプションはほかにもいろいろある。 sage: httpd [-D name] [-d directory] [-f file] [-C "directive"] [-c "directive"] [-v] [-V] [-h] [-l] [-L] [-S] [-t] [-T] Options: -D name : define a name for use indirectives -d directory : specify an alternate initial ServerRoot -f file : specify an alternate ServerConfigFile -C "directive" : process directive before reading config files -c "directive" : process directive after reading config files -v : show version number -V : show compile settings -h : list available command line options (this page) -l : list compiled-in modules -L : list available configuration directives -S : show parsed settings (currently only vhost settings) -t : run syntax check for config files (with docroot check) -T : run syntax check for config files (without docroot check) ●参考資料
httpd コマンド httpdを立ち上げる|root権限でのhttpdの起動 in WWWサーバ管理
■Apache モジュール
●モジュール指示子 Apacheにはサーバー設定指示子以外にサーバーの機能を拡張するために指定できるサーバー処理系指示子(モジュール指示子)というものがあります。デフォルトでは20個近いモジュールが組み込まれており、それ以外にも多くのモジュールが用意されておりLoadModule指示子によりそれらを追加することができます。モジュール指示子とその機能についての詳細はApacheのモジュール一覧を参照ください。(モジュール:Apacheに機能を追加する小さなプログラムのこと)
モジュールはこれ以外にも世界中の開発者がそれぞれ独自に開発しており、それらはApacheモジュールの登録サイトであるApache Module Registry http://modules.apache.org/ にて配布されています。
from ●Apache Web Server
●モジュール mod_access ホストベースのアクセス制御の実現を提供する。 mod_actions 特定のファイルタイプが要求されたときに、必ずCGIスクリプトが実行されるようにする。 mod_alias サーバーのファイルシステムを別の場所にマップしたり、URLをリダイレクトしたりすることを可能にする。 mod_asis ドキュメントにHTTPヘッダなどを付けずそのまま送信することを可能にする。 mod_auth テキストファイルを使ってのユーザー認証を可能にする。 mod_auth_anon* 匿名ユーザーにユーザー認証の必要な領域へのアクセスを許可する。 mod_auth_dbm * DBMファイルを使ったユーザー認証機能を提供する。 mod_autoindex index.html等のインデックスファイルがない場合にApacheによって表示 される動的ディレクトリインデックスのタイプを制御できる。 mod_cern_meta* CERN HTTPDが使う追加のHTTPヘッダー形式でメタ情報を指定できるようにする。 mod_cgi CGIスクリプトを実行可能にする。 mod_digest * MD5に基づくユーザー認証を有効にする。 mod_dir ディレクトリのインデックス表示を可能にする。 mod_env 環境変数をCGIスクリプトやSSI(サーバーサイドインクルード)に渡すことを可能にする。 mod_expires * ExpiresHTTPヘッダー情報を使うことを有効にする。 mod_headers * HTTP応答ヘッダーを追加、付加、削除できるようにする。 mod_imap イメージマップを実現する機能を提供する。 mod_include サーバーによって解析されるHTMLドキュメントが使えるように設定する。 mod_isapi Apacheの機能を拡張するためにWindowsのISAPI拡張を利用できるようにする。Windows版のみの機能。 mod_log_config サーバーへのリクエストを共通ログ形式またはユーザー定義のログ形式で記録できるように設定する。 mod_mime 特定のドキュメントまたはファイルタイプに対応した処理方法を指定するハンドラを設定する。 mod_negotiation コンテンツに対して、ブラウザとサーバーが情報をやり取りできるようにする。 mod_proxy Apacheをプロキシサーバーとして機能できるように設定する。 mod_rewrite * URLをリクエスト時にその場で書き換える処理をする。 mod_setenvif 独自の環境変数を作成できるようにする。 mod_speling * ユーザーがURLのスペルを間違って入力した際にそれを自動的に直す機能を提供する。 mod_status サーバーの現在の稼動状態をHTMLページとして表示する。 mod_userdir ユーザーディレクトリの作成機能を提供する。 mod_unique_id* リクエストごとに一意のIDを生成する機能を提供する。UNIX固有の機能。 mod_vhost_alias * mod_usertrack* クッキーの有効期限を設定する。など モジュール名の後ろに*が付いているものは標準では組み込まれていないモジュール。 from Apacheのモジュール一覧
●モジュールの実行環境 ●参考 mod_dav のインストールと設定 Vine Linux - Tomcat --- http://cast.dyndns.org/tomcat.html 次に、mod_webappをApacheで使えるように設定ファイルを修正 # cd /etc/httpd/conf # vi httpd.conf --------------------------------------------------------------------- ServerName localhost LoadModule webapp_module modules/mod_webapp.so AddModule mod_webapp.c
WebAppConnection warpConnection warp localhost:8008 WebAppDeploy examples warpConnection /examples WebAppInfo info configureオプションが知りたい〜バイナリのインストール先を知る〜[ZDNET Tips for Linux] --- ソースからのコンパイルを行う場合,単に./configureと実行するとOS環境を調査し て自動的にコンパイル環境が整えられる。しかし,この時点で意識的にバイナリのインス トール先ディレクトリを変更したり,あらかじめ設定をしておくことが可能だ。
●[httpd.conf]の設定 - Apacheで動的共有モジュールを使用するためには、httpd.confに、そのモジュールに 関するLoadModuleの行とAddModuleの行がなければなりません。 デフォルトで、多くのモジュールについてこの2行がhttpd.confの中に組み込まれています。ただし、あまり一般的に使用されないモジュールはコメントアウトされています。 コメントアウトされたモジュールは、コンパイル中に組み込まれていますが、デフォル トではロードされません。 ●参考 ★自宅サーバーを構築しよう - Apache(httpd.conf)の設定 - Tips: PHPのインストール/Webサーバーの設定 ★Dream-Seed :自宅でサーバーを立ち上げるぞと意気込んでみるサイト -http://www.dream-seed.com/ - Apacheの設定 ★Red Hat Linux 7.1: The オフィシャル Red Hat Linux リファレンスガイド
Prev Chapter 14. Apacheディレクティブとモジュール
■トラブル
●自社WEBアクセス不可〜Apacheダウン(1) 【経緯】2001.8.21 自社webのファイルにアクセスするとDNSエラー
つまり http://www.fukumi.co.jp/ IP指定 http://210.226.186.178/ でも結果は同じ 【調査】 ・設定ファイルの確認 Apache のhttpd.conf ; Bindの設定ファイルは変更なし、中味も変更された気配はない ・動作の確認 [ft:~]# /etc/rc.d/init.d/httpd status httpd dead but subsys locked 註)ありゃりゃ!死んでる! とりあえず再起動しよう [ft:~]# /etc/rc.d/init.d/httpd restart Shutting down http: [FAILED] Starting httpd: fopen: No such file or directory httpd: could not open document config file /usr/local/apache/conf/httpd.conf [FAILED 註)設定ファイルのパスが誤認されてるわ. 変更して再起動します [ft:~]# httpd -f /etc/httpd/conf/httpd.conf [ft:~]# httpd -d /etc/httpd [ft:~]# /etc/rc.d/init.d/httpd start Starting httpd: 【対処】 再起動する。 パスが誤認されているようなら、上のように、設定ファイルを指定して /etc/rc.d/init.d/httpd start 【課題】 Apache起動時に、正しいパスで httpd.confを読み込みようにする必要があるる 以下の様にすると、次回から正しく起動される。[02.1.15] [ft:~]# daemon httpd -f /etc/httpd/conf/httpd.conf
●自社WEBアクセス不可〜Apacheダウン(2) 【経緯】2003.3.11 自社HP http://www.fukumi.co.jp/ にアクセスできないという報告あり。 確かにアクセス不可 【調査】 ・動作の確認 [ft:~]# /etc/rc.d/init.d/httpd status httpd dead but subsys locked 註)ありゃりゃ!死んでる! とりあえず起動しよう [ft:~]# /etc/rc.d/init.d/httpd start Starting httpd: Syntax error on line 890 of /etc/httpd/conf/httpd.conf: Invalid command 'LoadModule', perhaps mis-spelled or defined by a module not inc luded in the server configuration [FAILED] 【原因】 なるほど。 数日前PostgreSQL+PHPを導入。 その過程で一部エラーが出て試行錯誤 したりしたので、そのせいだ。 【対処】 とりあえず、バックアップファイルを書き戻そう。 [ft:~]# cd /etc/httpd/conf [ft:/etc/httpd/conf]# cp httpd.conf /home/httpd/html/ [ft:/etc/httpd/conf]# cp /home/httpd/html/httpd_o2.conf httpd.conf cp: `httpd.conf' を上書きしてもよろしいですか (yes/no)? y [ft:/etc/httpd/conf]# /etc/rc.d/init.d/httpd start Starting httpd: Syntax error on line 210 of /etc/httpd/conf/httpd.conf: Invalid command 'LoadModule', perhaps mis-spelled or defined by a module not inc luded in the server configuration [FAILED] [ft:/etc/httpd/conf]# cp /home/httpd/html/httpd_o.conf httpd.conf cp: `httpd.conf' を上書きしてもよろしいですか (yes/no)? y [ft:/etc/httpd/conf]# /etc/rc.d/init.d/httpd start Starting httpd: [ OK ]
●Apacheが起動できなくなった 【経緯】 設定ファイルは /etc/httpd/conf/httpd.conf なのだが Frontpage server extensionのapacheパッチを当てたら なぜか、/usr/local/apache/httpd.confが読み込めないから起動不可とのエラー 【経過】 [ft:~]# /etc/rc.d/init.d/httpd reload Shutting down http: [FAILED] Starting httpd: fopen: No such file or directory httpd: could not open document config file /usr/local/apache/conf/httpd.conf [ft:~]# httpd -f /etc/httpd/conf/httpd.conf Syntax error on line 209 of /etc/httpd/conf/httpd.conf: Invalid command 'LoadModule', perhaps mis-spelled or defined by a module not inc luded in the server configuration [ft:~]# cd /etc/httpd/conf [ft:/etc/httpd/conf]# httpd -f httpd.conf fopen: No such file or directory httpd: could not open document config file /usr/local/apache/httpd.conf [ft:/etc/httpd/conf]# httpd -V Server version: Apache/1.3.12 (Unix) Server built: May 1 2000 13:51:14 Server's Module Magic Number: 19990320:7 Server compiled with.... -D HAVE_MMAP -D HAVE_SHMGET -D USE_SHMGET_SCOREBOARD -D USE_MMAP_FILES -D USE_FCNTL_SERIALIZED_ACCEPT -D HTTPD_ROOT="/usr/local/apache" -D SUEXEC_BIN="/usr/local/apache/bin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/httpd.scoreboard" -D DEFAULT_LOCKFILE="logs/httpd.lock" -D DEFAULT_XFERLOG="logs/access_log" -D DEFAULT_ERRORLOG="logs/error_log" -D TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" -D ACCESS_CONFIG_FILE="conf/access.conf" -D RESOURCE_CONFIG_FILE="conf/srm.conf" [ft:/etc/httpd/conf]# httpd -d /etc/httpd Syntax error on line 209 of /etc/httpd/conf/httpd.conf: Invalid command 'LoadModule', perhaps mis-spelled or defined by a module not inc luded in the server configuration つまり、/etc/httpd/conf/httpd.confの中の記述にあるmoduleの実行環境がない、というエラー 実際には、/etc/httpd/modules に実行環境はあるのだが、ServerRoot の誤認識してい るためエラー発生。 ●エラー[02.1.28 再トライ→失敗] [ft:/etc/httpd/conf]# /etc/rc.d/init.d/httpd stop Shutting down http: [ OK ] [ft:/etc/httpd/conf]# /etc/rc.d/init.d/httpd restart Shutting down http: [FAILED] Starting httpd: Syntax error on line 210 of /etc/httpd/conf/httpd.conf: Invalid command 'LoadModule', perhaps mis-spelled or defined by a module not inc luded in the server configuration [FAILED] 【原因】 ↓DSO(libexec/以下にあるmod_*.soなどのモジュール)をイネーブルにしている場合は、LoadModule行を全てコメントにします。 これは、FrontPage Server Extensionsによって新たにインストールされるhttpdではDSOがディセーブルになっているのでエラーになるためです。 ClearModuleList, AddModuleもコメントにします。そうしないと、静的に組み込まれたモジュールのリストが全て無効になってしまうためです。 ref.RedHat Linux へのソフトウェアインストールメモ:FrontPage Server Extensions 2002 インストール方法 【対処】 暫定措置として、/etc/httpd/conf/httpd.conf 中のModules関連行を#でCommentout してupload。 #●[01.7.27] module errorのため以下を#でコメントアウト AddModule mod_php3.c 迄 # Example: # LoadModule foo_module modules/mod_foo.so #LoadModule mmap_static_module modules/mod_mmap_static.so LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule env_module modules/mod_env.so LoadModule config_log_module modules/mod_log_config.so LoadModule agent_log_module modules/mod_log_agent.so LoadModule referer_log_module modules/mod_log_referer.so #LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule mime_module modules/mod_mime.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule status_module modules/mod_status.so LoadModule info_module modules/mod_info.so LoadModule includes_module modules/mod_include.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule dir_module modules/mod_dir.so LoadModule cgi_module modules/mod_cgi.so LoadModule asis_module modules/mod_asis.so LoadModule imap_module modules/mod_imap.so LoadModule action_module modules/mod_actions.so #LoadModule speling_module modules/mod_speling.so LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule access_module modules/mod_access.so LoadModule auth_module modules/mod_auth.so LoadModule anon_auth_module modules/mod_auth_anon.so LoadModule db_auth_module modules/mod_auth_db.so LoadModule digest_module modules/mod_digest.so LoadModule proxy_module modules/libproxy.so #LoadModule cern_meta_module modules/mod_cern_meta.so LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so LoadModule usertrack_module modules/mod_usertrack.so #LoadModule example_module modules/mod_example.so #LoadModule unique_id_module modules/mod_unique_id.so LoadModule setenvif_module modules/mod_setenvif.so #LoadModule bandwidth_module modules/mod_bandwidth.so #LoadModule put_module modules/mod_put.so # Extra Modules LoadModule perl_module modules/libperl.so #LoadModule php_module modules/mod_php.so LoadModule php3_module modules/libphp3.so # Reconstruction of the complete module list from all available modules # (static and shared ones) to achieve correct module execution order. # [WHENEVER YOU CHANGE THE LOADMODULE SECTION ABOVE UPDATE THIS, TOO] ClearModuleList #AddModule mod_mmap_static.c AddModule mod_vhost_alias.c AddModule mod_env.c AddModule mod_log_config.c AddModule mod_log_agent.c AddModule mod_log_referer.c #AddModule mod_mime_magic.c AddModule mod_mime.c AddModule mod_negotiation.c AddModule mod_status.c AddModule mod_info.c AddModule mod_include.c AddModule mod_autoindex.c AddModule mod_dir.c AddModule mod_cgi.c AddModule mod_asis.c AddModule mod_imap.c AddModule mod_actions.c #AddModule mod_speling.c AddModule mod_userdir.c AddModule mod_alias.c AddModule mod_rewrite.c AddModule mod_access.c AddModule mod_auth.c AddModule mod_auth_anon.c AddModule mod_auth_db.c AddModule mod_digest.c AddModule mod_proxy.c #AddModule mod_cern_meta.c AddModule mod_expires.c AddModule mod_headers.c AddModule mod_usertrack.c #AddModule mod_example.c #AddModule mod_unique_id.c AddModule mod_so.c AddModule mod_setenvif.c #AddModule mod_bandwidth.c #AddModule mod_put.c # Extra Modules AddModule mod_perl.c #AddModule mod_php.c AddModule mod_php3.c =================== [ft:~]# httpd -d /etc/httpd [ft:~]# httpd -V Server version: Apache/1.3.12 (Unix) Server built: May 1 2000 13:51:14 Server's Module Magic Number: 19990320:7 Server compiled with.... -D HAVE_MMAP -D HAVE_SHMGET -D USE_SHMGET_SCOREBOARD -D USE_MMAP_FILES -D USE_FCNTL_SERIALIZED_ACCEPT -D HTTPD_ROOT="/usr/local/apache" -D SUEXEC_BIN="/usr/local/apache/bin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/httpd.scoreboard" -D DEFAULT_LOCKFILE="logs/httpd.lock" -D DEFAULT_XFERLOG="logs/access_log" -D DEFAULT_ERRORLOG="logs/error_log" -D TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" -D ACCESS_CONFIG_FILE="conf/access.conf" -D RESOURCE_CONFIG_FILE="conf/srm.conf" [ft:~]# /etc/rc.d/init.d/httpd status httpd (pid 811 810 809 808 807 806 805 804 798) is running... [ft:~]# とApacheは起動中。 めでたし... ★参考資料 Apache のインストール RedHat Linux へのソフトウェアインストールメモ:FrontPage Server Extensions 2002 インストール方法 ★今回に該当しないケース Apache(httpd)が起動できない
■バーチャルホスト VirtualHost
●バーチャルホスト VirtualHostとは? Apacheのバーチャルホストでは、名前ベースのものとIPベースのものとがあります。 名前ベースとはDNSサーバのCNAMEレコードを使って、別のホスト名を「あだ名」として 割り当ててバーチャルホストを実現する方法で、たとえば「www.hyperdyne.co.jp」に「h ome.hyperdyne.co.jp」(www.dokokano.co.jpというような別のドメインの名前でも可能 です)という別名を与え、それぞれでApacheのルートディレクトリを違うものにする方法です。
●参考資料 Virtual Hostの設定[Apacheメモ] Apache non-IP Virtual Hosts[2p] ---Virtual Host サポート[p] ---httpd.confでの設定方法解説 Name-based のバーチャルホスト ServerAlias指示子|
指示子 Chapter 6. セキュアサーバの設定 Chapter 14. Apacheディレクティブとモジュール 仮想ホストの使用[3p] httpd.confの設定ディレクティブ[15p] Red Hat Linux 7.1: The オフィシャル Red Hat Linux リファレンスガイド Chapter 14. Apacheディレクティブとモジュール 註)ディレクティブ=設定項目 UNIXの設定等[千葉大附属中学校][6p] ---[WWWについて] /[ファイルのパーミッションについて] [HTTPD] /[HTTPDによるアクセス制限] /[Virtual Hostの設定]
●VirtualHost -Frontpage →Frontpage Server Extensionの導入と設定を参照のこと。
■アクセス制限の参考資料
.htaccess[12p] .htaccessで設定できるコマンドマニュアルを収録しているのがありがたい。 htaccessリファレンス/ユーザー認証[4p] --- コマンドマニュアル Apacheのインストールと設定 WWW Serverの設定例 Install Apache Web Server Tom's Squire :Apache for Win32 インストール済みのApacheの設定: Tom's page Apacheのアクセス制限 Apacheのアクセスコントロールの設定 Solaris-Apache体験記 Apache 詳細設定 技術情報:Apache(UNIX)設定マニュアル
●ツール アクセス制限自動管理システム [www.rescue.ne.jp] --- 登録申請&登録を自動で行うものです。 登録申請時にEメールを記入してもらい、そのEメール宛てに自動生成されたパスワード が送信され、そのメールに書かれたパスワードで、アクセス制限されたディレクトリへ入 ることができるようになります。
■Apacheの機能メモ
●WebDAV Web-based distributed Authoring and Versioning Webオーサリングツールなどからコンテンツを更新するプロトコル ファイルサーバー、あるいはWEBフォルダ、Anonymous FTPと同様機能を構築するための モジュール。 自宅・会社とあちこちからファイルを使う人には便利な機能です。 ●参考資料 Webフォルダーを利用しよう! ApacheにWebDAVを組み込む http://home7.highway.ne.jp/dayan/tips/unix/mod_dav.html apacheの設定をしよう ---http://yosemite.una-g.to/apache/conf.html WebDAVを利用してホームページ作成したい! Webフォルダーを利用しよう! ---Windows +WEBフォルダ、Apache+WebDAVの具体的手順 Linux/Apache Server の Windows 2000/IIS 5.0 への移行[MS Technet] --- [WebDAV (Web Distributed Authoring and Versioning) のサポート] WebDAV は、インターネット ベースの共有ファイル システムを使用して、複数のユーザ ーが同じドキュメントでの共同作業を可能にするインターネット標準です。WebDAV は、 ファイル アクセス権、オフライン編集、ファイルの整合性、およびドキュメントが変更 された場合の競合問題解決に対応しています。WebDAV では、共有ファイルの集中保管場 所としてインターネットを使用することで、組織のインフラストラクチャを拡張すること ができます。 [Web フォルダ] Web フォルダのサポートにより、ユーザーは、WebDAV 対応のサーバーに移動して、ロー カル システムと同じ名前空間の一部であるかのようにそのコンテンツを表示することが できます。ユーザーは、ファイルのドラッグ アンド ドロップ、ファイル プロパティ情 報の検索や変更など、ファイル システムに関わるタスクを実行できます。Web フォルダ を使用すると、ローカル ファイル システム、ネットワーク ドライブ、インターネット Web サイトのどの操作でも、ユーザーの操作性は変わりません。 ●図書 WebDAV入門[2001Justsystem] ---田中伸一(アレフシステムズ)=著 ぐるーぷ・アレフ+ジャストシステム出版部=編 定価:本体1600円+税; 四六判、240ページ
●Anonymous FTP 匿名FTPともいう。 →●FTP_Windows NTに纏めた。
●その他
●Apacheリソース集
■Apache リンク
●リンク集 ・Apache HTTPD ダウンロード、各種情報、関連ソフトウエア他 ・Apache リンク集 ・Apacheメモ Apacheの標準的なインストール/Apacheのアクセス制限/configureスクリプトのヘルプ jweblintのインストール/url_getのインストール/nkfのインストール KAKASIのインストール/namazuのインストール/namazuの運用/ログファイルの分析 wwwstat ログファイルの分析 Web Statistics/ログファイルの分析 SiteServerExpress 1/ログファイルの分析 SiteServerExpress 2 potatoのインストールと運用/バーチャルホストの設定/ほかのドメインに属するホストをDNSに登録する ちょ〜簡単Apache For Win32 (1.3.20+win95等) 300 Apache Web Server Links[英文] ---膨大なリンク集。 解説付き(あまり整理されてはいないけど) ・WWWサーバ管理者ガイドブック関連リンク[8p] ---
●設定ファイル 初心者編:日本語版 Apache設定ファイル[13p] ---httpd.conf - 日本語版 付属 Apacheの設定ファイル Apacheの設定[5p] apache in Tomcat-Apache HOWTO[14p] --- A Users Guide to URL Rewriting with the Apache Webserver 各種サーバ設定 ---NTP サーバ (xntpd) の設定 /Proxy サーバ (squid) の設定 Web サーバ (apache) の設定 /SMTP サーバ (postfix) の設定 POP3 サーバ (popper) の設定 /Mailing List (fml) の設定 /Samba の設定 UNIXの設定等[千葉大附属中学校][6p] ---[WWWについて] /[ファイルのパーミッションについて] [HTTPD] /[HTTPDによるアクセス制限] /[Virtual Hostの設定] Chapter 6. セキュアサーバの設定 ---Red Hat Linux 7.0: Official Red Hat Linux リファレンスガイド [httpd.conf に含まれる設定ディレクティブ][サーバに対するモジュールの追加] [仮想ホストの使用]解りにくいかもしれないが、基礎知識として把握すべき事項を記述 WWWサーバを立ち上げる[10p] ----Apacheのインストール、導入、設定で解りやすく解説。 Apache 1.3.12のインストールと設定[12p] --- COMPILEしてセットアップする方法。httpd.confの項目別個別設定解説。 アクセス 制御、Apacheの管理(起動と終了、ログの管理)の解説。 実際的で推奨
●解説サイト ●Apache講座[Rhythm Factory] Apacheのインストール Apacheの設定 Apacheの起動と終了 セキュリティ情報 アクセスログの有効活用法 Apacheのログを日毎に出力 Apache高速チューニング
●マニュアル ・Apache 1.3日本語マニュアル ・Apache ユーザーズ ガイド Apache HTTP Server Version 1.3
●主要サイト ・JAPANIZED APACHE SERVER PROJECT[日本Apacheユーザ会] ---サーバマニュアル ---指示子リスト ・メールマガジン「Linux Japan Express 」登録申込 ・
●記事 ●Linux特集第2弾:Web サーバ構築入門講座 後編 第237号(2000/02/01)[BIGLOBE SoftPlaza]
後編では、Web サーバで利用できるさまざまな機能をご紹介します。
●Linux特集第2弾:Web サーバ構築入門講座 中編 第235号(2000/01/25)[BIGLOBE SoftPlaza]
近年インターネットの接続環境は徐々にではありますが早く、安いものが登場するようになりつつあります。このように、自宅に専用線が引けるようになると常時接続でWWW をブラウジングするだけではなく、自分のサイトを見てくれるユーザーのために、 Web を通じてより高い機能を提供するべく自宅でWeb サーバやメールサーバの運用を試みたくなるのが必定でしょう。せっかくの専用線、いろいろ楽しまないのは実に惜しい限りです。
●Linux特集第2弾:Webサーバ構築入門講座 第231号(2000/01/20)[BIGLOBE SoftPlaza]
近年インターネットの接続環境は徐々にではありますが早く、安いものが登場するようになりつつあります。このように、自宅に専用線が引けるようになると常時接続でWWW をブラウジングするだけではなく、自分のサイトを見てくれるユーザーのために、 Web を通じてより高い機能を提供するべく自宅でWeb サーバやメールサーバの運用を試みたくなるのが必定でしょう。せっかくの専用線、いろいろ楽しまないのは実に惜しい限りです。
●Windowsユーザーのための Linux入門講座 第164号(1999/06/14)、第162号(1999/06/10)、第147号(1999/03/18)[BIGLOBE SoftPlaza]
Linux とは、Linus Torvalds 氏によって、まったくのゼロから書き起こされた UNIX ライクな OSです。 今回は一般的なユーザはもちろん、いまや企業からも熱い視線を集めるようになった Linux について説明します。
●その他
・WebMagic Standard Edition 1.0.1 for Linux Webベースの無償グループウェアです。 機能としては、WebMagicメール、掲示板、 スケジュール管理、ホワイトボード、施設予約、ユーザーアドレス帳、URLリンク
■Redhat参考資料
Red Hat Linux 6.2J: Official Red Hat Linux インストレーションガイド インストールから設定まで、詳細な解説。
潟tクミ Fukumi Corp
〒101-0032 東京都千代田区岩本町2−4−10共同ビル(岩本町2丁目) tel.03-5687-2890 fax.03-5687-2918 URL:www.fukumi.co.jp/ E-Mail: mm@fukumi.co.jp
- リンクと解説●CGI
- 資料●Webアクセス制限
- Tips 目次へ戻る。
- ホームへ戻る。
- 作成:2000.11.7 最終更新:2001.7.28 小菅博之