[mapserver-users] mapserver and php
Worth Lutz
wal3 at mindspring.com
Sun Nov 4 05:37:36 PST 2012
Hi Vince,
If you keep the messages on the list it can help others. I don't mind you
sending it to me directly if you are replying to a post of mine as I may see
it sooner.
I generally use the unstable repository as it gets updated faster (thus
unstable). I run on the bleeding edge :-).
Here is a script which I use to create postgreSQL templates for a PostGIS
database and a pgRouting database. It is a modified version of one found in
the pgRouting site.
It assumes PostGIS version 2 and PostgreSQL may need to be version 9. This
works on my setup using Ubuntu 12.04 and PostgreSQL 9.1 and the
ubuntugis-unstable repository to get MapServer and PostGIS.
You may need to run to get the "pg_config" utility which reports various
config information for PostgreSQL:
sudo apt-get install libpq-dev
# /bin/bash
#
----------------------------------------------------------------------------
--
# Setup template containing PostGIS and/or pgRouting
#
----------------------------------------------------------------------------
--
#
# To create a GIS database as non-superuser run:
#
# "createdb -h hostname -W -T template_postgis mydb
#
# Source:
http://geospatial.nomad-labs.com/2006/12/24/postgis-template-database/
#
# Note: "pg_config" requires "libpq-dev" package
if [ -e `pg_config --sharedir` ]
then
echo "PostGIS installed in" `pg_config --sharedir`
POSTGIS_SQL_PATH=`pg_config --sharedir`/contrib
else
POSTGIS_SQL_PATH=/usr/share/postgresql/9.1/contrib/postgis-2.0
echo "PostGIS path set as $POSTGIS_SQL_PATH"
fi
ROUTING_SQL_PATH=/usr/share/postlbs
# Create "template_postgis"
# -------------------------
if sudo -u postgres psql --list | grep -q template_postgis ;
then
echo "PostGIS template already exists!"
else
echo "Create PostGIS template ..."
VERSION=$(basename $(pg_config --sharedir))
echo "PostgreSQL version is $VERSION"
if [ $VERSION \< 9.1 ];
then
# for PostgreSQL less than 9.1
sudo -u postgres createdb -E UTF8 -T template0 template_postgis
sudo -u postgres createlang -d template_postgis plpgsql
sudo -u postgres psql --quiet -d template_postgis \
-f $POSTGIS_SQL_PATH/postgis.sql
sudo -u postgres psql --quiet -d template_postgis \
-f $POSTGIS_SQL_PATH/spatial_ref_sys.sql
sudo -u postgres psql --quiet -d template_postgis \
-f $POSTGIS_SQL_PATH/postgis_comments.sql
sudo -u postgres psql --quiet -d template_postgis \
-f
$POSTGIS_SQL_PATH/postgis-2.0/rtpostgis.sql
sudo -u postgres psql --quiet -d template_postgis \
-f
$POSTGIS_SQL_PATH/postgis-2.0/raster_comments.sql
sudo -u postgres psql --quiet -d template_postgis \
-f
$POSTGIS_SQL_PATH/postgis-2.0/topology.sql
sudo -u postgres psql --quiet -d template_postgis \
-f
$POSTGIS_SQL_PATH/postgis-2.0/topology_comments.sql
sudo -u postgres psql --quiet -d template_postgis \
-c "GRANT ALL ON geometry_columns TO
PUBLIC;"
sudo -u postgres psql --quiet -d template_postgis \
-c "GRANT ALL ON geography_columns TO
PUBLIC;"
sudo -u postgres psql --quiet -d template_postgis \
-c "GRANT ALL ON spatial_ref_sys TO
PUBLIC;"
sudo -u postgres psql --quiet -d template_postgis -c "VACUUM FULL;"
sudo -u postgres psql --quiet -d template_postgis -c "VACUUM FREEZE;"
else
# for PostgreSQL 9.1+
sudo -u postgres createdb -E UTF8 -T template0 template_postgis
sudo -u postgres psql -d template_postgis -c "CREATE EXTENSION postgis"
sudo -u postgres psql -d template_postgis -c "CREATE EXTENSION
postgis_topology"
fi
sudo -u postgres psql --quiet -d postgres \
-c "UPDATE pg_database SET datistemplate='true' WHERE
datname='template_postgis';"
sudo -u postgres psql --quiet -d postgres \
-c "UPDATE pg_database SET datallowconn='false' WHERE
datname='template_postgis';"
echo "... template_postgis created."
fi
# Create "template_routing"
# -------------------------
if sudo -u postgres psql --list | grep -q template_routing ;
then
echo "pgRouting template already exists!"
else
echo "Create pgRouting template ..."
sudo -u postgres createdb -E UTF8 -T template_postgis template_routing
sudo -u postgres psql --quiet -d template_routing \
-f $ROUTING_SQL_PATH/routing_core.sql
sudo -u postgres psql --quiet -d template_routing \
-f
$ROUTING_SQL_PATH/routing_core_wrappers.sql
sudo -u postgres psql --quiet -d template_routing \
-f $ROUTING_SQL_PATH/routing_topology.sql
sudo -u postgres psql --quiet -d template_routing \
-f $ROUTING_SQL_PATH/routing_tsp.sql
sudo -u postgres psql --quiet -d template_routing \
-f
$ROUTING_SQL_PATH/routing_tsp_wrappers.sql
sudo -u postgres psql --quiet -d template_routing \
-f $ROUTING_SQL_PATH/routing_dd.sql
sudo -u postgres psql --quiet -d template_routing \
-f $ROUTING_SQL_PATH/routing_dd_wrappers.sql
sudo -u postgres psql --quiet -d template_routing \
-f $ROUTING_SQL_PATH/matching.sql
sudo -u postgres psql --quiet -d template_routing -c "VACUUM FULL;"
sudo -u postgres psql --quiet -d template_routing -c "VACUUM FREEZE;"
sudo -u postgres psql --quiet -d postgres \
-c "UPDATE pg_database SET datistemplate='true' WHERE
datname='template_routing';"
sudo -u postgres psql --quiet -d postgres \
-c "UPDATE pg_database SET datallowconn='false' WHERE
datname='template_routing';"
echo "... template_routing created."
fi
#-------------------------------------------------------------------------
I hope this helps.
Worth
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20121104/c6ff7be5/attachment.htm>
More information about the MapServer-users
mailing list