いつもお世話になっております。

ps auxww で表示したapacheが、/usr/sbin/httpd となっていた場合、
ここで動いているapacheのhttpd.confを正確に導く方法は、どのようになりますでしょうか。
これまで、apacheを調べるときには、
・rpm -qa | grep apache
もしくは、
/usr/local周りを調べていましたが、
apacheが/usr/local/で、複数稼動している場合、
または、/etc/httpd で動いているのか不明な場合、
どのconfをいじるべきかわからないためです。

また、httpd.confの場所がわかった場合、
phpがモジュールとして動いていた場合、
httpd.confに、LoadModule php5_module ・・・
となりますが、そのphp.iniの設定ファイルを導くには、
どのようにしたらよいでしょうか。
これまでは、phpが動くところで、phpinfoして、探していましたが、
それ以外に、いくつか方法を教えていただけると助かります。

最後に、php.iniを編集した後、正しくphp.iniが設定されているか(文法間違いがないか)
どうかを確認するには、どうしたらよいでしょうか。
apacheでいう configtestみたいなものはありますでしょうか。

以上、たくさんで申し訳ございませんが、
何卒よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

OSは何でしょうか?


rpmコマンドが書かれているので、Red Hat Enterprise Linuxまたはそれ系だとは思いますが…
(こういう質問の場合、どこのディストリビューション使ってるのか書かなきゃ…)

そもそも、rpmで動いているのかソースビルドで動いているのか、把握できていない時点でサーバ運用失格ではありますが、前任者が突然いなくなることもあるので、お気持ちは察します…

> どのconfをいじるべきかわからないためです。

それはもう、ソースビルドしてれば、ビルドの仕方にもよるでしょうし、rpmで入れてたってわざと/etc/httpd/confから移動して使っている人もいるでしょうから、決まりきったものはないでしょうね。

まず調査方法としては、

# chkconfig --list

で、httpdがあり、更にランレベルに応じてonになっているのを確認するべき。
onになっていれば、/etc/init.dの中にあるhttpdという起動スクリプトでOS起動時にApacheも起動するようになっているはずなので、その起動スクリプトの中身から追いかければいいんじゃないですかね。
または、

# service httpd status

でも同様です。

この回答への補足

ご回答ありがとうございました!!

chkconfig --list から、追うことできました。

ですが、chkconfigに登録していない場合あるので、
その場合も考慮すると、どんな方法がいいか
といった点は、疑問に残りますが、それは別としようと思います。

補足日時:2011/04/16 13:39
    • good
    • 0

>OSは何でしょうか?


>rpmコマンドが書かれているので、Red Hat Enterprise Linuxまたはそれ系だとは思いますが…
>(こういう質問の場合、どこのディストリビューション使ってるのか書かなきゃ…)
これを無視するのは何故でしょうか?
重要なことですよ。重要なことを無視するのは社会人として失格です。
あっ教えて君に対して調べるように促す書き込みだけの俺も社会人失格だっけ。
    • good
    • 0

何か勘違いされている気もしますので。



例えば、 ps | grep httpd ではapacheを一つ動かしてもhttpdは複数動いてますよ。

httpdには2種類あって、apacheの起動で最初に動くhttpdとそのhttpdが起動するhttpdがあります。
※動作的には、root権限のhttpdがクライアントからの接続は全て受け付ける。接続されればroot権限で動いているhttpdは他のhttpdへ処理をさせる。(rootのhttpdは実際の処理はせず、クライアントからの接続要求の処理のみ行なう。会社に例えると受付ですね。受付けで適切な部署へ案内する。応対は各部署で行なう。)

psで確認すれば root権限で動いているhttpd一つにapache用ユーザ権限で動いているhttpdが複数ある場合が多いです。
※全部root権限(httpd用にユーザ作ってない)な場合もありますし、全部ユーザ権限の場合もあります。その場合でもpid(プロセスID)とppid(親プロセスID)を見ればhttpdの起動している状況がはっきりわかります。

pid/ppidの関係も意識して確認し何組かのhttpdが動いている場合には、それぞれのapacheを動かしている複数の設定ファイルがあるはずなのでそれを探します。

※ rootで動かすのはhttpの標準ポートが80(特権ポート)だから。root権限持たない利用者がウェブサーバ動かす場合には非特権ポートを使って動かす事もあります。その場合良く使われるのが8080から連続するポート。特権ポートは1024番未満(1023以下)の番号のポート。


> ps auxww で表示したapacheが、/usr/sbin/httpd となっていた場合、
> ここで動いているapacheのhttpd.confを正確に導く方法は、どのようになりますでしょうか。

親プロセスのhttpdで下記ページの方法で見つけれる事もあります。
※まず、親プロセス(apacheを起動する事で動き始めたプロセス)を見つけないとはじまりません。

http://d.hatena.ne.jp/yohei-a/20100622/1277226779

同様、システムコールトレーサを使って調べる事もできます。

でも、システム起動スクリプトを確認して何を動かしているのか確認しましょう。

※管理者が管理できてないウェブサーバ動いてるってかなり怖い事ではないかな。場合によっては、このコンピュータにある情報は何でも外部公開してます状態にもなりますよ。攻撃的な事で他人に動かされているウェブサーバがあるかも。


> php.iniを編集した後、正しくphp.iniが設定されているか(文法間違いがないか)
> どうかを確認するには、どうしたらよいでしょうか。

phpinfoで意図した通り変わっているか、意図してる状態に設定されるか確認すれば良い気がします。
apacheもconfigtestでエラーなくても必ずしも動くとは限りませんし。
statusやfullstatusも確認しておいた方が良い気もします。
    • good
    • 0
この回答へのお礼

ありがとうございます。

oracleの事例、勉強になりました。

php.ini編集後の確認は、phpinfoで確認ですね。

お礼日時:2011/04/16 13:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング