2.4. 独自の空間台帳システムを構築する

2.4.1. HTTPサーバ

外部から空間台帳へのアクセスはHTTP経由で行うので、空間台帳サーバはHTTPサーバでなければなりません

ここではHTTPサーバとして、TOMCATのインストール方法を説明します

  1. ubuntuを起動してください

  2. Apache2をインストールします

    Ubuntu Software Centerを開く
    "apache2" で検索
    Apache HTTP Server metapackage をinstall
  3. TOMCATをインストールします

    Ubuntu Software Centerを開く
    "tomcat6" で検索
    tomcat6
    tomcat6-admin
    をinstall
    ※ tomcat6 をinstallすると、tomcat6-common も同時にinstallされる。
  1. WEBアプリケーションマネージャを設定します

    /etc/tomcat6/tomcat-user.xml の<tomcat-users>節を次のように書き換えてください
    
    <tomcat-users>
      <role rolename="admin"/>
      <role rolename="manager"/>
      <user username="ユーザ名" password="パスワード" roles="admin,manager"/>
    </tomcat-users>
    
    
    サービスを再起動します
      $ sudo service tomcat6 restart
    
    ブラウザなどで”http://localhost:8080/manager/html”に接続することを確認してください
  2. Apache2とTOMCATを連携させます

ノート

この設定は tomcatとの接続を http://localhost:8080/ ではなく http://localhost/ で接続する際の設定です。

プロキシを起動します

    $sudo a2enmod proxy
    $sudo a2enmod proxy_ajp

/etc/tomcat6/server.xml を開いてください

    8080ポートを塞ぎます

        <!--
          <Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="20000"
            URIEncoding="UTF-8"
            redirectPort="8443" />
        -->

    8009ポートを開きます

        <!-- Define an AJP 1.3 Connector on port 8009 -->
        <!-- -->
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
        <!-- -->

つなぎ先を変更します
/etc/apache2/conf.d/httpd-proxy.conf を新規作成してください

    <Location />
      ProxyPass ajp://localhost:8009/
    </Location>
    <Location /manager/html>
      ProxyPass ajp://localhost:8009/manager/html
    </Location>
    <Location /host-manager/html>
      ProxyPass ajp://localhost:8009/host-manager/html
    </Location>
    <Location /docs>
      ProxyPass ajp://localhost:8009/dsudo service tomcaocs
    </Location>
    <Location /examples>
      ProxyPass ajp://localhost:8009/examples
    </Location>
    <Location /examples/jsp>
      ProxyPass ajp://localhost:8009/examples/jsp
    </Location>
    <Location /examples/servlets>
      ProxyPass ajp://localhost:8009/examples/servlets
    </Location>

プロキシを受け入れるよう変更します
/etc/apache2/mods-available/proxy.conf を開いてください

    #Deny from all     ←コメントアウト
    Allow from all     ←追加

TOMCAT→Apacheの順に、サービスを再起動します

    $ sudo service tomcat6 restart
    $ sudo service apache2 restart

ブラウザなどで
    ”http://localhost”
    ”http://localhost/manager/html”
に接続することを確認してください

2.4.2. 空間台帳データベース

ノート

ubuntu10.04LTS では空間台帳で必要なファイル (postgis.sql,sppatial_ref_sys.sql)が postgis(postgis-9.1) では install されないため、postgres-9.0-postgis もinstallしてください。

空間台帳データベースは、PostGIS上に構築されます

  1. ubuntuを起動してください

  2. リポジトリを追加します

    $ sudo add-apt-repository ppa:pitti/postgresql
    $ sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
    $ sudo add-apt-repository ppa:pi-deb/gis
    $ sudo apt-get update
    
    ※ubuntu10以下の場合。ubuntu11からはデフォルトでPostgreSQL9以上が入ります
  3. PostgreSQLをインストールします

    Ubuntu Software Centerを開く
    "postgresql" で検索
    object-relational SQL database(supported version) をinstall
    
    ※バージョンが9以上になっていることを確認してください
  4. PostGISをインストールします

    Ubuntu Softwaer Centerを開く
    "postgis" で検索
    geographic objects support for PostgreSQL -- commonfiles をinstall
    
    ※バージョンが1.5以上になっていることを確認してください
  5. TCP/IP接続を許可します

/etc/postgresql/9.1/main/postgresql.conf を編集して下さい

#listen_address = 'localhost' #.....
  ->
listen_addresses = '*' #....
  1. 他の端末からの接続を許可します

/etc/postgresql/9.1/main/pg_hba.conf を編集して下さい

#IPv4 local connections:
host    all             all             127.0.0.1/32          md5
   ->
host    all             all             0.0.0.0/0          trust
  1. postgresのリスタート

    > /etc/init.d/postgresql restart
  2. データベースを作成します

    ※例として、"smdb" という名前で作成します
      > createdb --encoding UTF8 -U postgres smdb
    
    PL/pgSQLを追加します
      > createlang  -U postgres plpgsql smdb
    
    postgisのオブジェクトを追加します
      > psql -U postgres smdb </usr/share/postgresql/9.0/contrib/postgis-1.5/postgis.sql
      > psql -U postgres smdb </usr/share/postgresql/9.0/contrib/postgis-1.5/spatial_ref_sys.sql
    
    空間台帳専用テーブルを作成します
    以下の5つのスクリプトファイルが、alpha-20120720/SMDB/database/ 以下にあります。
        create_smdb.sql
        segment.sql
        uom.sql
        smdb_attribute.sql
        smdb_test.sql
    
    テーブルのクリエイト
      > psql -U postgres smdb < /home/unr/alpha-20120720/SMDB/create_smdb.sql
    
    segmentのテーブルへgeom,dif_geomのカラムを追加
      > psql -U postgres smdb < /home/unr/alpha-20120720/SMDB/segment.sql
    
    uomのテーブルへデフォルトデータをINSERT
      > psql -U postgres smdb < /home/unr/alpha-20120720/SMDB/uom.sql
    
    基本の空間属性のデータをINSERT
      > psql -U postgres smdb < /home/unr/alpha-20120720/SMDB/smdb_attribute.sql
    
    テストデータをINSERT
      > psql -U postgres smdb < /home/unr/alpha-20120720/SMDB/smdb_test.sql
    
    バキューム
      > vacuumdb -U postgres smdb
  3. サーブレットを設置します

/home/unr/alpha-20120720/SMDB/tomcat6/ 以下にあるファイルをそれぞれ
サーバへ設置(以下tomcat6ユーザが読み書き出来る様にパーミッションを与える事)

/var/lib/tomcat6/webapps/robo_server/WEB-INF/
   web.xml

/var/lib/tomcat6/webapps/robo_server/WEB-INF/lib/
   db-front-accessapi.jar        ← AccessAPI
   db_front_servlet_api.jar      ← サーブレット
   jdom.jar                      ← JDOMライブラリ
   postgresql-9.1-901.jdbc4.jar  ← PostgreSQL用JDBCドライバ

/var/lib/tomcat6/temp/
   user_authority.xml
   user_cybercraft.xml
   user_list.xml
   user_other.xml
   user_otherauth.xml

/var/lib/tomcat6/
   property.xml                   ← サーブレットの設定ファイル
  1. 設定ファイルを修正します

propaty.xmlにホスト情報などを記述

<spatialEditorProp xmlns="http://smdb.unr.atr.jp/prop/index">
  <!--空間台帳ホストURL(ex."http://<hostname>:<port>/<path>/")-->
  <host>http://192.168.1.241/robo_server/servlet/smdb</host>
  <!--サービス名-->
  <service>UNR-SMDB</service>
  <!--バージョン-->
  <version>1.0</version>
  <!--空間台帳データベース-->
  <database>
    <!--ホスト-->
    <host>192.168.1.241</host>
    <!--DB名-->
    <databaseName>smdb</databaseName>
    <!--ユーザー-->
    <user>postgres</user>
    <!--パスワード-->
    <password>smdb</password>
  </database>
  <!--管理ユーザ台帳APIのURL(ex."http://<hostname>:<port>/<path>/")-->
  <adminUserAPI>http://192.168.1.241/robo_server/servlet/</adminUserAPI>
  <!--定義台帳APIのURL(ex."http://<hostname>:<port>/<path>/")-->
  <definitionAPI>http://192.168.1.241/robo_server/servlet/teigidaicho/</definitionAPI>
</spatialEditorProp>
  1. tomcat の再起動
$ sudo service tomcat6 restart

目次

前のトピックへ

2.3. 空間属性座標系

次のトピックへ

3. 空間エディタの操作

このページ