Solaris 10u5上のインストール

インストレーションプロセスを進めることができる前に、NGINXによって必要とされるだろう幾つかの依存をインストールするでしょう。セットアップで、opensslとpcreサポートを使ってNGINXをコンパイルします。つまり、最初にこれらの前提条件をコンパイルし、その後で、NGINXのコンパイル処理を継続します。

これらの必要条件は:

  • Pcre ライブラリ
  • Openssl ライブラリ

新しいsolarisマシーンを想定しているため、一部のSolarisビルドツールは /usr/ccs/bin にあります。パスに無い場合は、パスに追加する必要があります。以下のようにしてこれを行うことができます:

vi ~/.profile

ファイルの中に以下を追加します:

export PATH=$PATH:/opt/SUNWSpro/bin:/usr/ccs/bin:/usr/sfw/bin

ここで、修正されたPATH変数を見るようにシェルをリフレッシュします:

source ~/.profile

環境を準備するための最後のものは、以下のリンクから取得できるSun Studio 12 コンパイラのインストールです。

自由にダウンロードすることができますが、ダウンロードリンクにアクセスするためにsunに登録する必要があります。

SunStudio12ml­-solaris­-x86­-200709­-ii.tar.bz2 をダウンロードした後で、以下のようにして解凍します:

cd /path/to/SunStudio/file/; gtar ­-jxf SunStudio12ml­-solaris­-x86­-200709­-ii.tar.bz2 ­-C /opt/

前のコマンドはファイルを解凍しそれを /opt/ パスに配置します。そこで幾つかのフォルダを見つけるでしょう。最も重要なものは上のPATH変数に設定された /opt/SUNWspro です。

PCREのビルド/インストール

上で言ったように、SolarisのためにNGINXをビルドするために、まず2つの依存を満たす必要があります。すなわち、PCRE (Perl 正規表現ライブラリ) と OpenSSLです。(OpenSSLは厳密には必要ではありませんが、完全性のためにそれを含めたいです。)全てのビルドは完全な64bitでしょう。

注意

開始する前に、以下のような幾つかのシステムパッケージがシステムにインストールされている必要があります:

* SUNWbtool
* SUNWtoo
* SUNWlibmr
* SUNWlibm

PCREから始めましょう:

cd /usr/src/; wget -c ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.gz
gtar -zxf  pcre-8.00.tar.gz
cd pcre-8.00
./configure --disable-cpp CFLAGS="-g -O3" CC="/opt/SUNWspro/bin/cc -m64" --prefix=/opt/local --enable-utf8 --enable-unicode-properties
make
make install

OpenSSLのビルド/インストール

cd /usr/src/; wget -c http://www.openssl.org/source/openssl-0.9.8e.tar.gz
gtar -zxf openssl-0.9.8e.tar.gz
cd openssl-0.9.8e

続ける前に、以下のようにcc コンパイラのための64bitモードフラグを正すために設定スクリプトへ小さな修正を行うでしょう。

vi Configure

-xarch=amd64 を検索し、それを-m64に変更し、保存して終了します。その後、コンパイルプロセスを進め、続けることができます:

./Configure solaris64-x86_64-cc threads shared --prefix=/opt/local --openssldir=/opt/local/openssl
make
make install

NGINXのビルド/インストール

最後の段階は、ソースのtar ballからのNGINXの構築およびインストールです。pcreおよびopensslと一緒に上でしたように同じステップに従うことができるでしょう。

cd /usr/src; wget -c http://sysoev.ru/nginx/nginx-0.7.64.tar.gz
gtar -zxf nginx-0.7.64.tar.gz
cd nginx-0.7.64

NGINXのコンパイルプロセスを完全な64bitモードで完了するためには、最初に以下のように src/os/unix/ngx_sunpro_amd64.il ファイルを編集する必要があります:

vi src/os/unix/ngx_sunpro_amd64.il

ファイルの最後に:

pause

以下に変更します:

rep; nop

保存および終了し、これでプロセスを完了します:

CC="cc" ./configure --prefix=/opt/local/nginx --with-cpu-opt="amd64" --with-ipv6 --with-http_ssl_module --with-cc-opt="-I /opt/local/include"
--with-ld-opt="-L /opt/local/lib -R /lib -R /usr/lib -R /opt/local/lib"
make
make install

NGINXのテスト

NGINXのインストールプロセスを終了した後で、以下のようにして全てが申し分ないことをテストすることができます:

cd /opt/local/nginx/sbin/
./nginx

これで、NGINX はあなたのマシーン上で実行するはずです。ブラウザで http://127.0.0.1/ を開くと、"Welcome to nginx!"のページを見るはずです。

SMFサービスとしてのNGINXの実行

この章では、NGINX WebサーバがSolaris 10 起動時に実行するように設定するつもりです。これをするためにSolaris 10 のSMF機能を使い、プロセスを単純化するためにこの目的のための必要なファイルを作成しました。

vi /lib/svc/method/svc-nginx

ファイルの中に以下のものを配置します:

#!/bin/sh
NGINX_CMD="/opt/local/nginx/sbin/nginx"
NGINX_CONF="/opt/local/nginx/conf/nginx.conf"
RETVAL=0
start() {
   echo "Starting NGINX Web Server: \c"
   $NGINX_CMD -c $NGINX_CONF &
   RETVAL=$?
   [ $RETVAL -eq 0 ] && echo "ok" || echo "failed"
   return $RETVAL
}
stop() {
   echo "Stopping NGINX Web Server: \c"
   NGINX_PID=`ps -ef |grep $NGINX_CMD |grep -v grep |awk '{print $2}'`
   kill $NGINX_PID
   RETVAL=$?
   [ $RETVAL -eq 0 ] && echo "ok" || echo "failed"
   return $RETVAL
}
case "$1" in
   start)
      start
      ;;
   stop)
      stop
      ;;
   restart)
      stop
      start
      ;;
   *)
      echo "Usage: $0 {start|stop|restart}"
      exit 1
esac
exit $RETVAL

その後で、以下のように以下のパーミッションを修正します:

chown root:bin /lib/svc/method/svc-nginx && chmod 555 /lib/svc/method/svc-nginx

ここで、manifesetファイルを生成します:

vi /var/svc/manifest/network/nginx.xml

ファイルの中で、以下を配置します:



<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">

<!--author: alex harvey based on the Sun ssh.xml manifest -->

<service_bundle type='manifest' name='nginx'>
<service name='network/nginx' type='service' version='1'>
<create_default_instance enabled='false' />
<single_instance />

<exec_method type='method' name='start' exec='/lib/svc/method/svc-nginx start' timeout_seconds='60'/>

<exec_method type='method' name='stop' exec='/lib/svc/method/svc-nginx stop' timeout_seconds='60' />

<exec_method type='method' name='restart' exec='/lib/svc/method/svc-nginx restart' timeout_seconds='60' />

<stability value='stable' />

<template>

<common_name>

<loctext xml:lang='C'> NGINX 0.7.64 </loctext>

</common_name> <documentation>

<manpage title='nginx' section='8' manpath='/usr/share/man' />

</documentation> </template> </service> </service_bundle>

以前svc-nginxと一緒に行ったように、パーミッションを修正します:

chmod 444 /var/svc/manifest/network/nginx.xml
chown root:sys /var/svc/manifest/network/nginx.xml

そして、manifestファイルをSMFデータベースにインポートします:

svccfg -v import /var/svc/manifest/network/nginx.xml

最後に、Solaris起動時に自動的に開始するためにサービスを有効にします:

svcadm enable nginx
inserted by FC2 system