自宅のVMware Server上のCentOS 4.5で、いろいろhttpdを立ち上げて開発環境を区別していて、いちいち開発環境を立ち上げるたびに起動スクリプトを書くのが億劫になってきて、汎用スクリプトをでっちあげた。
basenameで起動パスを識別するようにしたので、シンボリックリンクで別名を付けてやるだけで任意のhttpdを立ち上げてくれるという仕組み。
こうしておけば、apacheを使ったWebアプリのプロジェクトを複数抱えてても面倒臭くないよ!
apache以下一連の環境をconfigureする手間はやっぱりかかるけどw
あととりあえずhttpd.workerは捨ててます(PHP(笑))
使い方:(※注:以下、fooは任意の文字列)
まずシンボリックリンクを張って
ln -s /etc/rc.d/init.d/httpd_template /etc/rc.d/init.d/httpd_foo
あとは普通に呼び出すだけ
/etc/rc.d/init.d/httpd_foo start /etc/rc.d/init.d/httpd_foo stop /etc/rc.d/init.d/httpd_foo restart などなど
このスクリプトを使用する際の前提条件:
- configure時に--prefix=/usr/local/apache_foo でビルドされていること
- 起動スクリプトは /etc/sysconfig/httpd_foo を読み込みます
- httpd.conf で PidFile が /var/run/httpd_foo.pid に設定されていること
- ロックファイルは /var/lock/subsys/httpd_foo を見に行きます
- シンボリックリンクを張ること(killallするときに便利だから):/usr/local/apache_foo/bin/httpd -> /usr/local/apache_foo/bin/httpd_foo
おすすめの構成はこんな感じ:
- /usr/local/apache_base (port 80, mod_rewrite + mod_proxy にて各プロジェクト用にポート転送)
- /usr/local/apache_foo (port 10080)
- /usr/local/apache_bar (port 10081)
- and so on.
スクリプトはhttpd-2.2.8に付属していたbuild/rpm/httpd.initをベースにしています。
汎用apache起動スクリプトをでっちあげたの続きを読む

