medneta / ansible

Ansible deployment playbook for medneta.eu
MIT License
0 stars 0 forks source link

Install geodata services #1

Open axilleas opened 8 years ago

axilleas commented 8 years ago

Manual install and setup:

axilleas commented 8 years ago

Install postgres/postgis

apt-get install postgresql postgis

Create user/db

sudo -u postgres psql -d template1

CREATE USER vagrant CREATEDB;
CREATE DATABASE geoserver OWNER vagrant;

Enable GIS extensions

sudo -u postgres psql -d geoserver

geoserver=# CREATE EXTENSION postgis;
CREATE EXTENSION
geoserver=# CREATE EXTENSION postgis_topology;
CREATE EXTENSION
geoserver=# CREATE EXTENSION postgis_tiger_geocoder;
CREATE EXTENSION
geoserver=# CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION

geoserver=# CREATE EXTENSION postgis_sfcgal;
ERROR:  could not open extension control file "/usr/share/postgresql/9.4/extension/postgis_sfcgal.control": No such file or directory
geoserver=# CREATE EXTENSION address_standardizer;
ERROR:  could not open extension control file "/usr/share/postgresql/9.4/extension/address_standardizer.control": No such file or directory
geoserver=# CREATE EXTENSION address_standardizer_data_us;
ERROR:  could not open extension control file "/usr/share/postgresql/9.4/extension/address_standardizer_data_us.control": No such file or directory

Install geoserver

apt-get install openjdk-7-jre-headless tomcat7 tomcat7-admin
wget http://sourceforge.net/projects/geoserver/files/GeoServer/2.8.1/geoserver-2.8.1-war.zip
unzip geoserver-2.8.1-war.zip
rm -rf LICENSE.txt GPL.txt target/
mv geoserver.war /var/lib/tomcat7/webapps/

Enable proxy module:

a2enmod proxy proxy_ajp

Create /etc/apache2/conf-available/proxy.conf:

ProxyPass /geoserver ajp://localhost:8009/geoserver

Enable proxy.conf:

a2enconf proxy

Restart apache:

systemctl restart apache2

Open /etc/tomcat7/server.xml and look for this fragment:

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

Uncomment and change to:

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

Save the file and restart Tomcat:

systemctl resart tomcat7

Visit http://localhost/geoserver. (admin:geoserver)

Install mapbender3

apt-get install php5 php5-pgsql php5-gd php5-curl php5-cli php5-sqlite sqlite php-apc php5-intl curl openssl
a2enmod rewrite && systemctl restart apache2
wget http://mapbender3.org/builds/mapbender3-3.0.5.2.tar.gz
tar xzf mapbender3-3.0.5.2.tar.gz
mv mapbender3-3.0.5.2 /var/www/mapbender3
cd /var/www/mapbender3
cp app/config/parameters.yml{.dist,}

Database snippet for app/config/parameters.yml:

database_driver:   pdo_pgsql
database_host:     localhost
database_port:     5432
database_name:     mapbender3
database_path:     ~
database_user:     mapbender
database_password: secret

Create postgres database:

sudo -u postgres psql -d template1
CREATE USER mapbender WITH PASSWORD 'secret';

CREATE DATABASE mapbender3
  WITH OWNER = varant
       ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE='el_GR.utf8'
       LC_CTYPE='el_GR.utf8'
       CONNECTION LIMIT = -1
template template0
;

Change permissions create db schema:

sudo chmod -R ugo+r /var/www/mapbender3
sudo chown -R www-data:www-data /var/www/mapbender3
sudo chmod -R ug+w /var/www/mapbender3/web/uploads
app/console doctrine:schema:create
app/console assets:install web
app/console fom:user:resetroot --username="root" --password="root" --email="root@example.com" --silent
app/console doctrine:fixtures:load --fixtures=./mapbender/src/Mapbender/CoreBundle/DataFixtures/ORM/Epsg/ --append
app/console doctrine:fixtures:load --fixtures=./mapbender/src/Mapbender/CoreBundle/DataFixtures/ORM/Application/ --append
sudo chmod -R ug+w /var/www/mapbender3/app/cache
sudo chmod -R ug+w /var/www/mapbender3/app/logs
sudo chmod -R ug+w /var/www/mapbender3/web/uploads

Apache snippet /etc/apache2/sites-available/mapbender3.conf:

Alias /mapbender3 /var/www/mapbender3/web/
<Directory /var/www/mapbender3/web/>
 Options MultiViews FollowSymLinks
 DirectoryIndex app.php
 Require all granted

 RewriteEngine On
 RewriteBase /mapbender3/
 RewriteCond %{ENV:REDIRECT_STATUS} ^$
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ app.php/$1 [PT,L,QSA]
</Directory>

Enable site:

a2ensite mapbender3
systemctl restart apache2

Links

Charmatzis commented 8 years ago

I have the same errors with you...

geoserver=# CREATE EXTENSION postgis_sfcgal;
ERROR:  could not open extension control file "/usr/share/postgresql/9.4/extension/postgis_sfcgal.control": No such file or directory
geoserver=# CREATE EXTENSION address_standardizer;
ERROR:  could not open extension control file "/usr/share/postgresql/9.4/extension/address_standardizer.control": No such file or directory
geoserver=# CREATE EXTENSION address_standardizer_data_us;
ERROR:  could not open extension control file "/usr/share/postgresql/9.4/extension/address_standardizer_data_

what is the solution?

axilleas commented 8 years ago

I never got it to work, didn't need it in the end. I was blindly copying the commands from postgis site :)

For postgis_sfcgal I found an old issue which explains what you should do. For address_standardizer I found this.