linuxでapacheを複数起動させたい!
linuxでapacheを複数起動させる方法。
★今回の要件
1.apacheでの開発環境を1つのLinuxサーバで作りたい。
2.開発者毎にapacheプロセスを起動させたい。
3.各自apacheを再起動しても他の人に影響を与えたくない。
OSはCentOS5.2。
まずはapacheのインストール。
開発者ごとにインストールディレクトリを設けて、人数分導入。
/usr/local/apache2_****/
apacheの起動スクリプトも人数分作成
/etc/init.d/apache2_****
ポートを各自に割り振る。
開発者1:80
開発者2:81
開発者3:82
これで、複数apacheが起動できていると思った。
が、誰か一人のapacheを再起動すると、誰かのapacheが落ちる。
要は、食いつぶされる状態になった。
①再起動前(user1のapacheが起動中)
[root@localhost init.d]# ps -ef |grep httpd
root 31264 1 0 11:35 ? 00:00:00 /usr/local/apache2_user1/bin/httpd
apache 31266 31264 0 11:35 ? 00:00:00 /usr/local/apache2_user1/bin/httpd
apache 31267 31264 0 11:35 ? 00:00:00 /usr/local/apache2_user1/bin/httpd
apache 31268 31264 0 11:35 ? 00:00:00 /usr/local/apache2_user1/bin/httpd
②再起動後(user2のapacheを再起動)
[root@localhost init.d]# ps -ef |grep httpd
root 31264 1 0 11:35 ? 00:00:00 /usr/local/apache2_user2/bin/httpd
apache 31266 31264 0 11:35 ? 00:00:00 /usr/local/apache2_user2/bin/httpd
apache 31267 31264 0 11:35 ? 00:00:00 /usr/local/apache2_user2/bin/httpd
apache 31268 31264 0 11:35 ? 00:00:00 /usr/local/apache2_user2/bin/httpd
食いつぶされた。
調べたところ、起動スクリプト内に定義されている、プロセス名が同じであるために、食いつぶされる事象に陥っていた。
プロセス名の定義を各ユーザごとに分けた結果。。。
[root@localhost init.d]# ps -ef |grep httpd
root 31264 1 0 11:35 ? 00:00:00 /usr/local/apache2_user1/bin/httpd
apache 31266 31264 0 11:35 ? 00:00:00 /usr/local/apache2_user1/bin/httpd
apache 31267 31264 0 11:35 ? 00:00:00 /usr/local/apache2_user1/bin/httpd
apache 31268 31264 0 11:35 ? 00:00:00 /usr/local/apache2_user1/bin/httpd
root 31287 1 0 11:35 ? 00:00:00 /usr/local/apache2_user2/bin/httpd
apache 31289 31287 0 11:35 ? 00:00:00 /usr/local/apache2_user2/bin/httpd
apache 31290 31287 0 11:35 ? 00:00:00 /usr/local/apache2_user2/bin/httpd
複数のapacheが起動できた!
user1のapacheを停止しても。。
[root@localhost init.d]# service apache2_user1 stop
httpd_user1 を停止中: [ OK ]
[root@localhost init.d]# ps -ef |grep httpd
root 31264 1 0 11:35 ? 00:00:00 /usr/local/apache2_user2/bin/httpd
apache 31266 31264 0 11:35 ? 00:00:00 /usr/local/apache2_user2/bin/httpd
apache 31267 31264 0 11:35 ? 00:00:00 /usr/local/apache2_user2/bin/httpd
root 31287 1 0 11:35 ? 00:00:00 /usr/local/apache2_user3/bin/httpd
apache 31289 31287 0 11:35 ? 00:00:00 /usr/local/apache2_user3/bin/httpd
apache 31290 31287 0 11:35 ? 00:00:00 /usr/local/apache2_user3/bin/httpd
apache 31291 31287 0 11:35 ? 00:00:00 /usr/local/apache2_user3/bin/httpd
user2とuser3のapacheは起動したままの状態。
食いつぶしてない!
解決★
めでたしめでたし♪
ディスカッション
コメント一覧
まだ、コメントがありません