end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転しました

mac osx 10.6.3にpostgis, mapserverをinstall

mac osx 10.6.3にpostgis, mapserverをinstallする機会があったので、その手順を書き留めておきます。

参考にさせていただいたurl:
http://thinkit.co.jp/cert/article/0701/9/1/2.htm

postgis, mapserver は依存moduleが多い

postgis, mapserver は依存するライブラリが多く、結局、次のライブラリをinstallしました。

fontconfig-2.8.0.tar.gz
freetype-2.3.12.tar.gz
freetype-doc-2.3.12.tar.gz
gd-2.0.35.tar.gz
gdal-1.7.2.tar.gz
geos-3.2.2.tar.bz2
jpegsrc.v8b.tar.gz
libpng-1.4.3.tar.gz
mapserver-5.6.3.tar.gz
postgis-1.5.1.tar.gz
postgresql-8.4.4.tar.gz
proj-4.7.0.tar.gz
zlib-1.2.5.tar.gz

postgres install

$ cd ~/tmp/postgresql-8.4.4
$ ./configure
$ make
$ su
# make install
※ ここで user : postgresの追加
# mkdir /data/pgsql
# chown postgres /data/pgsql
# su - postgres
$ /usr/local/pgsql/bin/initdb -E utf8 -D /data/pgsql

osxではadduser postgresできないようなので、システム環境設定からユーザ追加を行ないました。
また、initdbでは、databaseのencodingをutf8にしていますが、このencodingは、psqlを起動し、次のようにして確認できます。

kaigan=# \l kaigan;
                              List of databases
   Name    |  Owner   | Encoding | Collation | Ctype |   Access privileges   
-----------+----------+----------+-----------+-------+-----------------------
 kaigan    | postgres | UTF8     | C         | C     | 

centosでは、geosのmakeにlibicu が必要かも

centos環境(ver.?)でgeosをmakeすると

#error Can not compile without isnan function or macro
  :
error: 'ISNAN' was not declared in this scope

のようなエラーになるらしい。

libicu をinstallすることで解消したそうだが、なぜunicodeライブラリが必要なんだろう?
http://site.icu-project.org/

postgisのinstallとGIS databaseの作成

http://postgis.refractions.net/
http://www.finds.jp/docs/pgisman/index.html

postgisは、それ自体のinstallに加え、database作成後にpostgisの関数を取り込み、拡張する必要があります。

$ cd   ~/tmp/postgis-1.5.1
$ ./configure --with-geos --with-proj \
    --with-pgsql=/usr/local/pgsql/bin/pg_config \
    --with-pgconfig=/usr/local/pgsql/bin/pg_config
$ make
# make install

GIS databaseの作成 とdatabaseの拡張

$ /usr/local/pgsql/bin/createdb -U postgres -E utf8 kaigan
$ /usr/local/pgsql/bin/createlang -U postgres plpgsql kaigan
$ /usr/local/pgsql/bin/psql -U postgres -d kaigan \
    -f /usr/local/pgsql/share/contrib/postgis-1.5/postgis.sql
$ /usr/local/pgsql/bin/psql -U postgres -d kaigan \
    -f /usr/local/pgsql/share/contrib/postgis-1.5/spatial_ref_sys.sql

mapserver install

最後にmapserver。mapserverにはmake installが必要ありません。
今回の場合、/Users/endo/local/mapserver-5.6.3 にinstallしました。

$ cd ~/tmp/mapserver-5.6.3
$ ./configure \
     --with-proj --with-gdal --with-ogr --with-geos --with-gd \
     --with-postgis=/usr/local/pgsql/bin/pg_config
$ make
$ cd ..
$ mv mapserver-5.6.3 ~/local/

最後にpostgresを起動して接続テスト

# /Library/StartupItems/pgsql/postgres start
$ /usr/local/pgsql/bin/psql -U postgres -d kaigan