X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/ff6c3a705be5477d32d832df174107e65c3556a5..5141ac14f6c8502aee8a88074159a68222054527:/vagrant/install-on-centos-7.sh diff --git a/vagrant/install-on-centos-7.sh b/vagrant/install-on-centos-7.sh index 1780a6cd..8b283ef6 100755 --- a/vagrant/install-on-centos-7.sh +++ b/vagrant/install-on-centos-7.sh @@ -1,36 +1,38 @@ #!/bin/bash # +# *Note:* these installation instructions are also available in executable +# form for use with vagrant under vagrant/install-on-centos-7.sh. +# # Installing the Required Software # ================================ # -# *Note:* these installation instructions are also available in executable -# form for use with vagrant in the vagrant/ directory. -# # 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 up-to-date by running: # sudo yum update -y -# -# Setting up Repositories -# ----------------------- -# + # 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, # install the epel-release RPM by running: sudo yum install -y epel-release -# -# Getting the Software Packages -# ----------------------------- -# # Now you can install all packages needed for Nominatim: sudo yum install -y postgresql-server postgresql-contrib postgresql-devel postgis postgis-utils \ git cmake make gcc gcc-c++ libtool policycoreutils-python \ - php-pgsql php php-pear php-pear-DB libpqxx-devel proj-epsg \ + php-pgsql php php-pear php-pear-DB php-intl libpqxx-devel proj-epsg \ bzip2-devel proj-devel geos-devel libxml2-devel boost-devel expat-devel zlib-devel +# If you want to run the test suite, you need to install the following +# additional packages: + + sudo yum install -y python-pip python-Levenshtein python-psycopg2 \ + python-numpy php-phpunit-PHPUnit + pip install --user --upgrade pip setuptools lettuce==0.2.18 six==1.9 \ + haversine Shapely pytidylib + sudo pear install PHP_CodeSniffer + # # System Configuration # ==================== @@ -59,6 +61,10 @@ # # **Never, ever run the installation as a root user.** You have been warned. # +# Make sure that system servers can read from the home directory: + + chmod a+x $USERHOME + # Setting up PostgreSQL # --------------------- # @@ -70,8 +76,8 @@ # # Next tune the postgresql configuration, which is located in -# `/var/lib/pgsql/data/postgresql.conf`. See -# [the wiki](http://wiki.openstreetmap.org/wiki/Nominatim/Installation#PostgreSQL_Tuning_and_Configuration) for the parameters to change. +# `/var/lib/pgsql/data/postgresql.conf`. See section *Postgres Tuning* in +# [the installation page](Installation.md) for the parameters to change. # # Now start the postgresql service after updating this config file. @@ -79,18 +85,40 @@ # # Finally, we need to add two postgres users: one for the user that does -# the import and another for the webserver ro access the database: +# the import and another for the webserver which should access the database +# only for reading: # sudo -u postgres createuser -s $USERNAME - sudo -u postgres apache + sudo -u postgres createuser apache # # Setting up the Apache Webserver # ------------------------------- # # 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 tee /etc/httpd/conf.d/nominatim.conf << EOFAPACHECONF + #DOCS: + Options FollowSymLinks MultiViews + AddType text/html .php + DirectoryIndex search.php + Require all granted + + +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 @@ -113,77 +141,42 @@ # # Get the source code from Github and change into the source directory # +if [ "x$1" == "xyes" ]; then #DOCS: cd $USERHOME - sudo -u $USERNAME git clone --recursive git://github.com/twain47/Nominatim.git + git clone --recursive git://github.com/openstreetmap/Nominatim.git +#DOCS: cd Nominatim -# The code is built in a special directory. Create this directory, +else #DOCS: + cd $USERHOME #DOCS: +fi #DOCS: + +# When installing the latest source from github, you also need to +# download the country grid: + +if [ ! -f data/country_osm_grid.sql.gz ]; then #DOCS: + wget -O data/country_osm_grid.sql.gz http://www.nominatim.org/data/country_grid.sql.gz +fi #DOCS: + +# The code must be built in a separate directory. Create this directory, # then configure and build Nominatim in there: -#DOCS: cd Nominatim - sudo -u $USERNAME mkdir build + mkdir build cd build - sudo -u $USERNAME cmake ../Nominatim - sudo -u $USERNAME make + cmake $USERHOME/Nominatim + make # You need to create a minimal configuration file that tells nominatim -# the name of your webserver user: +# the name of your webserver user and the URL of the website: #DOCS:``` -sudo -u $USERNAME tee << EOF +tee settings/local.php << EOF --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).