X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/2ab9e4acd3a2ceb5ff871b6b6afc786377e8739f..c172ca8c6c060f188ad626bca631a7c2cd908e7d:/docs/admin/Faq.md diff --git a/docs/admin/Faq.md b/docs/admin/Faq.md index d618d2b5..1d0252d3 100644 --- a/docs/admin/Faq.md +++ b/docs/admin/Faq.md @@ -16,71 +16,27 @@ was killed. If it looks like this: then you can resume with the following command: ```sh -./utils/setup.php --index --create-search-indices --create-country-names +nominatim import --continue indexing ``` If the reported rank is 26 or higher, you can also safely add `--index-noanalyse`. -### PHP "open_basedir restriction in effect" warnings +### PostgreSQL crashed "invalid page in block" - PHP Warning: file_get_contents(): open_basedir restriction in effect. +Usually serious problem, can be a hardware issue, not all data written to disc +for example. Check PostgreSQL log file and search PostgreSQL issues/mailing +list for hints. -You need to adjust the -[open_basedir](https://www.php.net/manual/en/ini.core.php#ini.open-basedir) -setting in your PHP configuration (`php.ini` file). By default this setting may -look like this: +If it happened during index creation you can try rerunning the step with - open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/ - -Either add reported directories to the list or disable this setting temporarily -by adding ";" at the beginning of the line. Don't forget to enable this setting -again once you are done with the PHP command line operations. - - -### PHP timzeone warnings - -The Apache log may contain lots of PHP warnings like this: - `PHP Warning: date_default_timezone_set() function.` - -You should set the default time zone as instructed in the warning in -your `php.ini` file. Find the entry about timezone and set it to -something like this: - - ; Defines the default timezone used by the date functions - ; https://php.net/date.timezone - date.timezone = 'America/Denver' - -Or - -``` -echo "date.timezone = 'America/Denver'" > /etc/php.d/timezone.ini +```sh +nominatim import --continue indexing ``` -### nominatim.so version mismatch - -When running the import you may get a version mismatch: -`COPY_END for place failed: ERROR: incompatible library "/srv/Nominatim/nominatim/build/module/nominatim.so": version mismatch` - -pg_config seems to use bad includes sometimes when multiple versions -of PostgreSQL are available in the system. Make sure you remove the -server development libraries (`postgresql-server-dev-9.5` on Ubuntu) -and recompile (`cmake .. && make`). +Otherwise it's best to start the full setup from the beginning. -### I see the error "ERROR: permission denied for language c" - -`nominatim.so`, written in C, is required to be installed on the database -server. Some managed database (cloud) services like Amazon RDS do not allow -this. There is currently no work-around other than installing a database -on a non-managed machine. - - -### I see the error: "function transliteration(text) does not exist" - -Reinstall the nominatim functions with `setup.php --create--functions` -and check for any errors, e.g. a missing `nominatim.so` file. - ### I see the error: "ERROR: mmap (remap) failed" This may be a simple out-of-memory error. Try reducing the memory used @@ -91,14 +47,10 @@ If you are using a flatnode file, then it may also be that the underlying filesystem does not fully support 'mmap'. A notable candidate is virtualbox's vboxfs. -### I see the error: "clang: Command not found" on CentOS - -On CentOS 7 users reported `/opt/rh/llvm-toolset-7/root/usr/bin/clang: Command not found`. -Double-check clang is installed. Instead of `make` try running `make CLANG=true`. - ### nominatim UPDATE failed: ERROR: buffer 179261 is not owned by resource owner Portal -Several users [reported this](https://github.com/openstreetmap/Nominatim/issues/1168) during the initial import of the database. It's +Several users [reported this](https://github.com/openstreetmap/Nominatim/issues/1168) +during the initial import of the database. It's something PostgreSQL internal Nominatim doesn't control. And PostgreSQL forums suggest it's threading related but definitely some kind of crash of a process. Users reported either rebooting the server, different hardware or just trying @@ -110,22 +62,6 @@ The server cannot access your database. Add `&debug=1` to your URL to get the full error message. -### On CentOS the website shows "Could not connect to server" - -`could not connect to server: No such file or directory` - -On CentOS v7 the PostgreSQL server is started with `systemd`. Check if -`/usr/lib/systemd/system/httpd.service` contains a line `PrivateTmp=true`. If -so then Apache cannot see the `/tmp/.s.PGSQL.5432` file. It's a good security -feature, so use the -[preferred solution](../appendix/Install-on-Centos-7/#adding-selinux-security-settings). - -However, you can solve this the quick and dirty way by commenting out that line and then run - - sudo systemctl daemon-reload - sudo systemctl restart httpd - - ### Website reports "DB Error: insufficient permissions" The user the webserver, e.g. Apache, runs under needs to have access to the @@ -142,70 +78,42 @@ for default Ubuntu operating system for example it's `www-data`. GRANT SELECT ON ALL TABLES IN SCHEMA public TO "www-data"; ``` -### Website reports "Could not load library "nominatim.so" +### Setup fails with "DB Error: extension not found" + +Make sure you have the PostgreSQL extensions "hstore" and "postgis" installed. +See the installation instructions for a full list of required packages. -Example error message -``` - SELECT make_standard_name('3039 E MEADOWLARK LN') [nativecode=ERROR: could not - load library "/srv/nominatim/Nominatim-3.1.0/build/module/nominatim.so": - /srv/nominatim/Nominatim-3.1.0/build/module/nominatim.so: cannot open shared - object file: Permission denied - CONTEXT: PL/pgSQL function make_standard_name(text) line 5 at assignment] -``` +### UnicodeEncodeError: 'ascii' codec can't encode character -The PostgreSQL database, i.e. user `postgres`, needs to have access to that file. +Make sure that the operating system's locale is UTF-8. With some prebuilt +images (e.g. LXC containers from Proxmox, see +[discussion](https://github.com/osm-search/Nominatim/discussions/2343)) or +images that optimize for size it might be missing. -The permission need to be read & executable by everybody, e.g. +On Ubuntu you can check the locale is installed: ``` - -rwxr-xr-x 1 nominatim nominatim 297984 build/module/nominatim.so + grep UTF-8 /etc/default/locale ``` -Try `chmod a+r nominatim.so; chmod a+x nominatim.so`. - -When running SELinux, make sure that the -[context is set up correctly](../appendix/Install-on-Centos-7/#adding-selinux-security-settings). - -### Setup.php fails with "DB Error: extension not found" - -Make sure you have the PostgreSQL extensions "hstore" and "postgis" installed. -See the installation instructions for a full list of required packages. +And install it using +``` + dpkg-reconfigure locales +``` ### I forgot to delete the flatnodes file before starting an import. That's fine. For each import the flatnodes file get overwritten. -See [https://help.openstreetmap.org/questions/52419/nominatim-flatnode-storage]() +See [https://help.openstreetmap.org/questions/52419/nominatim-flatnode-storage](https://help.openstreetmap.org/questions/52419/nominatim-flatnode-storage) for more information. ## Running your own instance -### Can I import multiple countries and keep them up to date? - -You should use the extracts and updates from https://download.geofabrik.de. -For the initial import, download the countries you need and merge them. -See [OSM Help](https://help.openstreetmap.org/questions/48843/merging-two-or-more-geographical-areas-to-import-two-or-more-osm-files-in-nominatim) -for examples how to do that. Use the resulting single osm file when -running `setup.php`. - -For updates you need to download the change files for each country -once per day and apply them **separately** using - - ./utils/update.php --import-diff --index - -See [this issue](https://github.com/openstreetmap/Nominatim/issues/60#issuecomment-18679446) -for a script that runs the updates using osmosis. - ### Can I import negative OSM ids into Nominatim? -See [this question of Stackoverflow](https://help.openstreetmap.org/questions/64662/nominatim-flatnode-with-negative-id). - -### Missing XML or text declaration - -The website might show: `XML Parsing Error: XML or text declaration not at start of entity Location.` - -Make sure there are no spaces at the beginning of your `settings/local.php` file. - - +No, negative IDs are no longer supported by osm2pgsql. You can use +large 64-bit IDs that are guaranteed not to clash with OSM IDs. However, +you will not able to use a flatnode file with them.