osm search 搜索引擎搭建(ubuntu18.04)+nginx 访问

 1.安装依赖

sudo apt update -qq

sudo apt install -y php-cgi
sudo apt install -y build-essential cmake g++ libboost-dev libboost-system-dev \
                    libboost-filesystem-dev libexpat1-dev zlib1g-dev\
                    libbz2-dev libpq-dev libproj-dev \
                    postgresql-server-dev-10 postgresql-10-postgis-2.4 \
                    postgresql-contrib-10 postgresql-10-postgis-scripts \
                    php php-pgsql php-intl libicu-dev python3-pip \
                    python3-psycopg2 python3-psutil python3-jinja2 python3-icu


sudo pip3 install --upgrade pip

pip3 install python-dotenv

2.创建用户

sudo useradd -d /srv/nominatim -s /bin/bash -m nominatim

          设置密码之后 切换用户 nominatim : 

passwd nominatim
su nominatim 

3.搭建服务


export USERNAME=nominatim
export USERHOME=/srv/nominatim

chmod a+x $USERHOME


/etc/postgresql/10/main/postgresql.conf #(改配置则重启)
sudo systemctl restart postgresql
#(到这里必定重启)

sudo -u postgres createuser -s $USERNAME
sudo -u postgres createuser www-data
#(报错xxx is not in the sudoers file.This incident will be reported )


#切换回root: sudo  su 
cd ~
chmod u+w ../etc/sudoers

vim ../etc/sudoers
#找到root ALL=(ALL) ALL,在他下面添加:

nominatim ALL=(ALL) ALL



cd $USERHOME
wget https://nominatim.org/release/Nominatim-3.7.2.tar.bz2
tar xf Nominatim-3.7.2.tar.bz2

mkdir $USERHOME/build
cd $USERHOME/build
cmake $USERHOME/Nominatim-3.7.2
make
sudo make install

#导入osm数据,导入时间与osm文件大小有关,另外推荐使用固态硬盘,我选择使用xian.osm ,40Mb , 大概1分钟,若使用全球osm 文件大小300G,大概要算几个月
 nominatim import --osm-file <your planet file>


#使用nginx web服务

mkdir $USERHOME/nominatim-project
cd $USERHOME/nominatim-project
nominatim refresh --website
sudo apt install -y nginx php-fpm

sudo tee /etc/php/7.2/fpm/pool.d/www.conf << EOF_PHP_FPM_CONF
[www]
; Replace the tcp listener and add the unix socket
listen = /var/run/php7.2-fpm.sock

; Ensure that the daemon runs as the correct user
listen.owner = www-data
listen.group = www-data
listen.mode = 0666

; Unix user of FPM processes
user = www-data
group = www-data

; Choose process manager type (static, dynamic, ondemand)
pm = ondemand
pm.max_children = 5
EOF_PHP_FPM_CONF





sudo tee /etc/nginx/sites-available/default << EOF_NGINX_CONF
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root $USERHOME/nominatim-project/website;
    index search.php index.html;
    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/php7.2-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.2-fpm.sock;
        fastcgi_index search.php;
        include fastcgi.conf;
    }
}
EOF_NGINX_CONF


#启用配置 并 重启nginx
sudo systemctl restart php7.2-fpm nginx



#二次导入  需要删除 数据库



#psql使用命令

#若使用当前数据库 则无法删除
#\l  列举所有数据库
#\dt 列举所有表
#\d 

# 创建新数据库
#create database  databasename;

# 选定使用该数据库
#\c databasename;

#删除数据库
#drop database databasename;

4.浏览器访问nginx搜索 如下图:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值