参考サイト:http://heartbeats.jp/hbblog/2012/02/nginx02.html
今回の環境:
【linux】CentOS6.2
【nginx】1.2.6
nginxの出力先を考えずにソースからコンパイル~インストールを行うと、
proxy_tempやら、fastcgi_tempなどが${NGINX_ROOT}なディレクトリ配下に作成されるので、
どーもディレクトリ構成がすっきりしない。
それと、実行ファイルと設定ファイルとその他でディレクトリを分けて置いて、
後々のバージョンアップにも耐えられるような構成を目指す。
目指すディレクトリ構成
${NGINX_ROOT}
+---1.2.6
+--sbin
+--conf
+---running
+--logs
+--html
+--temp
+-client_body_temp
+-proxy_temp
+-fastcgi_temp
+-uwsgi_temp
+-scgi_temp
(デフォルトでは~_tempのディレクトリがlogsとかと一緒の場所に作成されてしまい、
htmlとかlogsの存在が埋もれてしまいそうになる。)
実際のコマンドは以下のとおり。(ここでは${NGINX_ROOT}を/var/opt/nginx/ としている)
NGINXのインストールログ的手順
$ tar xzf ./nginx-1.2.6.tar.gz
$ cd ./nginx-1.2.6
$ ./configure --user=nginx --group=nginx \
--with-http_ssl_module \
--with-http_random_index_module \
--with-http_dav_module \
--without-select_module \
--prefix=/var/opt/nginx/running \
--sbin-path=/var/opt/nginx/1.2.6/sbin/nginx \
--conf-path=/var/opt/nginx/1.2.6/conf/nginx.conf \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/subsys/nginx \
--http-client-body-temp-path=temp/client_body_temp \
--http-proxy-temp-path=temp/proxy_temp \
--http-fastcgi-temp-path=temp/fastcgi_temp \
--http-uwsgi-temp-path=temp/uwsgi_temp \
--http-scgi-temp-path=temp/scgi_temp
$ make
$ make isntall
もしかしたら、./configureのとこで以下のようなエラーが出るかもしれない。
PRCEが無いよ的なエラー
./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.
その時はタイトルにも書いたとおりPRCEライブラリが無いのでインストールした後、
また./configureを実行すると良い。
インストールが完了したら、ディレクトリの作成を忘れないこと。
tempディレクトリを作成する
$ mkdir /var/opt/nginx/running/temp
もし忘れたまま起動するとこんなエラーが出る。(というか出た。)
tempディレクトリ作成エラー例
nginx: [emerg] mkdir() "/var/opt/nginx/running/temp/client_body_temp" failed (2: No such file or directory)
あとは、nginxのディレクトリ専用のユーザを作成したりと、セキュリティ対策も忘れずに。