osm-search / Nominatim

Open Source search based on OpenStreetMap data
https://nominatim.org
GNU General Public License v3.0
3.16k stars 715 forks source link

Cannot serve pages after install - Multiple questions for setup/HA #2168

Closed di-rect closed 3 years ago

di-rect commented 3 years ago

I'm following the following guide for installing Nominatim, but some questions raise.

https://nominatim.org/release-docs/latest/appendix/Install-on-Ubuntu-20/

After a build I'm not able to serve the pages, Nginx tells me the following:

2021/02/15 12:08:30 [error] 20#20: *1 FastCGI sent in stderr: "Unable to open primary script: \/opt/nominatim/build/website\/.php (No such file or directory)" while reading response header from upstream, client: 192.168.250.1, server: , request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php8.0-fpm.sock:", host: "192.168.250.201:88"

I also wonder what files are relevant only after build, is this only everything in /opt/nominatim/build or more ?

I would like to put PHP-FPM on a seperate server but I'm quite sure I run into the issue that both Nginx and PHP-FPM need to have the sources then this shared by NFS or so, am I right or is there another way to accomplish that ?

I also wonder what the best way is to connect from Nominatim to an external PostgreSQL server, where/how to set ? I have read that the PosgreSQL server needs to have the nominatim.so available on it's install ?

What is the idea about this all ? I would like to have a HA Nominatim setup with shared data so I can balance there as well.

Ideas are welcome!

mtmail commented 3 years ago

Note the https://nominatim.org/release-docs/latest/ is for the stable Nominatim v3.6 release (which is probably want you want for a production system). After 3.6 there have been big changes to script names, paths, configuration file formats and more changes are coming.

I can't comment on php-fpm on remote host, maybe a user on the https://lists.openstreetmap.org/listinfo/geocoding has done this before.

I also wonder what files are relevant only after build, is this only everything in /opt/nominatim/build or more ?

In version 3.6 scripts in build/ are tiny wrappers. E.g. a build/utils/warm.php will call Nominatim/utils/warm.php and use Nominatim/lib/ PHP files. So you will need the path you cloned (or rather the files from the stable *.tar.gz release) plus everything in the build directory.

Nominatim to an external PostgreSQL server,

Base configuration is build/settings/settings.php, which gets overloaded by build/settings/local.php. In there look for CONST_Database_DSN. Format is https://www.php.net/manual/en/ref.pdo-pgsql.connection.php

The nominatim.so file needs to be copied to the database server. Or compiled on the database server. See https://nominatim.org/release-docs/latest/admin/Advanced-Installations/#importing-nominatim-to-an-external-postgresql-database