- ベストアンサー
apacheが起動しない
ご質問させて頂きます。 自分のPC(XP)からTelnetで LINUX(Red Hat Linux release 9 (Shrike))に接続しています。 apacheをインストールをして、起動したいのですが うまく行きません。 スタートをすると、 [root@localhost bin]# ./apachectl start ./apachectl start: httpd started ストップをしてみると、 [root@localhost bin]# ./apachectl stop ./apachectl stop: httpd (no pid file) not running リスタートをしてみると、 [root@localhost bin]# ./apachectl restart ./apachectl restart: httpd not running, trying to start ./apachectl restart: httpd started 設定ファイルを確かめてみると、 [root@localhost bin]# ./apachectl configtest Syntax OK と、出ます。 対処方法をご存じでしたら、よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
各種サービスを起動する・しない、は ntsysv コマンド chkconfig コマンド を利用します。 ntsysv コマンドは、メニュー形式で初心者にわかりやすいのですが、 インストールされていないみたいですので、chkconfigコマンドを 使ってください。 ランレベル3・5 でパッケージ版のApacheが起動しないようにする。 # chkconfig --level 35 httpd off <ENTER> 詳しい使い方などはネット検索してください。 http://www.jp.redhat.com/manual/Doc72/RH-DOCS/rhl-cg-ja-7.2/chkconfig.html >ところが以下を見る限り、ポート80は使われていないと思うのですが、 >apacheがどのポートで動いてるのかが分かりません。 >tcp 0 0 *:http *:* LISTEN apacheのサービス名はhttpdなので、ちゃんと動いています。 apacheが、どのポートを見ているかは、httpd.confファイルに指定されています。 Listen 80
その他の回答 (4)
- xjd
- ベストアンサー率63% (1021/1612)
>>1.apacheはどうやっていれましたか? >> rpmパッケージから?ソースから? >ソースからインストールしました。 パッケージ版のapacheとソース版のapacheが混在していて、先にパッケージ版が 動いているのでしょう。 パッケージ版のapacheがインストールされているかrpmコマンドで確認してください。 # rpm -qa | grep httpd <ENTER> httpd-2.0.40-21.11 インストールされていたら、デフォルトでは起動するようになっていますので、 RedHat起動時にパッケージ版apacheが動かないようにしてください。 # ntsysv --level 35 <ENTER> 「httpd」のチェックをはずして再起動。 この後は、ソース版のapacheを起動させてください。 # /usr/local/apache2/bin/apachectl start <ENTER> 上記のコマンドを、/etc/rc.d/rc.localファイルに記述しておくと、 RedHat起動時に、ソース版のapacheが動きます。
補足
こんにちは。 ご返事有り難うございました。 サンプルページを表示出来るようになってから 以下のコマンドをしました。 # rpm -qa | grep httpd httpd-manual-2.0.40-21 redhat-config-httpd-1.0.1-18 httpd-2.0.40-21 続いて、 # ntsysv --level 35 <ENTER> と、したんですが、 bash: ntsysv: command not found と、なってしまいます。 たぶん私のやり方がおかしいと思うのですが どこがおかしいのかご指摘して頂ければと思います。 もう一つ伺いたいのですが・・・。 >「httpd」のチェックをはずして再起動。 こちらの方法がちょっと分かりません。 サンプルページを表示出来るようになったので 一応問題は解決したのですが これからのためにご教授して頂けたら幸いです。
- kalze
- ベストアンサー率47% (522/1092)
どうやらport 80は既に何者かが使っているようです。 #2様のご指摘のように既にパッケージもしくはこれまでに入れたapacheが起動しているかもしれません。 ソースからいれた場合、デフォルトの設定のままではListenPortは8080あたりだったようなきもしますが。 ローカルで使用する(勉強する)ためのサーバのようですね。 これを機に各コマンドを調べてみてはいかがでしょうか。 とりあえず、 #netstat -alt と打ってみてください。 これで、ListenしているPortが分かるとおもいます。 (この場合、TCPのみですが) そこで、wwwなどhttpd用のportがListenになっていれば何者かが使用しています また、 #ps aux と打ってみてください。 これで起動しているプロセスが表示されます。 簡単に言えば、起動しているサーバソフトが表示されます。 これらの結果、80番portをListenしているものがあったり、apache(httpd)が起動していたりしたら、既に起動していることになります。
補足
こんにちは。 ご返事有り難うございました。 ローカルで使用する(勉強する)ためのサーバのようですね。 >ハイ、仰るとおりです。 >[root@localhost bin]# netstat -alt と、すると、以下のようになります。 ここで気になることがあるんですが・・・。 #2様のご指導して頂いたのでサンプルページを表示出来るようになりました。 ところが以下を見る限り、ポート80は使われていないと思うのですが、 apacheがどのポートで動いてるのかが分かりません。 それを調べる方法がありましたら ご教授して頂けたら幸いです。 Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:1024 *:* LISTEN tcp 0 0 localhost.localdom:1025 *:* LISTEN tcp 0 0 *:printer *:* LISTEN tcp 0 0 localhost.localdom:8005 *:* LISTEN tcp 0 0 *:8009 *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:http *:* LISTEN tcp 0 0 *:webcache *:* LISTEN tcp 0 0 *:10000 *:* LISTEN tcp 0 0 *:ftp *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 *:telnet *:* LISTEN tcp 0 0 *:postgres *:* LISTEN tcp 0 0 localhost.localdom:smtp *:* LISTEN tcp 0 138 192.168.200.230:telnet 192.168.200.:supfiledbg ESTABLISHED [root@localhost bin]# ps aux と、すると、以下のようになりました。 これはapacheが動いていると考えて宜しいんですよね? USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND ・ ・ ・ root 13220 0.0 0.2 2644 272 ? S 09:37 0:00 /soft/apache/bin/ nobody 13221 0.0 0.1 3060 232 ? S 09:37 0:00 /soft/apache/bin/ nobody 13222 0.0 0.9 3060 1176 ? S 09:37 0:00 /soft/apache/bin/ nobody 13223 0.0 0.9 3060 1208 ? S 09:37 0:00 /soft/apache/bin/ nobody 13224 0.0 0.1 2800 252 ? S 09:37 0:00 /soft/apache/bin/ nobody 13225 0.0 0.1 2800 252 ? S 09:37 0:00 /soft/apache/bin/ root 13432 0.0 0.5 2688 752 pts/1 R 11:22 0:00 ps aux よろしくお願いします。
- michisanpo
- ベストアンサー率36% (7/19)
./apachectl start: httpd started となっているのであればApacheは起動 しているのではないでしょうか? 一度、LinuxマシンのWebブラウザから確かめてみてはどうでしょうか。 もしくは、RedHat9なら初めからApacheがインストールされている可能性 もあると思うので、RedHatの起動時に Starting httpd [ OK ] とでてくるか確認してみて下さい。 もしあれば、もとからインストールされているApacheが起動していますので、 こちらのApacheを停止(# /etc/rc.d/init.d/httpd stop) した後に再度インストールしたApacheを起動(# usr/local/apache/bin/apachectl start)してみてください。 こうしないと、新しくインストールしたApacheを使えないかもしれません。
お礼
こんにちは。 ご返事有り難うございました。 >こちらのApacheを停止(# /etc/rc.d/init.d/httpd stop) 仰るとおりにしたところ、古いapacheが停止され、新しいapacheのサンプルページが見られるようになりました。有り難うございました。
- kalze
- ベストアンサー率47% (522/1092)
とりあえず、以下について教えてください。 1.apacheはどうやっていれましたか? rpmパッケージから?ソースから? 2.apachectl startしたときに本当に起動していますか? プロセスは立ち上がっていますか? configtestは文法的なチェックしかしないので、 設定が矛盾していても文法があっていればとおります。 startしたときに起動していなければ、設定ファイル等なんらかにミスがあるかとおもいます。 その場合は、ログファイルに何らかの情報がでているとおもいますので、ログを参照してください
補足
こんにちは。 ご返事有り難うございました。 >1.apacheはどうやっていれましたか? > rpmパッケージから?ソースから? ソースからインストールしました。 >2.apachectl startしたときに本当に起動していますか? > プロセスは立ち上がっていますか 以下のようにしたところ、 >[root@localhost bin]# ./apachectl start >./apachectl start: httpd started と、返ってくるだけなので起動していないと思うのですが・・・。 サンプルページも表示出来ません。 http://192.168.200.230/ 「Not Found」と返ってきます。 ちなみにhttp://192.168.200.230:8080/ と、ポート番号を指定すると、 「HTTP Status 404 - /」 というエラーが出てします。 プロセスが立ち上がるという意味がちょっと分からないので 出来ましたら教えて頂きたいのですが・・・。 error_logを確認したところ 以下のメッセージが出てきました。 [Tue Aug 24 11:42:51 2004] [crit] (98)Address already in use: make_sock: could n ot bind to port 80 [Tue Aug 24 11:58:18 2004] [crit] (98)Address already in use: make_sock: could n ot bind to port 80 [Tue Aug 24 17:02:35 2004] [crit] (98)Address already in use: make_sock: could n ot bind to port 80 ポート番号80は既に使われているということでしょうか? 今までapache・tomcatをインストールしても なかなかうまくいかず アンインストールしたり、インストールし直したりして ごちゃごちゃになっているかも知れません。 大変にお手数をお掛けしますが、よろしくお願いします。
補足
こんにちは。 ご返事有り難うございました。 >chkconfig --level 35 httpd off 同じエラーが出てしまったので、 たぶんchkconfigもインストールされていないようです。 >apacheが、どのポートを見ているかは、httpd.confファイルに指定されています。 >Listen 80 Listenがコメント行になっていたので、コメント行を外して80にして再起動をしようとしたら、また動かなくなってしまいました。また、後日ご相談させて頂くかも知れませんが、その折りはよろしくお願いします。