httpd.confの場所とphp.iniの設定

このQ&Aのポイント
  • httpd.confの場所やphp.iniの設定方法についてご質問です。
  • apacheが/usr/sbin/httpdで動作している場合、正確にhttpd.confを見つける方法や、php.iniの設定ファイルを導く方法を教えてください。
  • また、php.iniを編集後に設定が正しく反映されているかを確認する方法も教えていただけると助かります。
回答を見る
  • ベストアンサー

httpd.confの場所とphp.iniの設定

いつもお世話になっております。 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みたいなものはありますでしょうか。 以上、たくさんで申し訳ございませんが、 何卒よろしくお願い致します。

  • uff-n
  • お礼率54% (47/87)

質問者が選んだベストアンサー

  • ベストアンサー
  • wingstar
  • ベストアンサー率37% (102/275)
回答No.2

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 でも同様です。

uff-n
質問者

補足

ご回答ありがとうございました!! chkconfig --list から、追うことできました。 ですが、chkconfigに登録していない場合あるので、 その場合も考慮すると、どんな方法がいいか といった点は、疑問に残りますが、それは別としようと思います。

その他の回答 (2)

回答No.3

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

回答No.1

何か勘違いされている気もしますので。 例えば、 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も確認しておいた方が良い気もします。

uff-n
質問者

お礼

ありがとうございます。 oracleの事例、勉強になりました。 php.ini編集後の確認は、phpinfoで確認ですね。

関連するQ&A

  • httpd.confのLoadModule記述方法について

    以下の環境にてサーバー構築を考えているのですが、 httpd.confのLoadModule記述にミスがあるようで、 Apacheを起動することができません。 【環境】   OS :WindowsXP   HTTPD:Apache 2.2.3   PHP :Ver5 【httpd.conf】   LoadModule php5_module c:/php5/php5apache2.dll   AddType application/x-httpd-php .php 昔のPHPインストーラーは自動的にhttpd.confを更新してくれた覚えがあるのですが、 最新のPHPは単なるZIPファイルになり設定が面倒になりました。 行った作業は以下になります。 1.Apacheのインストール 2.テストページの確認 3.PHPの解凍 4.php5ts.dllをc:\WINDOWS\system32にコピー 5.php.ini-distをphp.iniにリネームしてc:\WINDOWSにコピー 6.php.iniの「extension_dir」を「c:\php\ext」に設定 7.上記httpd.confの追記内容を記述する 8.Apacheを再起動するが失敗する 手順としてはサイトによって違いますが、 大体のことは試しましたが駄目でした。 どこが悪いのか全くわからないのですが、 問題を解決するにはどうしたらよいでしょうか?

  • PHP使用時のアパッチ設定ファイル

    windows2000 にapache_2.0.44 をインストールしています。 ここにphp4.3.0をインストールしようとしています。インストーラー版は使っていません。 ファイルのリネームと移動は済んだのですが、php.ini と apacheのhttpd.confの設定ファイルをどのように変更すれば良いのか分かりません。 本や他のサイトを調べてみるとhttpd.confに LoadModule php4_module c:/php/sapi/php4apache.dll を追加するように書いてありますが、この文を他のLoadModuleが並んでいる一番下に追加すると、apacheが起動しなくなってしまいます。 できることなら、php.ini と httpd.conf に必要な変更箇所を教えてもらえませんでしょうか? ファイルのディレクトリは ■apache C:\Apache2\www ←ドキュメントフォルダ ■php C:\php\extensions ←エクステンションのフォルダ C:\php\sapi です。虫のいいお願いですがよろしくお願いします。

    • ベストアンサー
    • PHP
  • Apacheを複数のhttpd.confを用いてる場合の再起動

    Apacheを複数のhttpd.confファイルを用いて運用している場合、 個々のhttpd.confを指定してのApache再起動は可能なのでしょうか? 試しに、httpd_1.confとhttpd_2.confを用いて実施してみましたけど、 エラーになってしまいました。 手順を踏まえての詳細を以下に示します。 1./usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd_1.conf コマンドでApacheを起動。 2./usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd_2.conf コマンドでApacheを起動。 3.その後Apacheを停止したらプロセスが残ってしまいました。

  • PHPとApacheの連携で、困ってます。httpd.confどこにあるのでしょう?

    PHPの設定をしました。Apacheのインストールもしました。PHPとApacheの連携を行う必要があるのですが、Apacheの設定ファイルであるhttpd.confを編集する必要があり、「%APACHE\HOME%/conf」フォルダのhttpd.confを変更しなければならないのですが、httpd.confと、「%APACHE\HOME%/conf」フォルダがどこにあるかわかりません。わかる方教えてください。大変困っています。よろしくお願いします。

    • ベストアンサー
    • PHP
  • APACHEで参照するhttpd.confの場所を変更する方法がわかり

    APACHEで参照するhttpd.confの場所を変更する方法がわかりません。 とある理由で以下のような変更をしたいのですが良くわからず行き詰ってしまいました。 /etc/http/httpd.conf⇒/usr/local/apache/httpd.conf としたいのですが、どこでhttpd.confのディレクトリを設定しているかわからず困っています。 参照するhttpd.confの場所を変更する方法を教えてください。

  • PHP7のphp.iniが読込みできない

    Windows7 64bitの C:\Apache24にApache2.4をインストールして、 C\php7にPHP7をインストールしました。 (php-7.1.1-Win32-VC14-x64.zipを解凍してできたフォルダをphp7にリネームしてC:\に置きました) それで、Apacheのhttpd.confやphp.iniの必要部分を書き換えて、 C:\Apache24\htdocsに <? phpinfo() ?> と記入したinfo.phpを置いて、Apacheを起動して、 ttp://127.0.0.1/info.phpにブラウザでアクセスしたところ、 phpinfo()の画面が表示されて、インストールできたと思ったのですが、 良く見ると、 php.iniでextension_dir = "c:\php7\ext"と設定しているのに、 extension_dirがC:\php7\extではなく、C:\php\extとなっていて、 mbstringなども読み込まれていないのです。 Loaded Configuration File もnoneとなっていて、php.iniが読み込まれていないようです。 Configuration File (php.ini) Path はC:\windows となっていますが、C:\windows には php.iniは入れていません。 ネットで調べて、httpd.confに PHPINIDir "C:/php7" と記入するといいとあったので、記入してApacheを再起動して info.phpにアクセスしたところ、白紙のページが表示されました。 PHPINIDir "C:/php7"を削除して、Apacheを再起動してinfo.phpにアクセスすると、 phpinfo()の画面が表示されます。 試しに、C:\windowsにphp.iniを入れてみると、また白紙のページになります。 つまり、php.iniを読み込もうとすると白紙にページになっていまうのです。 php.iniにエラーがあるのかと思って、解凍して何も変更していないphp.iniを 使ってみてもだめでした。php.iniの構文チェックができればと思って いろいろ調べたのですがネット上で見つからなかったです。 希望ですが、なんとかphp.iniを読み込んで白紙ではなくページを表示できて、 mbstringなども有効になっていればと思います。 どうぞよろしくお願いします。

    • 締切済み
    • PHP
  • PHPが動作できてないと思われるのです><

    [環境] Fedora Core6 Apache/2.2.4 PHP/5.1.6 SELinuxは無効にしてます。 本を読みながらインストールしていた まったくの初心者です;; [現象] index.htmlというテスト的なページは表示できたのですが、 test.php <?php phpinfo(); ?> のみ記述 を表示しようとすると、 サーバが見つかりません。と表示されました。 おこなったことは、 /etc/httpd/conf/httpd.conf に AddType application/x-httpd-php .php と追記して service httpd stop service httpd start とやりました。 LoadModule php5_module modules/libphp5.so を追記していた場合 [warn]module php5_module is already loaded, skipping と出たのでlibphp5.soの追記は止めました。 過去ログに それらしいのがあったのですが、 http://oshiete1.goo.ne.jp/qa229489.html 過去ログ内の ./configure --with-apxs=/usr/sbin/apxs のやり方がよく分からなくて試せなかったのです。 # ←こういうのがでているところでそのまま入力したのですが、 何かやり方が違うのでしょうか? あと、色々調べていた中で再コンパイルをしないといけないともかいてあったのですが、 それもやり方が分かりませんでした>< 何かこれかな?と思われるような個所がありましたら ご指摘のほどぜひともお願い致します。

  • PHPの設定ができません。

    PHP初心者です。 ApacheとPHPの連携がうまくいきません。 環境は、OSがWindowsXP、Apache2.2.21、PHP5.2.17です。 エラーの内容は、 httpd: Syntax error on line 130 of C:/Apache2/conf/httpd.conf: Cannot load C:/ph p/php5apache2_2.dill into server: \x8ew\x92\xe8 ... httpd.confの設定は 130:LoadModule php5_module "C:/php/php5apache2_2.dill" 131:PHPiniDir "C:/php" ディレクトリに間違いはありません。php5apache2_2.dill も存在しています。 どうしたらいいのでしょうか?

    • ベストアンサー
    • PHP
  • PHP設定

    windows XP Apache 2.0.51 php 5 で設定を行っているのですが、 httpd.confファイルのLoadModule・・・の下に続けて LoadModule php5_module C:/php/php5apache2.dll AddModule mod_php5.c を記述すると The requested operation has failed! とエラーが出てきます。 この2行をコメントアウトするとエラーが出なくなります。 情報が少ないかもしれませんが、お返事お待ちしております。

    • ベストアンサー
    • PHP
  • httpd.conf

    Apacheのhttpd.confで CustomLog /usr/local/apache/logs/access_log combined ErrorLog /usr/local/apache/logs/error_log などをコメントアウトして、ログの記録を止めるのはApacheの動作自体に問題はあるのでしょうか? どうしてもログの記録を一時的に止めたいのですが、方法として上記のようなやり方は間違ってないでしょうか。