mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
split instruction into software installation and import
Basically leaves the part that needs to be done by the automatic vagrant script in the bash script and moves the remaining part into an OS-independent md file. Also fixes some of the instructions for CentOS. Now almost runs through (some minor issue with permission remains).
This commit is contained in:
6
Vagrantfile
vendored
6
Vagrantfile
vendored
@@ -3,12 +3,14 @@
|
|||||||
|
|
||||||
Vagrant.configure("2") do |config|
|
Vagrant.configure("2") do |config|
|
||||||
# Apache webserver
|
# Apache webserver
|
||||||
config.vm.network "forwarded_port", guest: 8089, host: 8089
|
config.vm.network "forwarded_port", guest: 80, host: 8089
|
||||||
|
|
||||||
# If true, then any SSH connections made will enable agent forwarding.
|
# If true, then any SSH connections made will enable agent forwarding.
|
||||||
config.ssh.forward_agent = true
|
config.ssh.forward_agent = true
|
||||||
|
|
||||||
#config.vm.synced_folder ".", "/home/vagrant/Nominatim"
|
if ENV['CHECKOUT'] != 'y' then
|
||||||
|
config.vm.synced_folder ".", "/home/vagrant/Nominatim"
|
||||||
|
end
|
||||||
|
|
||||||
config.vm.define "ubuntu" do |sub|
|
config.vm.define "ubuntu" do |sub|
|
||||||
sub.vm.box = "ubuntu/trusty64"
|
sub.vm.box = "ubuntu/trusty64"
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ set (INSTALLDOCFILES
|
|||||||
|
|
||||||
foreach (df ${INSTALLDOCFILES})
|
foreach (df ${INSTALLDOCFILES})
|
||||||
ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${df}.md
|
ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${df}.md
|
||||||
COMMAND sed [=['/^#!/d;s:^#\( \|$$\)::;s/.*#DOCS://']=] ${PROJECT_SOURCE_DIR}/vagrant/${df}.sh > ${CMAKE_CURRENT_BINARY_DIR}/${df}.md
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bash2md.sh ${PROJECT_SOURCE_DIR}/vagrant/${df}.sh ${CMAKE_CURRENT_BINARY_DIR}/${df}.md
|
||||||
MAIN_DEPENDENCY ${PROJECT_SOURCE_DIR}/vagrant/${df}.sh
|
MAIN_DEPENDENCY ${PROJECT_SOURCE_DIR}/vagrant/${df}.sh
|
||||||
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bash2md.sh
|
||||||
COMMENT "Creating markdown docs from vagrant/${df}.sh"
|
COMMENT "Creating markdown docs from vagrant/${df}.sh"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -16,3 +17,11 @@ ADD_CUSTOM_TARGET( md_install_${df} ALL
|
|||||||
)
|
)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
set (GENERALDOCFILES
|
||||||
|
Import_and_update.md
|
||||||
|
)
|
||||||
|
|
||||||
|
foreach (df ${GENERALDOCFILES})
|
||||||
|
CONFIGURE_FILE(${df} ${df})
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
|||||||
77
docs/Import_and_update.md
Normal file
77
docs/Import_and_update.md
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
Importing a new database
|
||||||
|
========================
|
||||||
|
|
||||||
|
The following instructions explain how to create a Nominatim database
|
||||||
|
from an OSM planet file and how to keep the database up to date. It
|
||||||
|
is assumed that you have already sucessfully installed the Nominatim
|
||||||
|
software itself, if not return to the [prerequisites page](Prerequisites.md).
|
||||||
|
|
||||||
|
Configuration setup in settings/local.php
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
There are lots of configuration settings you can tweak. Have a look
|
||||||
|
at `settings/settings.php` for a full list. Most should have a sensible default.
|
||||||
|
If you plan to import a large dataset (e.g. Europe, North America, planet),
|
||||||
|
you should also enable flatnode storage of node locations. With this
|
||||||
|
setting enabled, node coordinates are stored in a simple file instead
|
||||||
|
of the database. This will save you import time and disk storage.
|
||||||
|
Add to your settings/local.php:
|
||||||
|
|
||||||
|
@define('CONST_Osm2pgsql_Flatnode_File', '/path/to/flatnode.file');
|
||||||
|
|
||||||
|
|
||||||
|
Downloading additional data
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
### Wikipedia rankings
|
||||||
|
|
||||||
|
Wikipedia can be used as an optional auxiliary data source to help indicate
|
||||||
|
the importance of osm features. Nominatim will work without this information
|
||||||
|
but it will improve the quality of the results if this is installed.
|
||||||
|
This data is available as a binary download:
|
||||||
|
|
||||||
|
cd $NOMINATIM_SOURCE_DIR/data
|
||||||
|
wget http://www.nominatim.org/data/wikipedia_article.sql.bin
|
||||||
|
wget http://www.nominatim.org/data/wikipedia_redirect.sql.bin
|
||||||
|
|
||||||
|
Combined the 2 files are around 1.5GB and add around 30GB to the install
|
||||||
|
size of nominatim. They also increase the install time by an hour or so.
|
||||||
|
|
||||||
|
### UK postcodes
|
||||||
|
|
||||||
|
Nominatim can use postcodes from an external source to improve searches that involve a UK postcode. This data can be optionally downloaded:
|
||||||
|
|
||||||
|
cd $NOMINATIM_SOURCE_DIR/data
|
||||||
|
wget http://www.nominatim.org/data/gb_postcode_data.sql.gz
|
||||||
|
|
||||||
|
|
||||||
|
Initial Import of the Data
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
**Important:** first try the import with a small excerpt, for example from Geofabrik.
|
||||||
|
|
||||||
|
Download the data to import and load the data with the following command:
|
||||||
|
|
||||||
|
./utils/setup.php --osm-file <your data file> --all [--osm2pgsql-cache 28000] 2>&1 | tee setup.log
|
||||||
|
|
||||||
|
The --osm2pgsql-cache parameter is optional but strongly recommended for
|
||||||
|
planet imports. It sets the node cache size for the osm2pgsql import part
|
||||||
|
(see -C parameter in osm2pgsql help). 28GB are recommended for a full planet
|
||||||
|
imports, for excerpts you can use less.
|
||||||
|
Adapt to your available RAM to avoid swapping.
|
||||||
|
|
||||||
|
The import will take as little as an hour for a small country extract
|
||||||
|
and as much as 10 days for a full-scale planet import on less powerful
|
||||||
|
hardware.
|
||||||
|
|
||||||
|
|
||||||
|
Loading Additional Datasets
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
The following commands will create additional entries for countries and POI searches:
|
||||||
|
|
||||||
|
./utils/specialphrases.php --countries > data/specialphrases_countries.sql
|
||||||
|
psql -d nominatim -f data/specialphrases_countries.sql
|
||||||
|
./utils/specialphrases.php --wiki-import > data/specialphrases.sql
|
||||||
|
psql -d nominatim -f data/specialphrases.sql
|
||||||
|
|
||||||
7
docs/bash2md.sh
Executable file
7
docs/bash2md.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Extract markdown-formatted documentation from a source file
|
||||||
|
#
|
||||||
|
# Usage: bash2md.sh <infile> <outfile>
|
||||||
|
|
||||||
|
sed '/^#!/d;s:^#\( \|$\)::;s/.*#DOCS://' $1 > $2
|
||||||
@@ -1,29 +1,22 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Installing the Required Software
|
|
||||||
# ================================
|
|
||||||
#
|
|
||||||
# *Note:* these installation instructions are also available in executable
|
# *Note:* these installation instructions are also available in executable
|
||||||
# form for use with vagrant in the vagrant/ directory.
|
# form for use with vagrant in the vagrant/ directory.
|
||||||
#
|
#
|
||||||
|
# Installing the Required Software
|
||||||
|
# ================================
|
||||||
|
#
|
||||||
# These instructions expect that you have a freshly installed CentOS version 7.
|
# These instructions expect that you have a freshly installed CentOS version 7.
|
||||||
# Make sure all packages are are up-to-date by running:
|
# Make sure all packages are are up-to-date by running:
|
||||||
#
|
#
|
||||||
sudo yum update -y
|
sudo yum update -y
|
||||||
#
|
|
||||||
# Setting up Repositories
|
|
||||||
# -----------------------
|
|
||||||
#
|
|
||||||
# The standard CentOS repositories don't contain all the required packages,
|
# The standard CentOS repositories don't contain all the required packages,
|
||||||
# you need to enable the EPEL repository as well. To enable it on CentOS,
|
# you need to enable the EPEL repository as well. To enable it on CentOS,
|
||||||
# install the epel-release RPM by running:
|
# install the epel-release RPM by running:
|
||||||
|
|
||||||
sudo yum install -y epel-release
|
sudo yum install -y epel-release
|
||||||
|
|
||||||
#
|
|
||||||
# Getting the Software Packages
|
|
||||||
# -----------------------------
|
|
||||||
#
|
|
||||||
# Now you can install all packages needed for Nominatim:
|
# Now you can install all packages needed for Nominatim:
|
||||||
|
|
||||||
sudo yum install -y postgresql-server postgresql-contrib postgresql-devel postgis postgis-utils \
|
sudo yum install -y postgresql-server postgresql-contrib postgresql-devel postgis postgis-utils \
|
||||||
@@ -83,14 +76,33 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
sudo -u postgres createuser -s $USERNAME
|
sudo -u postgres createuser -s $USERNAME
|
||||||
sudo -u postgres apache
|
sudo -u postgres createuser apache
|
||||||
|
|
||||||
#
|
#
|
||||||
# Setting up the Apache Webserver
|
# Setting up the Apache Webserver
|
||||||
# -------------------------------
|
# -------------------------------
|
||||||
#
|
#
|
||||||
# You need to create an alias to the website directory in your apache
|
# You need to create an alias to the website directory in your apache
|
||||||
# configuration. This can be most easily done by XXX
|
# configuration. Add a separate nominatim configuration to your webserver:
|
||||||
|
|
||||||
|
#DOCS:```
|
||||||
|
sudo cat > /etc/httpd/conf.d/nominatim.conf << EOFAPACHECONF
|
||||||
|
<Directory "$USERHOME/build/website"> #DOCS:<Directory "$USERHOME/Nominatim/build/website">
|
||||||
|
Options FollowSymLinks MultiViews
|
||||||
|
AddType text/html .php
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
Alias /nominatim $USERHOME/build/website #DOCS:Alias /nominatim $USERHOME/Nominatim/build/website
|
||||||
|
EOFAPACHECONF
|
||||||
|
#DOCS:```
|
||||||
|
|
||||||
|
sudo sed -i 's:#.*::' /etc/httpd/conf.d/nominatim.conf #DOCS:
|
||||||
|
|
||||||
|
#
|
||||||
|
# Then reload apache
|
||||||
|
#
|
||||||
|
|
||||||
|
sudo systemctl restart httpd
|
||||||
|
|
||||||
#
|
#
|
||||||
# Adding SELinux Security Settings
|
# Adding SELinux Security Settings
|
||||||
@@ -113,77 +125,34 @@
|
|||||||
#
|
#
|
||||||
# Get the source code from Github and change into the source directory
|
# Get the source code from Github and change into the source directory
|
||||||
#
|
#
|
||||||
|
if [ "x$CHECKOUT" == "xy" ]; then #DOCS:
|
||||||
|
|
||||||
cd $USERHOME
|
cd $USERHOME
|
||||||
sudo -u $USERNAME git clone --recursive git://github.com/twain47/Nominatim.git
|
sudo -u $USERNAME git clone --recursive git://github.com/twain47/Nominatim.git
|
||||||
|
#DOCS: cd Nominatim
|
||||||
|
|
||||||
|
else #DOCS:
|
||||||
|
cd $USERHOME #DOCS:
|
||||||
|
fi #DOCS:
|
||||||
|
|
||||||
# The code is built in a special directory. Create this directory,
|
# The code is built in a special directory. Create this directory,
|
||||||
# then configure and build Nominatim in there:
|
# then configure and build Nominatim in there:
|
||||||
|
|
||||||
#DOCS: cd Nominatim
|
|
||||||
sudo -u $USERNAME mkdir build
|
sudo -u $USERNAME mkdir build
|
||||||
cd build
|
cd build
|
||||||
sudo -u $USERNAME cmake ../Nominatim
|
sudo -u $USERNAME cmake $USERHOME/Nominatim
|
||||||
sudo -u $USERNAME make
|
sudo -u $USERNAME make
|
||||||
|
|
||||||
# You need to create a minimal configuration file that tells nominatim
|
# You need to create a minimal configuration file that tells nominatim
|
||||||
# the name of your webserver user:
|
# the name of your webserver user:
|
||||||
|
|
||||||
#DOCS:```
|
#DOCS:```
|
||||||
sudo -u $USERNAME tee << EOF
|
sudo -u $USERNAME cat > settings/local.php << EOF
|
||||||
<?php
|
<?php
|
||||||
@define('CONST_Database_Web_User', 'apache');
|
@define('CONST_Database_Web_User', 'apache');
|
||||||
EOF
|
EOF
|
||||||
#DOCS:```
|
#DOCS:```
|
||||||
|
|
||||||
# There are lots of configuration settings you can tweak. Have a look
|
|
||||||
# at `settings/settings.php` for a full list. Most should have a sensible default.
|
|
||||||
# If you plan to import a large dataset (e.g. Europe, North America, planet),
|
|
||||||
# you should also enable flatnode storage of node locations. With this
|
|
||||||
# setting enabled, node coordinates are stored in a simple file instead
|
|
||||||
# of the database. This will save you import time and disk storage.
|
|
||||||
# Add to your settings/local.php:
|
|
||||||
#
|
|
||||||
# @define('CONST_Osm2pgsql_Flatnode_File', '/path/to/flatnode.file');
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Downloading additional data
|
|
||||||
# ---------------------------
|
|
||||||
#
|
|
||||||
# The following data is optional but download is strongly recommended:
|
|
||||||
#
|
|
||||||
# sudo -u $USERNAME wget -O data/wikipedia_article.sql.bin http://www.nominatim.org/data/wikipedia_article.sql.bin
|
|
||||||
# sudo -u $USERNAME wget -O data/wikipedia_redirect.sql.bin http://www.nominatim.org/data/wikipedia_redirect.sql.bin
|
|
||||||
# sudo -u $USERNAME wget -O data/gb_postcode_data.sql.gz http://www.nominatim.org/data/gb_postcode_data.sql.gz
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Initial Import of the Data
|
|
||||||
# --------------------------
|
|
||||||
#
|
|
||||||
# **Attention:** first try the import with a small excerpt, for example from Geofabrik.
|
|
||||||
#
|
|
||||||
# Download the data to import and load the data with the following command:
|
|
||||||
#
|
|
||||||
# ./utils/setup.php --osm-file <your data file> --all [--osm2pgsql-cache 28000] 2>&1 | tee setup.log
|
|
||||||
#
|
|
||||||
# The --osm2pgsql-cache parameter is optional but strongly recommended for
|
|
||||||
# planet imports. It sets the node cache size for the osm2pgsql import part
|
|
||||||
# (see -C parameter in osm2pgsql help). 28GB are recommended for a full planet
|
|
||||||
# imports, for excerpts you can use less.
|
|
||||||
# Adapt to your available RAM to avoid swapping.
|
|
||||||
#
|
|
||||||
# The import will take as little as an hour for a small country extract
|
|
||||||
# and as much as 10 days for a full-scale planet import on less powerful
|
|
||||||
# hardware.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Loading Additional Datasets
|
|
||||||
# ---------------------------
|
|
||||||
#
|
|
||||||
# The following commands will create additional entries for countries and POI searches:
|
|
||||||
#
|
|
||||||
# ./utils/specialphrases.php --countries > data/specialphrases_countries.sql
|
|
||||||
# psql -d nominatim -f data/specialphrases_countries.sql
|
|
||||||
# ./utils/specialphrases.php --wiki-import > data/specialphrases.sql
|
|
||||||
# psql -d nominatim -f data/specialphrases.sql
|
|
||||||
|
|
||||||
|
Nominatim is now ready to use. Continue with
|
||||||
|
[importing a database from OSM data](Import_and_update.md).
|
||||||
|
|||||||
Reference in New Issue
Block a user