1.数据准备
1.1.全球数据
下载地址:https://planet.openstreetmap.org/
1.2.特定区域的数据
下载地址:Geofabrik Download Server
2.安装必要的软件包
2.1.更新系统软件包
sudo apt update
sudo apt upgrade
2.2.安装所需要的软件包
执行下面的命令,一步安装所需要的配套软件。
sudo apt install -y build-essential cmake g++ libboost-dev libboost-system-dev \
libboost-filesystem-dev libexpat1-dev zlib1g-dev \
libbz2-dev libpq-dev liblua5.3-dev lua5.3 lua-dkjson \
nlohmann-json3-dev postgresql-14-postgis-3 \
postgresql-contrib-14 postgresql-14-postgis-3-scripts \
php-cli php-pgsql php-intl libicu-dev python3-dotenv \
python3-psycopg2 python3-psutil python3-jinja2 \
python3-icu python3-datrie python3-sqlalchemy \
python3-asyncpg python3-yaml git
3.配置postgresql
3.1. 切换到 postgres 用户
在 Linux 系统中,默认安装 PostgreSQL 后会创建一个名为 postgres
的系统用户,你可以使用以下命令切换到该用户:
sudo su - postgres
执行此命令后,你将进入 postgres
用户的环境,命令行提示符通常会改变以表明当前用户身份。
3.2. 进入 PostgreSQL 交互环境
在 postgres
用户环境下,使用以下命令进入 PostgreSQL 的交互式 shell(psql
):
psql
此时,你会看到类似 postgres=#
的提示符,表明已成功进入 PostgreSQL 数据库管理系统。
3.3. 修改密码
在 psql
环境中,使用 ALTER USER
命令来修改 postgres
用户的密码。例如,要将密码设置为 newpassword
(请将 newpassword
替换为你实际想要设置的强密码),执行以下命令:
ALTER USER postgres WITH PASSWORD 'newpassword';
执行完上述 SQL 语句后,如果没有报错,说明密码修改成功。
3.4. 退出 PostgreSQL 交互环境和 postgres 用户
修改完密码后,输入以下命令退出 psql
交互环境:
\q
然后输入以下命令退出 postgres
用户,返回到原来的用户环境:
exit
3.5.增加www-data账户
sudo -u postgres createuser www-data
如果这步不执行,后面导入数据的时候会提示www-data账户不存在,详情参考5.2.2
3.6.修改postgresql.conf配置文件
默认是在:/etc/postgresql/14/main目录下:
sudo vim /etc/postgresql/14/main/postgresql.conf
按下面修改这些配置项即可。
shared_buffers = 2GB
work_mem = 50MB
maintenance_work_mem = 10GB
fsync = off
synchronous_commit= off
full_page_writes = off
checkpoint_timeout = 10min
checkpoint_completion_target = 0.9
effective_cache_size = 24GB
4.下载并编译Nominatim
4.1.下载Nominatim
下载地址:https://github.com/osm-search/Nominatim
找一个自己喜欢的版本下载