2014年3月31日月曜日

40 - TinyOWS 2 - XML ファイルを使った設定

40-2 XML ファイルを使った設定
「Configuring TinyOWS with an XML File(http://mapserver.org/trunk/tinyows/configfile.html)」
TinyOWS を設定する最も簡単な方法は、tinyows.xml ファイルを使います。
パスの初期設定は、/etc/tinyows.xml です。TINYOWS_CONFIG_FILE 環境設定で、独自のパス設定ができます。

40-2-1 設定ファイルの例
「Configuration file simple Example」
demo ディレクトリに tinyows.xml という設定ファイルの例があります。これを /etc ディレクトリにコピーします。
<tinyows online_resource="http://127.0.0.1/cgi-bin/tinyows"
         schema_dir="/usr/local/share/tinyows/schema/">

  <pg host="127.0.0.1" user="postgres" password="postgres" dbname="tinyows_demo" port="5432"/>

  <metadata name="TinyOWS Server"
            title="TinyOWS Server - Demo Service" />

  <layer retrievable="1"
         writable="1"
         ns_prefix="tows"
         ns_uri="http://www.tinyows.org/"
         name="world"
         title="World Administrative Boundaries" />

  <layer retrievable="1"
         writable="1"
         ns_prefix="tows"
         ns_uri="http://www.tinyows.org/"
         name="france"
         title="French Administrative Sub Boundaries (IGN - GeoFLA Departements)" />

</tinyows>


40-2-2 設定ファイルのテスト
「Testing your config.xml file」
次のコマンドで、設定ファイルのテストをします。

user@debian7-vmw:~/tinyows-1.1.0$ ./tinyows --check
Content-Type: application/xml

<?xml version='1.0' encoding='UTF-8'?>
<ows:ExceptionReport
 xmlns='http://www.opengis.net/ows'
 xmlns:ows='http://www.opengis.net/ows'
 xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
 xsi:schemaLocation='http://www.opengis.net/ows http://schemas.opengis.net/ows/1.0.0/owsExceptionReport.xsd'
 version='1.1.0' language='en'>
 <ows:Exception exceptionCode='ConnectionFailed' locator='init_OWS'>
  <ows:ExceptionText>Connection to database failed</ows:ExceptionText>
 </ows:Exception>
</ows:ExceptionReport>


データベースに接続できませんでした。
ログを出力するように tinyows.xml の内容に次のように追加します。

<tinyows online_resource="http://127.0.0.1/cgi-bin/tinyows"
         schema_dir="/usr/local/share/tinyows/schema/"
         log="/var/log/tinyows.log"
         log_level="15">
---


上記コマンドを実行します。ログをみると、

user@debian7-vmw:~/tinyows-1.1.0$ vim /var/log/tinyows.log 
[Wed Mar 19 20:32:27 2014] [EVENT] == TINYOWS STARTUP ==
[Wed Mar 19 20:32:27 2014] [ERROR] FATAL:  ???"postgres"???????????????
FATAL:  ???"postgres"???????????????

[Wed Mar 19 20:32:27 2014] [ERROR] Connection to database failed
[Wed Mar 19 20:32:27 2014] [EVENT] == TINYOWS SHUTDOWN ==


postgres ユーザで接続できないのを解決できなかったので、一般ユーザで接続できるようにします。

root@debian7-vmw:~# vim /etc/tinyows.xml
---
  <pg host="127.0.0.1" user="user" password="password" dbname="tinyows_demo" port="5432"/>
---


user@debian7-vmw:~/tinyows-1.1.0$ su - postgres
パスワード:
postgres@debian7-vmw:~$ psql tinyows_demo 
psql (9.1.12)
"help" でヘルプを表示します.

tinyows_demo=# \d

                  リレーションの一覧
 スキーマ |       名前        |     型     |  所有者  
----------+-------------------+------------+----------
 public   | france            | テーブル   | postgres
 public   | france_gid_seq    | シーケンス | postgres
 public   | geography_columns | ビュー     | postgres
 public   | geometry_columns  | テーブル   | postgres
 public   | spatial_ref_sys   | テーブル   | postgres
 public   | world             | テーブル   | postgres
 public   | world_gid_seq     | シーケンス | postgres
(7 行)


tinyows_demo=# ALTER VIEW geography_columns OWNER TO user;
ALTER VIEW
tinyows_demo=# ALTER TABLE geometry_columns OWNER TO user;
ALTER TABLE
tinyows_demo=# ALTER TABLE spatial_ref_sys OWNER TO user;
ALTER TABLE
tinyows_demo=# ALTER TABLE france OWNER TO user;
ALTER TABLE
tinyows_demo=# ALTER TABLE world OWNER TO user;
ALTER TABLE
tinyows_demo=# ALTER SEQUENCE france_gid_seq OWNER TO user;
ALTER SEQUENCE
tinyows_demo=# ALTER SEQUENCE world_gid_seq OWNER TO user;
ALTER SEQUENCE
tinyows_demo=# \d

                 リレーションの一覧
 スキーマ |       名前        |     型     | 所有者 
----------+-------------------+------------+--------
 public   | france            | テーブル   | user
 public   | france_gid_seq    | シーケンス | user
 public   | geography_columns | ビュー     | user
 public   | geometry_columns  | テーブル   | user
 public   | spatial_ref_sys   | テーブル   | user
 public   | world             | テーブル   | user
 public   | world_gid_seq     | シーケンス | user
(7 行)

tinyows_demo=# \q

user@debian7-vmw:~/tinyows-1.1.0$ ./tinyows --check
TinyOWS version:   1.1.0
FCGI support:      No
Config File Path:  /etc/tinyows.xml (TinyOWS XML)
PostGIS Version:   1.5.3
PostGIS dsn:       host=127.0.0.1 user=user password=password dbname=tinyows_demo port=5432 
Output Encoding:   UTF-8
Database Encoding: UTF8
Schema dir:        /usr/local/share/tinyows/schema/
Log file:          /var/log/tinyows.log
Log level:         ERROR EVENT QUERY SQL
Display bbox:      Yes
Estimated extent:  No
Check schema:      Yes
Check valid geoms: Yes
Available layers:
 - public.world (4326) -> tows:world [RW]
 - public.france (27582) -> tows:france [RW]

0 件のコメント: