apachectl起動とhttpd起動では動作が異なる?

apachectlから起動するのとhttpdから起動するのでは動作が異なる。
具体的には、envvarsを読まない(ような動きをしているっぽい)。

環境

RHEL6.5 X86_64

httpd-2.4.10

apacheをソースからビルドすると、自動起動の設定を自分でしてやる必要がある。

<pre>#service httpd start</pre>とかしたいんだ。

そこで、rpm配下の自動起動ファイルをコピーする。

自動起動ファイルのコピー
#cp /usr/local/src/httpd-2.4.10/build/rpm/httpd.init /etc/init.d/httpd

これをこのまま使うとhttpdから起動する。

しかし、タイトルに書いたようにapachectlから起動するのとhttpdから起動するのでは動作が異なる。具体的には、envvarsを読まないのだ。

やっぱり、本家の言う通りにapachectlから起動させてやりたい。

そこで、/etc/init.d/httpdの60行目を次のように変更しました。

60行目
(元)httpd=${HTTPD-/usr/sbin/httpd}
(新)httpd=${HTTPD-/usr/local/apache2/bin/apachectl}

これでapachectl を使いながら chkconfig httpd on と service httpd startができるようになった。

※補足

httpd.confにSetEnvする方法や、/etc/sysconfig/httpdに書く方法も試したのだけど上手くいきませんでした。偉い人教えてください。

以下を参考にしました。
http://stellecadente.b.sourceforge.jp/2013/08/10/yumによらないapacheのインストール(centos-6-4)/
ありがとうございました。

Leave a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です