-The message is a bit misleading as PHP needs to load the file `DB.php` and
-instead re-loads Nominatim's `db.php`. To solve this make sure you
-have the [http://pear.php.net/package/DB/ Pear module 'DB'] installed.
+```
+ GRANT usage ON SCHEMA public TO "www-data";
+ GRANT SELECT ON ALL TABLES IN SCHEMA public TO "www-data";
+```
+
+### Website reports "Could not load library "nominatim.so"
+
+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]
+```
+
+The PostgreSQL database, i.e. user `postgres`, needs to have access to that file.
+
+The permission need to be read & executable by everybody, but not writeable
+by everybody, e.g.
+
+```
+ -rwxr-xr-x 1 nominatim nominatim 297984 build/module/nominatim.so
+```
+
+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).
+
+When you recently updated your operating system, updated PostgreSQL to
+a new version or moved files (e.g. the build directory) you should
+recreate `nominatim.so`. Try
+
+```
+ cd build
+ rm -r module/
+ cmake $main_Nominatim_path && make
+```
+
+### 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.