博客
关于我
ubuntu中使用Nginx配置Mapserver
阅读量:277 次
发布时间:2019-03-01

本文共 4658 字,大约阅读时间需要 15 分钟。

ubuntu中使用Nginx配置Mapserver(宝塔面板中安装mapserver)

前言

对于一部分开发者和轻量级环境而言,Nginx无疑有很多优势,很可能我们已有的环境是Lnmp环境(Nginx + mysql + php)。如果你已有的Lnmp环境下已经部署了内容。现在又想添加mapserver,有和我一样对服务器环境部署不是那么熟悉,可能会遇到一个很头疼的问题——整个中文互联网就没有个靠谱的NGINX + Mapserver部署教程。

这里我折腾了很久解决了,在此将方法分享在这里帮助有同样问题的伙伴们解决。

一、安装配置 mapserver

1、安装mapserver

先决条件你已经安装了 Lnmp环境。

终端输入:

sudo apt-get install mapserver-bin mapserver-doc

注:因为 UbuntuGIS库的存在,这里安装时相关库会自动安装。

2、使用spawn-fcgi将Mapserver配置为CGI Worker

如果尚未安装,请安装spawn-fcgi。

sudo apt-get install spawn-fcgi

FastCGI配置

将mapserver作为cgi服务运行。以超级用户权限在/etc/init.d/mapserv中创建文件。放入此内容并保存。

> sudo touch /etc/init.d/mapserv
> cd /etc/init.d/> ls

查看是否已经生成()

添加下面内容到mapserv

#!/usr/bin/env sh## description: Mapserver Service Manager# processname: lt-mapserv# pidfile: /var/run/mapserv.pid# Source function library.#. /etc/init.d/functions# Check that networking is up.#. /etc/sysconfig/networkif [ "$NETWORKING" = "no" ]then    exit 0fiPREFIX=/usrNAME=mapservPID=/var/run/mapserv.pidDAEMON=$PREFIX/bin/spawn-fcgiDAEMON_OPTS=" -a 127.0.0.1 -p 9999 -F 4 -u www-data -U www-data -P $PID $PREFIX/bin/mapserv"start () {    echo -n $"Starting $NAME "        exec $DAEMON $DAEMON_OPTS >> /dev/null        daemon --pidfile $PID        RETVAL=$?        echo    [ $RETVAL -eq 0 ]}stop () {    echo -n $"Stopping $NAME "        killproc -p $PID        #make sure all mapservers are closed        pkill -f lt-mapserv        RETVAL=$?        echo    if [ $RETVAL -eq 0 ] ; then        rm -f $PID    fi}restart () {    stop    start}# See how we were called.case "$1" in    start)        start    ;;    stop)        stop    ;;    status)        status lt-mapserv        RETVAL=$?    ;;    restart)        restart    ;;    *)        echo $"Usage: $0 {start|stop|status|restart}"        RETVAL=2    ;;esacexit $RETVAL

向文件添加执行权限。

> sudo chmod +x /etc/init.d/mapserv

使用命令启动mapserver服务

> sudo /etc/init.d/mapserv start

修改Nginx配置文件(这里以宝塔面板环境为例):

在配置中添加

location / {        # Load from /etc/init.d/mapserv        fastcgi_pass 127.0.0.1:9999;        include fastcgi_params;        fastcgi_param SCRIPT_NAME /usr/bin/mapserv$fastcgi_script_name;    }

修改/www/server/nginx/conf/nginx.conf(宝塔面板双击编辑)

在这里插入图片描述

修改后:

user  www www;worker_processes auto;error_log  /www/wwwlogs/nginx_error.log  crit;pid        /www/server/nginx/logs/nginx.pid;worker_rlimit_nofile 51200;events    {        use epoll;        worker_connections 51200;        multi_accept on;    }http    {        include       mime.types;		#include luawaf.conf;		include proxy.conf;        default_type  application/octet-stream;        server_names_hash_bucket_size 512;        client_header_buffer_size 32k;        large_client_header_buffers 4 32k;        client_max_body_size 50m;        sendfile   on;        tcp_nopush on;        keepalive_timeout 60;        tcp_nodelay on;        fastcgi_connect_timeout 300;        fastcgi_send_timeout 300;        fastcgi_read_timeout 300;        fastcgi_buffer_size 64k;        fastcgi_buffers 4 64k;        fastcgi_busy_buffers_size 128k;        fastcgi_temp_file_write_size 256k;		fastcgi_intercept_errors on;        gzip on;        gzip_min_length  1k;        gzip_buffers     4 16k;        gzip_http_version 1.1;        gzip_comp_level 2;        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;        gzip_vary on;        gzip_proxied   expired no-cache no-store private auth;        gzip_disable   "MSIE [1-6]\.";        limit_conn_zone $binary_remote_addr zone=perip:10m;		limit_conn_zone $server_name zone=perserver:10m;        server_tokens off;        access_log off;server {    listen 80;    listen [::]:80;    server_name mapserver.local;    add_header Access-Control-Allow-Origin *;    location / {        # Load from /etc/init.d/mapserv        fastcgi_pass 127.0.0.1:9999;        include fastcgi_params;        fastcgi_param SCRIPT_NAME /usr/bin/mapserv$fastcgi_script_name;    }}server    {        listen 888;        server_name phpmyadmin;        index index.html index.htm index.php;        root  /www/server/phpmyadmin;        #error_page   404   /404.html;        include enable-php.conf;        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$        {            expires      30d;        }        location ~ .*\.(js|css)?$        {            expires      12h;        }        location ~ /\.        {            deny all;        }        access_log  /www/wwwlogs/access.log;    }include /www/server/panel/vhost/nginx/*.conf;}

二、测试设否配置成功

怎么看mapserver是否配置成功

在局域网下的浏览器中打开如下链接:

http://替换自己 IP /?

注意:不是

http://替换自己 IP /cgi-bin/mapserv?

如果返回结果为如下:

No query information to decode. QUERY_STRING is set, but empty.

在这里插入图片描述

说明你的mapserver配置成功。大功告成!!!!

转载地址:http://neyx.baihongyu.com/

你可能感兴趣的文章
Moment.js常见用法总结
查看>>
MongoDB出现Error parsing command line: unrecognised option ‘--fork‘ 的解决方法
查看>>
mxGraph改变图形大小重置overlay位置
查看>>
MongoDB学习笔记(8)--索引及优化索引
查看>>
MQTT工作笔记0009---订阅主题和订阅确认
查看>>
ms sql server 2008 sp2更新异常
查看>>
MS UC 2013-0-Prepare Tool
查看>>
msbuild发布web应用程序
查看>>
MSB与LSB
查看>>
MSCRM调用外部JS文件
查看>>
MSCRM调用外部JS文件
查看>>
MSEdgeDriver (Chromium) 不适用于版本 >= 79.0.313 (Canary)
查看>>
MsEdgeTTS开源项目使用教程
查看>>
msf
查看>>
MSSQL数据库查询优化(一)
查看>>
MSSQL日期格式转换函数(使用CONVERT)
查看>>
MSTP多生成树协议(第二课)
查看>>
MSTP是什么?有哪些专有名词?
查看>>
Mstsc 远程桌面链接 And 网络映射
查看>>
Myeclipse常用快捷键
查看>>