質問: apacheで「 magicの」 path centos 5.x apacheで「 magicの」 path を教えてください。 grep で検索しても 時間が異常にかかり、わかりません。 また インストしたapache のバージョン調べる方法を 教えてください。 よろしくお願いします。
回答: ■magic ファイル パッケージでインストールしていれば、基本は次の場所かと思います。 /etc/httpd/conf/magic 実際どのファイルを使うかは設定の mimemagicfile で指定されています。 自分環境では /etc/httpd/conf/httpd.conf に次のように書かれていました。 # mimemagicfile /usr/share/magic.mime mimemagicfile conf/magic # の行はコメントだから無効で、有効なのは mimemagicfile conf/magic の行です。 serverroot "/etc/httpd" からの相対パスなので、 /etc/httpd/conf/magic になります。 もし次のように書いてあったら /usr/share/magic.mime が使われます。 mimemagicfile /usr/share/magic.mime httpd.conf 以外のファイルに書いてある可能性も捨てきれないので、 例えば次のように記述箇所を洗い出した方がいいかもしれません。 $ grep -r mimemagicfile /etc/httpd/conf/* ■apache のバージョン パッケージでインストールしてれば、rpm や yum でわかります。 $ rpm -q httpd httpd-2.2.3-43.el5.centos.3 $ yum info httpd loaded plugins: fastestmirror installed packages name : httpd arch : i386 version : 2.2.3 release : 45.el5.centos.1 ...以下略 上の例では、2.2.3 が apache のバージョンです。 ちなみに apache の本体である httpd や、制御用コマンドである apachectl を、 -v オプションをつけて実行しても、バージョンが表示されます。 $ /usr/sbin/httpd -v server version: apache/2.2.3 server built: may 4 2011 06:51:15 $ /usr/sbin/apachectl -v server version: apache/2.2.3 server built: may 4 2011 06:51:15 ■おまけ-パッケージからのインストールではない場合の対応 パッケージ管理システムを使わずに、ソースをコンパイルして インストールされていることがあるかもしれません。 ps の出力から実行中の httpd のプロセスを探し、プログラムのパスを調べます。 $ ps fax | grep httpd 9021 pts/0 d+ 0:00 \_ grep httpd 2626 ? ss 0:00 /usr/local/apache_1.3.42/bin/httpd -dssl 2636 ? s 0:00 \_ /usr/local/apache_1.3.42/bin/httpd -dssl 2637 ? s 0:00 \_ /usr/local/apache_1.3.42/bin/httpd -dssl ...以下略 上記の例だと /usr/local/apache_1.3.42/bin/httpd です。 -v を付けて実行するとバージョンがわかります。 $ /usr/local/apache_1.3.42/bin/httpd -v server version: apache/1.3.42 (unix) server built: may 19 2011 13:47:54 で、この場合の magic ファイルのパスですが、 一般には httpd のファイルが格納されている bin ディレクトリと 同じ階層に conf ディレクトリがあり、その中にに apache の 設定ファイル (httpd.conf) が格納されていることが多いです。 magic も多分そこにあります。 上記の例では、/usr/local/apache_1.3.42/conf/magic にありました。