]> git.openstreetmap.org Git - nominatim.git/blobdiff - docs/admin/Installation.md
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / docs / admin / Installation.md
index c67ff46ff3f15cd115f85aa76545b2e92e511ffa..bc97212ee2d663dc4cd1dc0c5556eb3e432c30ba 100644 (file)
@@ -4,8 +4,9 @@ This page contains generic installation instructions for Nominatim and its
 prerequisites. There are also step-by-step instructions available for
 the following operating systems:
 
+  * [Ubuntu 20.04](../appendix/Install-on-Ubuntu-20.md)
   * [Ubuntu 18.04](../appendix/Install-on-Ubuntu-18.md)
-  * [Ubuntu 16.04](../appendix/Install-on-Ubuntu-16.md)
+  * [CentOS 8](../appendix/Install-on-Centos-8.md)
   * [CentOS 7.2](../appendix/Install-on-Centos-7.md)
 
 These OS-specific instructions can also be found in executable form
@@ -25,24 +26,20 @@ and can't offer support.
 For compiling:
 
   * [cmake](https://cmake.org/)
-  * [libxml2](http://xmlsoft.org/)
+  * [expat](https://libexpat.github.io/)
+  * [proj](https://proj.org/)
+  * [bzip2](http://www.bzip.org/)
+  * [zlib](https://www.zlib.net/)
+  * [Boost libraries](https://www.boost.org/), including system and filesystem
+  * PostgreSQL client libraries
   * a recent C++ compiler (gcc 5+ or Clang 3.8+)
 
-Nominatim comes with its own version of osm2pgsql. See the
-[osm2pgsql README](https://github.com/openstreetmap/osm2pgsql/blob/master/README.md#building)
-for additional dependencies required for compiling osm2pgsql.
-
-For running tests:
-
-  * [behave](http://pythonhosted.org/behave/)
-  * [Psycopg2](https://initd.org/psycopg)
-  * [nose](https://nose.readthedocs.io)
-  * [phpunit](https://phpunit.de)
-
 For running Nominatim:
 
-  * [PostgreSQL](https://www.postgresql.org) (9.3 or later)
-  * [PostGIS](https://postgis.org) (2.2 or later)
+  * [PostgreSQL](https://www.postgresql.org) (9.3+)
+  * [PostGIS](https://postgis.org) (2.2+)
+  * [Python 3](https://www.python.org/)
+  * [Psycopg2](https://initd.org/psycopg)
   * [PHP](https://php.net) (7.0 or later)
   * PHP-pgsql
   * PHP-intl (bundled with PHP)
@@ -52,6 +49,12 @@ For running continuous updates:
 
   * [pyosmium](https://osmcode.org/pyosmium/) (with Python 3)
 
+For running tests:
+
+  * [behave](http://pythonhosted.org/behave/)
+  * [nose](https://nose.readthedocs.io)
+  * [phpunit](https://phpunit.de) >= 7.3
+
 ### Hardware
 
 A minimum of 2GB of RAM is required or installation will fail. For a full
@@ -118,13 +121,15 @@ from there.
 Make sure your Apache configuration contains the required permissions for the
 directory and create an alias:
 
-    <Directory "/srv/nominatim/build/website">
-      Options FollowSymLinks MultiViews
-      AddType text/html   .php
-      DirectoryIndex search.php
-      Require all granted
-    </Directory>
-    Alias /nominatim /srv/nominatim/build/website
+``` apache
+<Directory "/srv/nominatim/build/website">
+  Options FollowSymLinks MultiViews
+  AddType text/html   .php
+  DirectoryIndex search.php
+  Require all granted
+</Directory>
+Alias /nominatim /srv/nominatim/build/website
+```
 
 `/srv/nominatim/build` should be replaced with the location of your
 build directory.
@@ -152,20 +157,35 @@ follows:
 Tell nginx that php files are special and to fastcgi_pass to the php-fpm
 unix socket by adding the location definition to the default configuration.
 
-    root /srv/nominatim/build/website;
-    index search.php index.html;
-    location ~ [^/]\.php(/|$) {
-        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
-        if (!-f $document_root$fastcgi_script_name) {
-            return 404;
-        }
-        fastcgi_pass unix:/var/run/php5-fpm.sock;
-        fastcgi_index search.php;
-        include fastcgi.conf;
+``` nginx
+root /srv/nominatim/build/website;
+index search.php;
+location / {
+    try_files $uri $uri/ @php;
+}
+
+location @php {
+    fastcgi_param SCRIPT_FILENAME "$document_root$uri.php";
+    fastcgi_param PATH_TRANSLATED "$document_root$uri.php";
+    fastcgi_param QUERY_STRING    $args;
+    fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
+    fastcgi_index index.php;
+    include fastcgi_params;
+}
+
+location ~ [^/]\.php(/|$) {
+    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
+    if (!-f $document_root$fastcgi_script_name) {
+        return 404;
     }
+    fastcgi_pass unix:/var/run/php7.3-fpm.sock;
+    fastcgi_index search.php;
+    include fastcgi.conf;
+}
+```
 
 Restart the nginx and php5-fpm services and the website should now be available
 at `http://localhost/`.
 
 
-Now continue with [importing the database](Import-and-Update.md).
+Now continue with [importing the database](Import.md).