CentOS5.5へのNginxのインストール
CentOSにApache入れようかと思ったけど、ちょっと気になってたnginxを入れることにしました。Passengerも対応しているみたいだし。
Nginxの特徴
ざっと調べた感じだと、こんな特徴があります。
CentOS5.5にインストール
こちらから安定版のソースを取得し、解凍。これを書いている時点での安定版は0.7.670.8.53。
$ cd /usr/local/src $ sudo wget http://sysoev.ru/nginx/nginx-0.7.67.tar.gz $ sudo tar zxvf nginx-0.7.67.tar.gz
解凍してできたディレクトリに入り、./configureを実行。「./configure --help」で./configureオプションが表示されます。今回は何もなしでやります。
$ sudo ./configure
あれ、なんかエラーがでました。。
./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=<path> option. # てきとー和訳 HTTP rewriteモジュールはPCREライブラリが必須。「--without-http_rewrite_module」オプションを使って無効にするか、PCREライブラリを入れてください
PCREライブラリがいるらしいですね。。てかなんだそれ!「Perl Compatible Regular Expression」の略らしい。おそらくPerlの正規表現系のライブラリでしょう。
yumで入るようです。
$ sudo yum -y install pcre-devel
もう1度./configureしてみる。今度うまくいった!デフォルトの設定が表示されています。
$ sudo ./configure ... Configuration summary + using system PCRE library + OpenSSL library is not used + md5: using system crypto library + sha1 library is not used + 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: "/usr/local/nginx/logs/access.log" nginx http client request body temporary files: "client_body_temp" nginx http proxy temporary files: "proxy_temp" nginx http fastcgi temporary files: "fastcgi_temp"
makeします。
$ sudo make … objs/src/os/unix/ngx_process.o: In function `ngx_process_get_status': ngx_process.c:(.text+0xe22): warning: `sys_errlist' is deprecated; use `strerror' or `strerror_r' instead ngx_process.c:(.text+0xe10): warning: `sys_nerr' is deprecated; use `strerror' or `strerror_r' instead make[1]: ディレクトリ `/usr/local/src/nginx-0.7.67' から出ます
なんかWarninng出た、、気にせずmake installします。
$ sudo make install make -f objs/Makefile install make[1]: ディレクトリ `/usr/local/src/nginx-0.7.67' に入ります test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx' test -d '/usr/local/nginx/sbin' || mkdir -p '/usr/local/nginx/sbin' test ! -f '/usr/local/nginx/sbin/nginx' || mv '/usr/local/nginx/sbin/nginx' '/usr/local/nginx/sbin/nginx.old' cp objs/nginx '/usr/local/nginx/sbin/nginx' test -d '/usr/local/nginx/conf' || mkdir -p '/usr/local/nginx/conf' cp conf/koi-win '/usr/local/nginx/conf' cp conf/koi-utf '/usr/local/nginx/conf' cp conf/win-utf '/usr/local/nginx/conf' test -f '/usr/local/nginx/conf/mime.types' || cp conf/mime.types '/usr/local/nginx/conf' cp conf/mime.types '/usr/local/nginx/conf/mime.types.default' test -f '/usr/local/nginx/conf/fastcgi_params' || cp conf/fastcgi_params '/usr/local/nginx/conf' cp conf/fastcgi_params '/usr/local/nginx/conf/fastcgi_params.default' test -f '/usr/local/nginx/conf/fastcgi.conf' || cp conf/fastcgi.conf '/usr/local/nginx/conf' cp conf/fastcgi.conf '/usr/local/nginx/conf/fastcgi.conf.default' test -f '/usr/local/nginx/conf/nginx.conf' || cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf' cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default' test -d '/usr/local/nginx/logs' || mkdir -p '/usr/local/nginx/logs' test -d '/usr/local/nginx/logs' || mkdir -p '/usr/local/nginx/logs' test -d '/usr/local/nginx/html' || cp -r html '/usr/local/nginx' test -d '/usr/local/nginx/logs' || mkdir -p '/usr/local/nginx/logs' make[1]: ディレクトリ `/usr/local/src/nginx-0.7.67' から出ます
うーん、出力が短いけどエラー出てないから出来ているはずでしょう。
./configureにオプション無しだと
prefix | /usr/local/nginx | |
設定ファイルのパス | /usr/local/nginx/conf/nginx.conf | |
コマンド | /usr/local/nginx/sbin/nginx | |
設定ディレクトリ | /usr/local/nginx/conf | |
PIDファイル | /usr/local/nginx/logs/nginx.pid | |
エラーログファイル | /usr/local/nginx/logs/error.log | |
アクセスログファイル | /usr/local/nginx/logs/access.log |
デフォルトの設定はこんな感じらしいです。
設定
設定はこちらがかなり詳しいです。今日は端折ります。
停止
$ sudo kill `cat /usr/local/nginx/logs/nginx.pid`
停止しているか確認
$ ps aux | grep nginx AnaiMB 22154 0.0 0.1 65372 820 pts/1 S+ 00:16 0:00 grep nginx $
プロセスが無いのでOK!
まとめ
インストールは楽でした。Apache比べたら断然楽だと思います。ドキュメントも結構あるし、Apacheに比べると設定ファイルの形式とかがシンプルでわかりやすく、Apacheのような高機能さを求めない場合はNginxで十分なんじゃないかなーと思いました。
セキュリティとかたぶんもっと細かく設定しなければいけないと思うので継続して調査です!とりあえずPassengerでも入れてみようかなー
- 作者: Clement Nedelcu
- 出版社/メーカー: Packt Publishing
- 発売日: 2010/07/30
- メディア: ペーパーバック
- クリック: 47回
- この商品を含むブログ (1件) を見る