diff --git a/.gitignore b/.gitignore index 15d27fa1a6ce6befbf0938ddc7bf07bc827a4ce5..16681b0e3fd2d6a2c8d422391b9a931ce1433cd1 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,6 @@ /.project /.settings /.vagrant +/data /home -/log \ No newline at end of file +/log diff --git a/Vagrantfile b/Vagrantfile index 6b0cec5ec1a95ea2cc7f2a12876c2603947852f9..f052e697407e2fb46bf0fcb6b44ee4e93f1944b0 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -55,6 +55,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Setup of shared folders config.vm.synced_folder "conf", "/setup/conf" + config.vm.synced_folder "data", "/opt/data", create: true config.vm.synced_folder "img", "/setup/img" config.vm.synced_folder "log/postgresql", "/var/log/postgresql", create: true, owner: 26, group: 26 config.vm.synced_folder "log/bootstrap", "/var/log/vagrant_bootstrap", create: true, owner: "vagrant", group: "vagrant" diff --git a/bootstrap/config.sh b/bootstrap/config.sh index c1c26f726079b8d7b0630b6ddb7ec7fda62edc2e..b78cc420744ae5e7b6b7c226d8366be9ac6ebae5 100755 --- a/bootstrap/config.sh +++ b/bootstrap/config.sh @@ -25,10 +25,13 @@ INSTALL_POSTGIS=true INSTALL_POSTGRES=true INSTALL_POSTGRES_ADMIN=true INSTALL_PROJECT_PSIPROBE=true +INSTALL_SPATIALITE=false +INSTALL_SPATIALITE_ADMIN=true CACHE_DIR_LOCAL="/tmp/vagrant-cache" CACHE_DIR_REMOTE="http://dbis-informatik.uibk.ac.at/static/ma/niko/isochrone" DEPLOY_DIR="/opt" +DATA_DIR="$DEPLOY_DIR/data" SETUP_DIR="/setup" WORKING_DIR="/var/log/vagrant_bootstrap" @@ -57,6 +60,7 @@ AVAILABLE_NEO4J_SPATIAL=$([ -d "${DEPLOY_DIR}/neo4j-spatial" ] && echo true || e AVAILABLE_POSTGRES=$(type ${EXEC_POSTGRES} >/dev/null 2>&1 && echo true || echo false) AVAILABLE_POSTGIS=$([ -f "${POSTGRES_SHARE}/extension/postgis.control" ] && echo true || echo false) AVAILABLE_PGROUTING=$([ -f "${POSTGRES_SHARE}/extension/pgrouting.control" ] && echo true || echo false) +AVAILABLE_SPATIALITE_ADMIN=$([ -f "$DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php" ] && echo true || echo false) DOWNLOAD_DIR="${CACHE_DIR_LOCAL}/wget" if [ ! -f "${SETUP_DIR}" ]; then diff --git a/bootstrap/importData.sh b/bootstrap/importData.sh index 2ced5149707d16c5432cf7429544b71a1bc13911..aa1ca4993e479fc241199f88307417176633c046 100755 --- a/bootstrap/importData.sh +++ b/bootstrap/importData.sh @@ -68,10 +68,10 @@ fn_import_data() { if $VALID_SQL; then echo " - downloading sql export" fn_download_newer $DOWNLOAD_DIR/$SQL_EXPORT_FILE $CACHE_DIR_REMOTE/$SQL_EXPORT_FILE - cp $DOWNLOAD_DIR/$SQL_EXPORT_FILE $DEPLOY_DIR/$SQL_EXPORT_FILE >> /dev/null 2>&1 + cp $DOWNLOAD_DIR/$SQL_EXPORT_FILE $DATA_DIR/$SQL_EXPORT_FILE >> /dev/null 2>&1 echo " - importing sql export into postgis database" - gunzip -c $DEPLOY_DIR/$SQL_EXPORT_FILE | PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost "$PG_DB_NAME" >> "$WORKING_DIR/import_schedule_$NAME.log" 2>&1 + gunzip -c $DATA_DIR/$SQL_EXPORT_FILE | PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost "$PG_DB_NAME" >> "$WORKING_DIR/import_schedule_$NAME.log" 2>&1 echo " - getting table permissions" tables=`PGPASSWORD="$PG_DB_PASSWORD" psql -qAt -U "$PG_DB_USER" -h localhost -c "SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND tableowner = 'postgres';" "$PG_DB_NAME"` @@ -89,10 +89,10 @@ fn_import_data() { if $IMPORT_DATA_OSM_CACHED; then echo " - downloading cached OpenStreetMap file" fn_download_newer $DOWNLOAD_DIR/$OSM_FILE_FILTERED $CACHE_DIR_REMOTE/$OSM_FILE_FILTERED - cp $DOWNLOAD_DIR/$OSM_FILE_FILTERED $DEPLOY_DIR/$OSM_FILE_FILTERED >> /dev/null 2>&1 + cp $DOWNLOAD_DIR/$OSM_FILE_FILTERED $DATA_DIR/$OSM_FILE_FILTERED >> /dev/null 2>&1 fi - if [ ! -f $DEPLOY_DIR/$OSM_FILE_FILTERED ]; then + if [ ! -f $DATA_DIR/$OSM_FILE_FILTERED ]; then if $IMPORT_DATA_OSM; then echo " - downloading OpenStreetMap file (no cached file found)" OSM_FILENAME=$DOWNLOAD_DIR/${OSM_FILE##*/} @@ -100,9 +100,9 @@ fn_import_data() { echo " - filtering OpenStreetMap data" if [[ "$BOUNDING" == *.poly ]]; then - $DEPLOY_DIR/osmosis/bin/osmosis --read-pbf file="$OSM_FILENAME" --bounding-polygon file="$BOUNDING" --way-key keyList="$OSM_KEYS" --used-node --write-xml file="$DEPLOY_DIR/$OSM_FILE_FILTERED" >> "initialize_osmData_$NAME.log" 2>&1 + $DEPLOY_DIR/osmosis/bin/osmosis --read-pbf file="$OSM_FILENAME" --bounding-polygon file="$BOUNDING" --way-key keyList="$OSM_KEYS" --used-node --write-xml file="$DATA_DIR/$OSM_FILE_FILTERED" >> "initialize_osmData_$NAME.log" 2>&1 else - $DEPLOY_DIR/osmosis/bin/osmosis --read-pbf file="$OSM_FILENAME" --bounding-box $BOUNDING --way-key keyList="$OSM_KEYS" --used-node --write-xml file="$DEPLOY_DIR/$OSM_FILE_FILTERED" >> "initialize_osmData_$NAME.log" 2>&1 + $DEPLOY_DIR/osmosis/bin/osmosis --read-pbf file="$OSM_FILENAME" --bounding-box $BOUNDING --way-key keyList="$OSM_KEYS" --used-node --write-xml file="$DATA_DIR/$OSM_FILE_FILTERED" >> "initialize_osmData_$NAME.log" 2>&1 fi else echo " - problems with downloading cached osm file... this will most likely lead cause errors" @@ -111,7 +111,7 @@ fn_import_data() { if $AVAILABLE_PGROUTING; then echo " - importing filtered OpenStreetMap data into pgRouting" - $DEPLOY_DIR/osm2pgrouting/build/osm2pgrouting -file "$DEPLOY_DIR/$OSM_FILE_FILTERED" -conf "$OSM2PGROUTING_MAPPING_CONF" -dbname $PG_DB_NAME -user $PG_DB_USER -passwd $PG_DB_PASSWORD -clean -prefixtables $TABLE_PREFIX >> "import_osm2pgrouting_$NAME.log" 2>&1 + $DEPLOY_DIR/osm2pgrouting/build/osm2pgrouting -file "$DATA_DIR/$OSM_FILE_FILTERED" -conf "$OSM2PGROUTING_MAPPING_CONF" -dbname $PG_DB_NAME -user $PG_DB_USER -passwd $PG_DB_PASSWORD -clean -prefixtables $TABLE_PREFIX >> "import_osm2pgrouting_$NAME.log" 2>&1 echo " - creating pgRouting topology" PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost -d "$PG_DB_NAME" -c "SELECT pgr_createTopology('${TABLE_PREFIX}ways', $TOPOLOGY_TOLERANCE, 'the_geom', 'gid');" >> "$WORKING_DIR/setup_database_$NAME.log" 2>&1 @@ -120,7 +120,7 @@ fn_import_data() { if $AVAILABLE_NEO4J_SPATIAL; then echo " - importing filtered OpenStreetMap data into neo4j-spatial" cd $DEPLOY_DIR/neo4j-spatial - mvn exec:java -Dexec.mainClass=org.neo4j.gis.spatial.osm.OSMImporter -Dexec.args="$DEPLOY_DIR/neo4j/data/graph.db $DEPLOY_DIR/$OSM_FILE_FILTERED" >> $WORKING_DIR/import_osm2neo4j.log 2>&1 + mvn exec:java -Dexec.mainClass=org.neo4j.gis.spatial.osm.OSMImporter -Dexec.args="$DEPLOY_DIR/neo4j/data/graph.db $DATA_DIR/$OSM_FILE_FILTERED" >> $WORKING_DIR/import_osm2neo4j.log 2>&1 cd $WORKING_DIR fi @@ -196,6 +196,17 @@ if $AVAILABLE_GEOSERVER; then fi fi +if $AVAILABLE_SPATIALITE_ADMIN; then + echo "Importing spatialite database" + fn_download_newer $DOWNLOAD_DIR/isochrone.db $CACHE_DIR_REMOTE/201505_spatialite.db + + cp $DOWNLOAD_DIR/isochrone.db $DATA_DIR/isochrone.db + + echo " - setting spatialite database permissions" + chown -R apache:apache $DATA_DIR/isochrone.db + chmod -R -g+rwX $DATA_DIR/isochrone.db +fi + END=$(date +%s) TOTAL=$(( $END - $START )) diff --git a/bootstrap/prepareEnvironment.sh b/bootstrap/prepareEnvironment.sh index 7f984c4dbbaabc205d6e30a1fcfe9d1558300e64..ab3dc40570cf533da9f6f008862de59d2e89b111 100755 --- a/bootstrap/prepareEnvironment.sh +++ b/bootstrap/prepareEnvironment.sh @@ -44,7 +44,7 @@ if [ ! -f "${SCRIPT_DIR}/config.sh" ]; then fi source "${SCRIPT_DIR}/config.sh" -fn_arg2string PG_DB_PASSWORD "${1}" "${TOMCAT_PASSWORD}" +fn_arg2string TOMCAT_PASSWORD "${1}" "${TOMCAT_PASSWORD}" fn_arg2boolean IS_LOCAL_TEST_DEPLOY "${2}" "${IS_LOCAL_TEST_DEPLOY}" ###################################### @@ -106,6 +106,8 @@ OSM2PGROUTING_MAPPING_CONF="$DEPLOY_DIR/osm2pgrouting/mapconfig.xml" OSMOSIS_VERSION="0.43.1" OSMOSIS_FILE="osmosis-$OSMOSIS_VERSION.zip" OSMOSIS_DOWNLOAD_URL="http://bretth.dev.openstreetmap.org/osmosis-build/$OSMOSIS_FILE" +PHPLITEADMIN_VERSION="v1-9-5" +PHPLITEADMIN_URL="https://phpliteadmin.googlecode.com/files/phpliteAdmin_$PHPLITEADMIN_VERSION.zip" POSTGIS_GIT_URL="https://github.com/postgis/postgis.git" POSTGIS_VERSION="auto" # activate to install from repository #POSTGIS_VERSION="2.1.5" # activate to install from source @@ -126,6 +128,9 @@ REPO_RPMFORGE_32="auto" REPO_RPMFORGE_64="auto" REPO_RPMFORGE_CONFIG="/etc/yum.repos.d/rpmforge.repo" SELINUX_CONFIG="/etc/selinux/config" +SPATIALITE_VERSION="4.2.0" +SPATIALITE_FILE="libspatialite-$SPATIALITE_VERSION.tar.gz" +SPATIALITE_URL="http://www.gaia-gis.it/gaia-sins/$SPATIALITE_FILE" TABLE_PREFIX_BZ="bz_" TABLE_PREFIX_IBK="ibk_" TABLE_PREFIX_IT="it_" @@ -204,6 +209,9 @@ if $IS_LOCAL_TEST_DEPLOY; then INSTALL_ISOCHRONE_RELEASE=false INSTALL_ISOCHRONE_SNAPSHOT=false fi +if $INSTALL_SPATIALITE_ADMIN; then + INSTALL_HTTPD=true +fi if $INSTALL_GEOSERVER || $INSTALL_ISOCHRONE_LOCAL || $INSTALL_ISOCHRONE_RELEASE || $INSTALL_ISOCHRONE_SNAPSHOT || $INSTALL_PROJECT_PSIPROBE; then INSTALL_TOMCAT=true fi @@ -288,10 +296,10 @@ mkdir -p $WORKING_DIR cd $WORKING_DIR echo "Configuring timezone" -cp /usr/share/zoneinfo/Europe/Vienna /etc/localtime >> setup_timezone.log 2>&1 +cp /usr/share/zoneinfo/Europe/Vienna /etc/localtime >> $WORKING_DIR/setup_timezone.log 2>&1 echo "Installing utils (gcc, git, ...)" -yum -y install gcc gcc-c++ git gzip iptables-services nano nmap sed tar unzip wget >> install_utils.log 2>&1 +yum -y install gcc gcc-c++ git gzip iptables-services nano nmap sed tar unzip wget >> $WORKING_DIR/install_utils.log 2>&1 ############################ # Security preparations # @@ -306,7 +314,7 @@ else fi if [ $(getenforce) == "Enforcing" ]; then - setenforce 0 >> stop_selinux.log 2>&1 + setenforce 0 >> $WORKING_DIR/stop_selinux.log 2>&1 fi sed -i 's/SELINUX=enabled/SELINUX=disabled/' $SELINUX_CONFIG sed -i 's/SELINUX=enforcing/SELINUX=permissive/' $SELINUX_CONFIG @@ -320,7 +328,7 @@ if [ ! $REPO_ELGIS == "none" ]; then if [ $POSTGRESQL_SHORT_VERSION \> "93" ]; then echo "Installing elgis repository" fn_download $DOWNLOAD_DIR/elgis-repo.rpm $REPO_ELGIS - yum -y localinstall $DOWNLOAD_DIR/elgis-repo.rpm >> install_elgis_repo.log 2>&1 + yum -y localinstall $DOWNLOAD_DIR/elgis-repo.rpm >> $WORKING_DIR/install_elgis_repo.log 2>&1 echo " - enabled" fi fi @@ -329,7 +337,7 @@ if [ ! $REPO_EPEL == "none" ]; then # Epel Repository is needed for dependencies (gdal!) of postgresql/postgis/pgRouting echo "Installing epel repository" fn_download $DOWNLOAD_DIR/epel-repo.rpm $REPO_EPEL - yum -y localinstall $DOWNLOAD_DIR/epel-repo.rpm >> install_epel_repo.log 2>&1 + yum -y localinstall $DOWNLOAD_DIR/epel-repo.rpm >> $WORKING_DIR/install_epel_repo.log 2>&1 echo " - enabled" fi @@ -342,14 +350,14 @@ if $INSTALL_POSTGRES; then echo "Installing $POSTGRESQL_SERVICE_NAME repository" fn_download $DOWNLOAD_DIR/postgresql-repo.rpm $REPO_POSTGRESQL - yum -y localinstall $DOWNLOAD_DIR/postgresql-repo.rpm >> install_postgresql_repo.log 2>&1 + yum -y localinstall $DOWNLOAD_DIR/postgresql-repo.rpm >> $WORKING_DIR/install_postgresql_repo.log 2>&1 echo " - enabled" fi # RpmForge is deactivated by default and has to be explicitly activated when using yum echo "Installing rpmForge repository" fn_download_newer $DOWNLOAD_DIR/rpmforge-repo.rpm $REPO_RPMFORGE -yum -y localinstall $DOWNLOAD_DIR/rpmforge-repo.rpm >> install_rpmforge_repo.log 2>&1 +yum -y localinstall $DOWNLOAD_DIR/rpmforge-repo.rpm >> $WORKING_DIR/install_rpmforge_repo.log 2>&1 echo " - disabled" sed -i 's/enabled = 1/enabled = 0/' $REPO_RPMFORGE_CONFIG @@ -384,6 +392,8 @@ if $INSTALL_PGROUTING; then echo " - pgRouting $PGROUTING_VERSION" fi fi +if $INSTALL_SPATIALITE; then echo " - spatialite $SPATIALITE_VERSION"; fi +if $INSTALL_SPATIALITE_ADMIN; then echo " - phpLiteAdmin $PHPLITEADMIN_VERSION"; fi if $INSTALL_TOMCAT; then echo " - tomcat $TOMCAT_VERSION"; fi if $INSTALL_GEOSERVER; then echo " - geoserver $GEOSERVER_VERSION"; fi if $INSTALL_POSTGRES_ADMIN; then echo " - phpPgAdmin"; fi @@ -400,18 +410,18 @@ echo " Performing installations ($(date +%H:%M:%S)):" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo "Installing cmake" -yum -y --enablerepo=rpmforge-extras install cmake >> install_cmake.log 2>&1 +yum -y --enablerepo=rpmforge-extras install cmake >> $WORKING_DIR/install_cmake.log 2>&1 if $INSTALL_HTTPD; then echo "Installing httpd server" - yum -y install httpd >> install_httpd.log 2>&1 + yum -y install httpd >> $WORKING_DIR/install_httpd.log 2>&1 fi if $INSTALL_POSTGRES; then echo "Installing $POSTGRESQL_SERVICE_NAME" groupadd -g 26 postgres useradd -u 26 -g 26 -c "PostgreSQL Server" postgres - yum -y install $POSTGRESQL_PKG_NAME $POSTGRESQL_PKG_NAME-contrib $POSTGRESQL_PKG_NAME-server >> install_postgresql.log 2>&1 + yum -y install $POSTGRESQL_PKG_NAME $POSTGRESQL_PKG_NAME-contrib $POSTGRESQL_PKG_NAME-server >> $WORKING_DIR/install_postgresql.log 2>&1 echo " - exporting postgresql options" echo "export PostgreSQL_ROOT=/usr/pgsql-$POSTGRESQL_VERSION" >> /etc/profile.d/postgresql.sh @@ -422,15 +432,15 @@ fi if $INSTALL_POSTGIS; then if [ "$ARMADILLO_FILE" != "none" ]; then fn_download_newer $DOWNLOAD_DIR/$ARMADILLO_FILE "$ARMADILLO_URL" - yum -y localinstall $DOWNLOAD_DIR/$ARMADILLO_FILE >> install_armadillo.log 2>&1 + yum -y localinstall $DOWNLOAD_DIR/$ARMADILLO_FILE >> $WORKING_DIR/install_armadillo.log 2>&1 fi if [ "$POSTGIS_VERSION" == "auto" ]; then echo "Installing postgis2 (from repository)" - yum -y install postgis2_$POSTGRESQL_SHORT_VERSION >> install_postgis.log 2>&1 + yum -y install postgis2_$POSTGRESQL_SHORT_VERSION >> $WORKING_DIR/install_postgis.log 2>&1 else echo "Installing postgis dependencies" - yum -y install gdal-devel geos-devel json-c-devel libxml2-devel proj-devel >> install_postgis_deps.log 2>&1 + yum -y install gdal-devel geos-devel json-c-devel libxml2-devel proj-devel >> $WORKING_DIR/install_postgis_deps.log 2>&1 echo "Installing postgis $POSTGIS_VERSION (from source)" git clone -q "$POSTGIS_GIT_URL" $DEPLOY_DIR/postgis-$POSTGIS_VERSION @@ -446,25 +456,25 @@ fi if $INSTALL_POSTGRES_ADMIN; then echo "Installing phpPgAdmin" - yum -y install phpPgAdmin >> install_phpPgAdmin.log 2>&1 + yum -y install phpPgAdmin >> $WORKING_DIR/install_phpPgAdmin.log 2>&1 fi if $INSTALL_PGROUTING; then if [ "$PGROUTING_VERSION" == "auto" ]; then echo "Installing pgRouting (from repository)" - yum -y install pgrouting_$POSTGRESQL_SHORT_VERSION >> install_pgRouting.log 2>&1 + yum -y install pgrouting_$POSTGRESQL_SHORT_VERSION >> $WORKING_DIR/install_pgRouting.log 2>&1 else echo "Installing pgRouting dependencies" - yum -y install boost-devel $POSTGRESQL_PKG_NAME-devel $POSTGRESQL_PKG_NAME-libs postgis2_$POSTGRESQL_SHORT_VERSION-devel >> install_pgRouting_deps.log 2>&1 + yum -y install boost-devel $POSTGRESQL_PKG_NAME-devel $POSTGRESQL_PKG_NAME-libs postgis2_$POSTGRESQL_SHORT_VERSION-devel >> $WORKING_DIR/install_pgRouting_deps.log 2>&1 # echo "Installing CGAL 4.3" # fn_download_newer $DOWNLOAD_DIR/CGAL-4.3.zip https://gforge.inria.fr/frs/download.php/32996/CGAL-4.3.zip # cp $DOWNLOAD_DIR/CGAL-4.3.zip $DEPLOY_DIR/CGAL-4.3.zip -# unzip -o -d $DEPLOY_DIR $DEPLOY_DIR/CGAL-4.3.zip >> install_cgal.log 2>&1 +# unzip -o -d $DEPLOY_DIR $DEPLOY_DIR/CGAL-4.3.zip >> $WORKING_DIR/install_cgal.log 2>&1 # cd $DEPLOY_DIR/CGAL-4.3 -# cmake . >> install_cgal.log 2>&1 -# make >> install_cgal.log 2>&1 -# make install >> install_cgal.log 2>&1 +# cmake . >> $WORKING_DIR/install_cgal.log 2>&1 +# make >> $WORKING_DIR/install_cgal.log 2>&1 +# make install >> $WORKING_DIR/install_cgal.log 2>&1 # cd $WORKING_DIR echo "Installing pgRouting $PGROUTING_VERSION (from source)" @@ -484,16 +494,16 @@ fi if $INSTALL_JAVA; then echo "Installing java (oracle jdk-$JAVA_VERSION)" fn_download_newer $DOWNLOAD_DIR/$JAVA_FILE $CACHE_DIR_REMOTE/$JAVA_FILE - yum -y localinstall $DOWNLOAD_DIR/$JAVA_FILE >> install_java.log 2>&1 - ln -sf /usr/java/latest $DEPLOY_DIR/jdk >> setup_java.log 2>&1 - ln -sf /usr/java/latest/jre $DEPLOY_DIR/jre >> setup_java.log 2>&1 + yum -y localinstall $DOWNLOAD_DIR/$JAVA_FILE >> $WORKING_DIR/install_java.log 2>&1 + ln -sf /usr/java/latest $DEPLOY_DIR/jdk >> $WORKING_DIR/setup_java.log 2>&1 + ln -sf /usr/java/latest/jre $DEPLOY_DIR/jre >> $WORKING_DIR/setup_java.log 2>&1 echo " - setting alternatives for java" - alternatives --install /usr/bin/java java $DEPLOY_DIR/jre/bin/java 200000 >> setup_java.log 2>&1 - alternatives --install /usr/bin/javaws javaws $DEPLOY_DIR/jre/bin/javaws 200000 >> setup_java.log 2>&1 - alternatives --set java $DEPLOY_DIR/jre/bin/java >> setup_java.log 2>&1 - alternatives --install /usr/bin/javac javac $DEPLOY_DIR/jdk/bin/javac 200000 >> setup_java.log 2>&1 - alternatives --install /usr/bin/jar jar $DEPLOY_DIR/jdk/bin/jar 200000 >> setup_java.log 2>&1 + alternatives --install /usr/bin/java java $DEPLOY_DIR/jre/bin/java 200000 >> $WORKING_DIR/setup_java.log 2>&1 + alternatives --install /usr/bin/javaws javaws $DEPLOY_DIR/jre/bin/javaws 200000 >> $WORKING_DIR/setup_java.log 2>&1 + alternatives --set java $DEPLOY_DIR/jre/bin/java >> $WORKING_DIR/setup_java.log 2>&1 + alternatives --install /usr/bin/javac javac $DEPLOY_DIR/jdk/bin/javac 200000 >> $WORKING_DIR/setup_java.log 2>&1 + alternatives --install /usr/bin/jar jar $DEPLOY_DIR/jdk/bin/jar 200000 >> $WORKING_DIR/setup_java.log 2>&1 echo " - exporting java options" echo "export JAVA_HOME=$DEPLOY_DIR/jre" >> /etc/profile.d/java.sh @@ -502,19 +512,19 @@ if $INSTALL_JAVA; then echo " - installing strong cryptographie" fn_download_newer $DOWNLOAD_DIR/$JAVA_CRYPTO_FILE $CACHE_DIR_REMOTE/$JAVA_CRYPTO_FILE - unzip -j -u -d $DEPLOY_DIR/jre/lib/security $DOWNLOAD_DIR/$JAVA_CRYPTO_FILE >> setup_java.log 2>&1 + unzip -j -u -d $DEPLOY_DIR/jre/lib/security $DOWNLOAD_DIR/$JAVA_CRYPTO_FILE >> $WORKING_DIR/setup_java.log 2>&1 fi if $INSTALL_TOMCAT; then echo "Installing $TOMCAT_NAME $TOMCAT_VERSION servlet container" -# yum -y install $TOMCAT_NAME $TOMCAT_NAME-webapps $TOMCAT_NAME-admin-webapps >> install_tomcat.log 2>&1 +# yum -y install $TOMCAT_NAME $TOMCAT_NAME-webapps $TOMCAT_NAME-admin-webapps >> $WORKING_DIR/install_tomcat.log 2>&1 # ln -sf /usr/share/$TOMCAT_NAME $DEPLOY_DIR/$TOMCAT_NAME fn_download_newer $DOWNLOAD_DIR/$TOMCAT_FILE $TOMCAT_DOWNLOAD_URL cp $DOWNLOAD_DIR/$TOMCAT_FILE $DEPLOY_DIR/$TOMCAT_FILE - tar -xvzf $DEPLOY_DIR/$TOMCAT_FILE -C $DEPLOY_DIR >> install_tomcat.log 2>&1 - rm -f $DEPLOY_DIR/$TOMCAT_FILE >> install_tomcat.log 2>&1 - ln -sf $DEPLOY_DIR/apache-tomcat-$TOMCAT_VERSION $DEPLOY_DIR/$TOMCAT_NAME >> install_tomcat.log 2>&1 + tar -xvf $DEPLOY_DIR/$TOMCAT_FILE -C $DEPLOY_DIR >> $WORKING_DIR/install_tomcat.log 2>&1 + rm -f $DEPLOY_DIR/$TOMCAT_FILE >> $WORKING_DIR/install_tomcat.log 2>&1 + ln -sf $DEPLOY_DIR/apache-tomcat-$TOMCAT_VERSION $DEPLOY_DIR/$TOMCAT_NAME >> $WORKING_DIR/install_tomcat.log 2>&1 echo " - exporting catalina options" if $INSTALL_GEOSERVER; then @@ -528,32 +538,32 @@ fi if $INSTALL_GEOSERVER; then echo "Installing geoserver $GEOSERVER_VERSION" fn_download_newer $DOWNLOAD_DIR/$GEOSERVER_FILE $GEOSERVER_DOWNLOAD_URL - unzip -o -d $TOMCAT_WEBAPP_DIR $DOWNLOAD_DIR/$GEOSERVER_FILE geoserver.war >> install_geoserver.log 2>&1 + unzip -o -d $TOMCAT_WEBAPP_DIR $DOWNLOAD_DIR/$GEOSERVER_FILE geoserver.war >> $WORKING_DIR/install_geoserver.log 2>&1 echo " - copying web archive into tomcat" mkdir -p $TOMCAT_WEBAPP_DIR/geoserver - unzip -o -d $TOMCAT_WEBAPP_DIR/geoserver $TOMCAT_WEBAPP_DIR/geoserver.war >> install_geoserver.log 2>&1 - rm -f $TOMCAT_WEBAPP_DIR/geoserver.war >> install_geoserver.log 2>&1 + unzip -o -d $TOMCAT_WEBAPP_DIR/geoserver $TOMCAT_WEBAPP_DIR/geoserver.war >> $WORKING_DIR/install_geoserver.log 2>&1 + rm -f $TOMCAT_WEBAPP_DIR/geoserver.war >> $WORKING_DIR/install_geoserver.log 2>&1 echo " - creating geoserver data directory" -# mkdir -p $DEPLOY_DIR/geoserver >> install_geoserver.log 2>&1 -# mv $TOMCAT_WEBAPP_DIR/geoserver/data $DEPLOY_DIR/geoserver >> install_geoserver.log 2>&1 - mkdir -p $DEPLOY_DIR/geoserver/data >> install_geoserver.log 2>&1 +# mkdir -p $DEPLOY_DIR/geoserver >> $WORKING_DIR/install_geoserver.log 2>&1 +# mv $TOMCAT_WEBAPP_DIR/geoserver/data $DEPLOY_DIR/geoserver >> $WORKING_DIR/install_geoserver.log 2>&1 + mkdir -p $DEPLOY_DIR/geoserver/data >> $WORKING_DIR/install_geoserver.log 2>&1 echo "Installing geoserver-shell $GEOSERVER_SHELL_VERSION" fn_download_newer $DOWNLOAD_DIR/$GEOSERVER_SHELL_FILE $CACHE_DIR_REMOTE/$GEOSERVER_SHELL_FILE - unzip -o -d $DEPLOY_DIR $DOWNLOAD_DIR/$GEOSERVER_SHELL_FILE >> install_geoserver_shell.log 2>&1 + unzip -o -d $DEPLOY_DIR $DOWNLOAD_DIR/$GEOSERVER_SHELL_FILE >> $WORKING_DIR/install_geoserver_shell.log 2>&1 ln -sf $DEPLOY_DIR/gs-shell-0.2-SNAPSHOT $DEPLOY_DIR/gs-shell - make >> install_geoserver_shell.log 2>&1 - make install >> install_geoserver_shell.log 2>&1 + make >> $WORKING_DIR/install_geoserver_shell.log 2>&1 + make install >> $WORKING_DIR/install_geoserver_shell.log 2>&1 fi if $INSTALL_ISOCHRONE_LOCAL; then echo "Installing template project \"isochrone (local testing)\"" echo " - creating war using gradle from $TEMPLATE_DIR_ISOCHRONE" - $TEMPLATE_DIR_ISOCHRONE/gradlew -b $TEMPLATE_DIR_ISOCHRONE/build.gradle -c $TEMPLATE_DIR_ISOCHRONE/settings.gradle clean war >> install_isochrone_local.log 2>&1 - unzip -o -d $TOMCAT_WEBAPP_DIR/localTesting $TEMPLATE_DIR_ISOCHRONE/build/libs/isochrone-*.war >> install_isochrone_local.log 2>&1 + $TEMPLATE_DIR_ISOCHRONE/gradlew -b $TEMPLATE_DIR_ISOCHRONE/build.gradle -c $TEMPLATE_DIR_ISOCHRONE/settings.gradle clean war >> $WORKING_DIR/install_isochrone_local.log 2>&1 + unzip -o -d $TOMCAT_WEBAPP_DIR/localTesting $TEMPLATE_DIR_ISOCHRONE/build/libs/isochrone-*.war >> $WORKING_DIR/install_isochrone_local.log 2>&1 fi if $INSTALL_ISOCHRONE_RELEASE; then @@ -562,8 +572,8 @@ if $INSTALL_ISOCHRONE_RELEASE; then fn_download $DOWNLOAD_DIR/isochrone.war $NEXUS_RELEASE_ISOCHRONE cp $DOWNLOAD_DIR/isochrone.war $TOMCAT_WEBAPP_DIR/isochrone.war - unzip -o -d $TOMCAT_WEBAPP_DIR/isochrone $TOMCAT_WEBAPP_DIR/isochrone.war >> install_isochrone_release.log 2>&1 - rm -f $TOMCAT_WEBAPP_DIR/isochrone.war >> install_isochrone_release.log 2>&1 + unzip -o -d $TOMCAT_WEBAPP_DIR/isochrone $TOMCAT_WEBAPP_DIR/isochrone.war >> $WORKING_DIR/install_isochrone_release.log 2>&1 + rm -f $TOMCAT_WEBAPP_DIR/isochrone.war >> $WORKING_DIR/install_isochrone_release.log 2>&1 fi if $INSTALL_ISOCHRONE_SNAPSHOT; then @@ -572,8 +582,8 @@ if $INSTALL_ISOCHRONE_SNAPSHOT; then fn_download $DOWNLOAD_DIR/testing.war $NEXUS_SNAPSHOT_ISOCHRONE cp $DOWNLOAD_DIR/testing.war $TOMCAT_WEBAPP_DIR/testing.war - unzip -o -d $TOMCAT_WEBAPP_DIR/testing $TOMCAT_WEBAPP_DIR/testing.war >> install_isochrone_snapshot.log 2>&1 - rm -f $TOMCAT_WEBAPP_DIR/testing.war >> install_isochrone_snapshot.log 2>&1 + unzip -o -d $TOMCAT_WEBAPP_DIR/testing $TOMCAT_WEBAPP_DIR/testing.war >> $WORKING_DIR/install_isochrone_snapshot.log 2>&1 + rm -f $TOMCAT_WEBAPP_DIR/testing.war >> $WORKING_DIR/install_isochrone_snapshot.log 2>&1 fi if $INSTALL_ISOCHRONE_TOOLS; then @@ -589,15 +599,15 @@ if $INSTALL_PROJECT_PSIPROBE; then fn_download_newer $DOWNLOAD_DIR/$TEMPLATE_PSIPROBE_FILE "$TEMPLATE_PSIPROBE_DOWNLOAD_URL" unzip -o -d $TOMCAT_WEBAPP_DIR $DOWNLOAD_DIR/$TEMPLATE_PSIPROBE_FILE probe.war - unzip -o -d $TOMCAT_WEBAPP_DIR/psiprobe $TOMCAT_WEBAPP_DIR/probe.war >> install_psiprobe.log 2>&1 - rm -f $TOMCAT_WEBAPP_DIR/probe.war >> install_psiprobe.log 2>&1 + unzip -o -d $TOMCAT_WEBAPP_DIR/psiprobe $TOMCAT_WEBAPP_DIR/probe.war >> $WORKING_DIR/install_psiprobe.log 2>&1 + rm -f $TOMCAT_WEBAPP_DIR/probe.war >> $WORKING_DIR/install_psiprobe.log 2>&1 fi if $INSTALL_MAVEN; then echo "Installing maven $MAVEN_VERSION" mkdir -p $CACHE_DIR_LOCAL/maven fn_download_newer $DOWNLOAD_DIR/$MAVEN_FILE "$MAVEN_DOWNLOAD_URL" - unzip -o -d $DEPLOY_DIR $DOWNLOAD_DIR/$MAVEN_FILE>> install_maven.log 2>&1 + unzip -o -d $DEPLOY_DIR $DOWNLOAD_DIR/$MAVEN_FILE >> $WORKING_DIR/install_maven.log 2>&1 ln -sf $DEPLOY_DIR/apache-maven-$MAVEN_VERSION $DEPLOY_DIR/apache-maven echo " - exporting maven options" @@ -606,18 +616,18 @@ if $INSTALL_MAVEN; then source /etc/profile.d/maven.sh echo " - configuring maven to use vagrant-cache plugin" -# yum -y install xmlstarlet >> install_xmlstarlet.log +# yum -y install xmlstarlet >> $WORKING_DIR/install_xmlstarlet.log # xmlstarlet edit --inplace --subnode "/_:settings" -t elem -n "localRepository" -v "$CACHE_DIR_LOCAL/maven" $DEPLOY_DIR/apache-maven/conf/settings.xml cp $SHARED_CONF_DIR/maven-settings.xml $DEPLOY_DIR/apache-maven/conf/settings.xml fi if $INSTALL_NEO4J; then echo "Installing neo4j dependencies" - yum install -y lsof >> install_neo4j_deps.log 2>&1 + yum install -y lsof >> $WORKING_DIR/install_neo4j_deps.log 2>&1 echo "Installing neo4j $NEO4J_VERSION" fn_download_newer $DOWNLOAD_DIR/$NEO4J_FILE "$NEO4J_DOWNLOAD_URL" - tar -xvzf $DOWNLOAD_DIR/$NEO4J_FILE -C $DEPLOY_DIR >> install_neo4j.log 2>&1 + tar -xvf $DOWNLOAD_DIR/$NEO4J_FILE -C $DEPLOY_DIR >> $WORKING_DIR/install_neo4j.log 2>&1 ln -sf $DEPLOY_DIR/neo4j-community-$NEO4J_VERSION $DEPLOY_DIR/neo4j echo " - enabling neo4j network access" @@ -650,14 +660,14 @@ if $IMPORT_DATA_OSM; then echo "Installing osmosis $OSMOSIS_VERSION" fn_download_newer $DOWNLOAD_DIR/$OSMOSIS_FILE "$OSMOSIS_DOWNLOAD_URL" mkdir -p $DEPLOY_DIR/osmosis-$OSMOSIS_VERSION - unzip -o -d $DEPLOY_DIR/osmosis-$OSMOSIS_VERSION $DOWNLOAD_DIR/$OSMOSIS_FILE >> install_osmosis.log 2>&1 + unzip -o -d $DEPLOY_DIR/osmosis-$OSMOSIS_VERSION $DOWNLOAD_DIR/$OSMOSIS_FILE >> $WORKING_DIR/install_osmosis.log 2>&1 ln -sf $DEPLOY_DIR/osmosis-* $DEPLOY_DIR/osmosis chmod a+x $DEPLOY_DIR/osmosis/bin/osmosis fi if ( $IMPORT_DATA_OSM || $IMPORT_DATA_OSM_CACHED ) && $INSTALL_PGROUTING; then echo "Installing osm2pgrouting dependencies" - yum install -y expat-devel boost-devel $POSTGRESQL_PKG_NAME-devel >> install_osm2pgrouting_deps.log 2>&1 + yum install -y expat-devel boost-devel $POSTGRESQL_PKG_NAME-devel >> $WORKING_DIR/install_osm2pgrouting_deps.log 2>&1 echo "Installing osm2pgrouting $OSM2PGROUTING_VERSION" git clone -q "$OSM2PGROUTING_GIT_URL" $DEPLOY_DIR/osm2pgrouting-$OSM2PGROUTING_VERSION @@ -672,6 +682,38 @@ if ( $IMPORT_DATA_OSM || $IMPORT_DATA_OSM_CACHED ) && $INSTALL_PGROUTING; then cd $WORKING_DIR fi +if $INSTALL_SPATIALITE; then + echo "Installing spatialite dependencies" + yum -y install sqlite-devel zlib-devel proj-devel freexl-devel geos-devel libxml2-devel >> $WORKING_DIR/install_spatialite_deps.log 2>&1 + + echo "Installing spatialite $SPATIALITE_VERSION" + echo " - downloading & unpacking source" + fn_download_newer $DOWNLOAD_DIR/$SPATIALITE_FILE $SPATIALITE_URL + tar -xvf $DOWNLOAD_DIR/$SPATIALITE_FILE -C $DEPLOY_DIR >> $WORKING_DIR/install_spatialite.log 2>&1 + ln -sf $DEPLOY_DIR/libspatialite* $DEPLOY_DIR/libspatialite + + echo " - compiling from source" + cd $DEPLOY_DIR/libspatialite + ./configure >> $WORKING_DIR/install_spatialite.log 2>&1 + make >> $WORKING_DIR/install_spatialite.log 2>&1 + make install-strip >> $WORKING_DIR/install_spatialite.log 2>&1 + + cd $WORKING_DIR +fi + +if $INSTALL_SPATIALITE_ADMIN; then + echo "Installing phpLiteAdmin" + fn_download_newer $DOWNLOAD_DIR/phpliteadmin.zip $PHPLITEADMIN_URL + + mkdir -p $DEPLOY_DIR/phpliteadmin + unzip -o -d $DEPLOY_DIR/phpliteadmin $DOWNLOAD_DIR/phpliteadmin.zip >> $WORKING_DIR/install_phpLiteAdmin.log 2>&1 + ln -sf $DEPLOY_DIR/phpliteadmin /var/www/html/phpliteadmin + + echo " - setting permissions" + chown -R apache:apache $DEPLOY_DIR/phpliteadmin + chown -R apache:apache /var/www/html/phpliteadmin +fi + echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo " Installations performed" echo " Preparing services ($(date +%H:%M:%S)):" @@ -681,9 +723,9 @@ if $INSTALL_POSTGRES; then echo "Initializing postgresql database" if [ -f "$PostgreSQL_ROOT/bin/postgresql$POSTGRESQL_SHORT_VERSION-setup" ]; then rm -rf $POSTGRESQL_DATA_DIR - $PostgreSQL_ROOT/bin/postgresql$POSTGRESQL_SHORT_VERSION-setup initdb >> initialize_postgresql.log 2>&1 + $PostgreSQL_ROOT/bin/postgresql$POSTGRESQL_SHORT_VERSION-setup initdb >> $WORKING_DIR/initialize_postgresql.log 2>&1 else - service $POSTGRESQL_SERVICE_NAME initdb >> initialize_postgresql.log 2>&1 + service $POSTGRESQL_SERVICE_NAME initdb >> $WORKING_DIR/initialize_postgresql.log 2>&1 fi sleep 2 @@ -703,7 +745,7 @@ fi if $INSTALL_NEO4J; then echo "Initializing neo4j database" - $DEPLOY_DIR/neo4j/bin/neo4j -h -u $NEO4J_DB_USER install >> initialize_neo4j.log 2>&1 + $DEPLOY_DIR/neo4j/bin/neo4j -h -u $NEO4J_DB_USER install >> $WORKING_DIR/initialize_neo4j.log 2>&1 echo " - setting max open file limit for neo4j user" echo "$NEO4J_DB_USER soft nofile 40000" >> /etc/security/limits.conf @@ -714,10 +756,10 @@ fi if $INSTALL_TOMCAT; then echo "Configuring tomcat users" - groupadd -g 521 $TOMCAT_USER >> install_tomcat.log 2>&1 - useradd -u 521 -g 521 -c "Tomcat Service Account" -d $DEPLOY_DIR/apache-tomcat-$TOMCAT_VERSION $TOMCAT_USER >> install_tomcat.log 2>&1 - chown -R $TOMCAT_USER:$TOMCAT_USER $DEPLOY_DIR/apache-tomcat-$TOMCAT_VERSION >> install_tomcat.log 2>&1 - chown -R $TOMCAT_USER:$TOMCAT_USER $DEPLOY_DIR/$TOMCAT_NAME >> install_tomcat.log 2>&1 + groupadd -g 521 $TOMCAT_USER >> $WORKING_DIR/install_tomcat.log 2>&1 + useradd -u 521 -g 521 -c "Tomcat Service Account" -d $DEPLOY_DIR/apache-tomcat-$TOMCAT_VERSION $TOMCAT_USER >> $WORKING_DIR/install_tomcat.log 2>&1 + chown -R $TOMCAT_USER:$TOMCAT_USER $DEPLOY_DIR/apache-tomcat-$TOMCAT_VERSION >> $WORKING_DIR/install_tomcat.log 2>&1 + chown -R $TOMCAT_USER:$TOMCAT_USER $DEPLOY_DIR/$TOMCAT_NAME >> $WORKING_DIR/install_tomcat.log 2>&1 cp $SHARED_CONF_DIR/tomcat-users.xml $DEPLOY_DIR/$TOMCAT_NAME/conf/tomcat-users.xml sed -i "s/password=\"admin\"/password=\"$TOMCAT_PASSWORD\"/" $DEPLOY_DIR/$TOMCAT_NAME/conf/tomcat-users.xml @@ -732,8 +774,8 @@ if $INSTALL_TOMCAT; then fi echo "Configuring tomcat startup script" - cp $SHARED_CONF_DIR/tomcat_startscript.sh /etc/init.d/$TOMCAT_NAME >> install_tomcat.log 2>&1 - chmod 755 /etc/init.d/$TOMCAT_NAME >> install_tomcat.log 2>&1 + cp $SHARED_CONF_DIR/tomcat_startscript.sh /etc/init.d/$TOMCAT_NAME >> $WORKING_DIR/install_tomcat.log 2>&1 + chmod 755 /etc/init.d/$TOMCAT_NAME >> $WORKING_DIR/install_tomcat.log 2>&1 echo "Configuring tomcat webapps (removing unnecessary ones)" rm -rf "$TOMCAT_WEBAPP_DIR/docs" @@ -748,6 +790,22 @@ if $INSTALL_POSTGIS && $INSTALL_GEOSERVER; then chown -R $TOMCAT_USER:$TOMCAT_USER $DEPLOY_DIR/geoserver/data/user_projections fi +if $INSTALL_SPATIALITE_ADMIN; then + echo "Configuring phpLiteAdmin" + cp $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.sample.php $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php + sed -i "s/password = 'admin'/password = '${TOMCAT_PASSWORD}'/" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php + sed -i "s/directory = '\.'/directory = false/" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php + sed -i "s/subdirectories = false/subdirectories = true/" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php + sed -i "s|'path'=> 'database1.sqlite'|'path'=> '${DATA_DIR}/isochrone.db'|" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php + sed -i "s/'name'=> 'Database1'/'name'=> 'Isochrone'/" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php + sed -i "s/language = 'en'/language = 'de'/" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php + sed -i "/'path'=> 'database2.sqlite'/d" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php + sed -i "/'name'=> 'Database 2'/d" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php + sed -i ':a;N;$!ba;s/\tarray(/lineWillBeDeleted/2' $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php + sed -i ':a;N;$!ba;s/\t),/lineWillBeDeleted/2' $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php + sed -i "/lineWillBeDeleted/d" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php +fi + echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo " Services prepared" echo " Starting services ($(date +%H:%M:%S)):"