ハイパフォーマンスHTTPサーバ Nginx入門を購入した。読んでいるとやっぱりnginxの再インストールをしたくなってきた。さらにグループだとかも見直しがしたくなってきたのでnginxだけでなくOSの再インストールからはじめることにした。
mongoDBのインストールまでは、今までと一緒で、nginxのインストールから変更となる。
ソースインストールで、しかも再インストールがありそうなnginxはpacoで管理するのがよさそうだ。
“make install”したソフトウェアを管理できる超便利ツール「Paco」
「Paco」で「make uninstall」できないソフトを削除する
yum,rpmで扱えないアプリケーションを管理するソフトpaco
pacoのインストール
インストールのために最新版を確認する。
paco – a source code pacKAGE oRGANIZER for Unix/Linux
2.0.9が最新版のバージョンなので、それをwgetし展開、configureする。
$ sudo mkdir /usr/local/src/paco $ sudo wget http://downloads.sourceforge.net/paco/paco-2.0.9.tar.gz $ sudo tar zxfv paco-2.0.9.tar.gz $ cd paco-2.0.9 $ ./configure ・・ No package 'gtkmm-2.4' found
gtkmm-2.4がない模様だ。調べてみると、GUIインタフェース用らしいので要らないらしい。
pacoを導入
というわけで、–disableにして再度configureしインストールする。
$ sudo ./configure --disable-gpaco $ sudo make $ sudo make install
logmeコマンドでPaco自身もアンインストールできるようにする。
sudoで行おうとするとエラーが出る。
$ sudo make logme make: *** [logme] エラー 2
suにチェンジしてlogmeするとうまくいった。
$ su # make logme # paco --version paco-2.0.9 (28 June 2010) Copyright (C) David Rosal <davidrr@sourceforge.net> Protected by the GNU General Public License
pacoでnginxをインストール。
nginxをpacoでインストールする手順を、こちらで確認させて頂いた。
さくらVPSサーバにnginx-1.1.15をソースからビルドしてインストールしたときのメモ
アプリが使用するnginxアカウントを作成する。
$ sudo useradd -s /sbin/nologin -d /usr/local/nginx -M nginx
nginxのビルドに必要なパッケージのインストールをする。重要ではないがIPアドレスから地理情報を取得できるGeoIPも、使えそうなので入れてみる。
$ sudo yum install gcc openssl-devel pcre-devel zlib-devel GeoIP*
前と同じくnginx_tcp_proxy_moduleをダウンロードしパッチを当てる。
$ sudo mkdir /usr/local/src/nginx $ cd /usr/local/src/nginx $ sudo wget http://nginx.org/download/nginx-1.2.0.tar.gz $ sudo git clone https://github.com/yaoweibin/nginx_tcp_proxy_module.git $ sudo tar zxvf nginx-1.2.0.tar.gz $ cd nginx-1.2.0
前回とは違い今回はユーザ名指定し幾つかのオプションとnginx_tcp_proxy_moduleを加えてconfigureする。
パス関連のオプション指定はコチラにまとまっていたので参考にさせて頂いた。
REMEMBER TO SPECIFY NGINX’S TEMP DIRECTORY PATH
$ sudo ./configure \ --user=nginx \ --group=nginx \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_geoip_module \ --with-http_flv_module \ --with-http_stub_status_module \ --http-log-path=/var/log/nginx/access.log \ --http-client-body-temp-path=/var/tmp/nginx/client/ \ --http-proxy-temp-path=/var/tmp/nginx/proxy/ \ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi/ \ --http-scgi-temp-path=/var/tmp/nginx/scgi/ \ --add-module=../nginx_tcp_proxy_module/ ・・・・ Configuration summary + using system PCRE library + using system OpenSSL library + md5: using OpenSSL library + sha1: using OpenSSL library + using system zlib library nginx path prefix: "/usr/local/nginx" nginx binary file: "/usr/local/nginx/sbin/nginx" nginx configuration prefix: "/usr/local/nginx/conf" nginx configuration file: "/usr/local/nginx/conf/nginx.conf" nginx pid file: "/usr/local/nginx/logs/nginx.pid" nginx error log file: "/usr/local/nginx/logs/error.log" nginx http access log file: "/var/log/nginx/access.log" nginx http client request body temporary files: "/var/tmp/nginx/client/" nginx http proxy temporary files: "/var/tmp/nginx/proxy/" nginx http fastcgi temporary files: "/var/tmp/nginx/fcgi/" nginx http uwsgi temporary files: "/var/tmp/nginx/uwsgi/" nginx http scgi temporary files: "/var/tmp/nginx/scgi/"
一時ファイルの場所も変更された模様だ。
必要なフォルダを作成しインストールを行う。
$ sudo mkdir -p /var/tmp/nginx/{proxy,client,fcgi,uwsgi,scgi} $ sudo make $ sudo paco -D make install
エラーが出てくる。sudoではダメの模様なのでsuにチェンジしてインストールを試みるとうまくいった。
$ su # paco -D make install # paco -a nginx-1.2.0 paco-2.0.9
paco -aするとnginxがpaco管理として入っているのが確認できた。
シンボリックリンクを張り起動してみる。
$ sudo ln -s /usr/local/nginx/sbin/nginx /sbin/nginx $ sudo nginx $ nginx -v nginx version: nginx/1.2.0
「Welcome to nginx!」をブラウザで確認できたので停めておく。
$ sudo nginx -s quit
自動起動設定は前回の「Nginx自動起動スクリプトの作成」と同じなので割愛する。
次回はnginxとnode併用でのディレクトリやグループ構成を行う。