apache

apacheでstopやrestartが出来なくなった場合

現象

apacheでstopやrestartをするとエラーになって、stopもrestartも出来なくなる現象が発生しました。
startは出来ます。

restartの時は、stopが失敗するので、startで既に80番ポートが使用されているというエラーに。

環境

CentOS
Apache2.3

原因

原因は、httpd.confと/etc/rc.d/init.d/httpdでpidファイルのパスの指定がずれているからでした。
pidファイルのパスを合わせてあげると、stop、restartが出来るようになります。

/etc/rc.d/init.d/httpdでのpid指定箇所

pidfile=xxxxxxxx

それでも解決しない場合

もし、pidファイルのパスが一致している場合は別の原因です。
いろいろ試して原因が見つからない又は、さくっと停止、再起動したい場合は、
無理矢理プロセスをkillすることでapacheを停止 or 再起動(起動)することが出来ます。

以下、apacheのプロセスをkillする手順

1.apacheのプロセスを確認

$ ps aux | grep httpd
root    2354 2.1 3.7 15138 7719 ?   Ss  11:13  0:00 /usr/sbin/httpd

2番目の「2354」の部分がpid(プロセス番号)になります。

2.確認したプロセスのpid(プロセス番号)を指定してapacheを停止

$ kill [pid]

apacheのSSL(https)でVirtualHostを設定しても通信できない場合

ApacheでVirtualHost(vhosts)でSSL(https)の設定をしているのに、httpsで通信が出来ない事態が発生。
原因は初歩的なとこでした。。。

基本、ssl.confを読み込んでいれば、問題ないと思うのですが、
今回はサーバー移行作業で移行前の設定を持って来たので、もれてしまっていました。

原因は、「Listen」の記述が無いためでした。

Listen 443

です。

今回は、httpd.confに追記しました。

もし、apacheでhttpsの通信が出来ない場合は、チェックしてみてください。