単発サーバで複数のapacheをインストール/稼動 †経緯 これをプロジェクトごとにapacheを使用することで、全体へのリスクが減る。 以下は複数のapacheをインストール、apacheの環境を揃えるための方法。 構築ルール †
構築手順 †apacheをソースからインストールする手順。 コンパイル・インストール †apacheのソースを用意しそれぞれで使いまわす。 cpコマンドで/home/$USERディレクトリへ持って行き、展開し、以下のようにインストールする。 $ cp /usr/local/src/httpd-2.2.11.tar.gz /home/$USER/ TIPS: オプションをsoのみにしたのは、同じOS、同じapacheを使用しているので、 moduleをロードする †上記に少し記述したが、moduleはコンパイル済みの物が用意することで各々がロードすることが出来る。 今回は/usr/local/modules配下にコンパイル済みのmoduleを配置。 $ cp -r /usr/local/modules /home/$USER/apache2 TIPS: ポートの変更 †上記の方法で取り敢えず稼動可能なapacheが出来上がる。あとは各apacheを起動させ、ポートをlistenさせれば良い。 #Listen 80 Listen 10080 と言うような形で変更する。 自動起動出来るようにする †apacheをサーバの起動時に自動で起動できるようにしたい場合、パッケージなどでインストールした場合には まずは上記のリンク先で簡単に作成したスクリプトを
/etc/init.d/apache2_hogehoge そして権限を与えて、chkconfigで起動レベル変更 # chmod +x /etc/init.d/apache2_hogehoge # chkconfig apache2_hogehoge on # chkconfig --list apache2_hogehoge 起動ユーザの変更 †今回のapacheは個別にインストールしているので、各ユーザ毎にapacheを起動させたい。 User daemon Group daemon 変更↓ User hogehoge Group users グループは特に指定しないでdaemonグループにし、hogehogeユーザが起動させる。 server:/home/hogehoge/apache2/conf # /etc/init.d/apache2_hogehoge start server:/home/hogehoge/apache2/conf # ps -ef |grep hogehoge hogehoge 6467 1 0 2009 ? 00:14:35 /home/hogehoge/apache2/bin/httpd -k start hogehoge 10546 6467 0 15:14 ? 00:00:00 /home/hogehoge/apache2/bin/httpd -k start hogehoge 11009 6467 0 15:17 ? 00:00:00 /home/hogehoge/apache2/bin/httpd -k start hogehoge 11020 6467 0 15:17 ? 00:00:00 /home/hogehoge/apache2/bin/httpd -k start hogehoge 12634 6467 0 15:33 ? 00:00:00 /home/hogehoge/apache2/bin/httpd -k start hogehoge 13215 6467 0 15:38 ? 00:00:00 /home/hogehoge/apache2/bin/httpd -k start hogehoge 14164 6467 0 15:46 ? 00:00:00 /home/hogehoge/apache2/bin/httpd -k start hogehoge 14165 6467 0 15:46 ? 00:00:00 /home/hogehoge/apache2/bin/httpd -k start hogehoge 14166 6467 0 15:46 ? 00:00:00 /home/hogehoge/apache2/bin/httpd -k start hogehoge 14213 6467 0 15:47 ? 00:00:00 /home/hogehoge/apache2/bin/httpd -k start hogehoge 15783 6467 0 16:01 ? 00:00:00 /home/hogehoge/apache2/bin/httpd -k start root 15895 15332 0 16:03 pts/0 00:00:00 grep hogehoge server:/home/hogehoge/apache2/conf # netstat -an |grep 50080 tcp 0 0 :::50080 :::* LISTEN logrotateについて †apacheのログをrotateする必要があるが、デフォルトのrotateでは当然無理なので、今回使用した方法を記述。 # mkdir /etc/apache2_logrotate.d # vi /etc/logrotate.conf ---省略--- include /etc/apache2_logrotate.d 上記の様にapache2_logrotate.dディレクトリを作成し、logrotate.confでそのディレクトリをincludeする。 # chmod 777 /etc/apache2_logrotate.d 今回は各ユーザのホームディレクトリに「logs」ディレクトリを作成し、 $ vi /etc/apache2_logrotate.d/apache2_$USER #$USERはサービスユーザ名に変更する /home/$USER/logs/*log { compress dateext maxage 365 rotate 99 notifempty missingok create 644 $USER users sharedscripts postrotate /etc/init.d/apache2_$USER reload endscript } 注意 |