Compile mapr support library under linux, including proj, gdal

Linux deployment service:
1. Download proj6-1, geos 3.7.3, gdal-3.2

Compile proj6-1:

1,cd proj,运行./configure,查看是否确实依赖库,
若提示缺少sqlite3,执行sudo apt install sqlite3
2,mkdir build
3,cd build
4,cmake ..
5, cmake --build .
6,执行sudo make install,安装

Compile geos3.7.3:

1,cd geos 3.7.3,运行./configure,查看是否确实依赖库,
2,mkdir build
3,cd build
4,sudo cmake ..
5, sudo make -j4
6,执行sudo make install,安装

Compile gdal-3-2:

1,cd gdal3.2,执行./configure,
出现错误:checking for internal_proj_create_from_wkt in -lproj... no
执行:
1.1 export PATH=/usr/local/bin:$PATH,设置proj安装目录执行路径
1.2 sudo ./configure --with-proj=/usr/local 执行检查
2,若要支持geos,执行
sudo ./configure --with-proj=/usr/local --with-geos=yes
输出中查看是否有:GEOS support:              yes
有代表成功。
3,执行sudo make -j4进行编译

Compile mapserv7-6-1:

1 mkdir build
2 cd build
3 cmake ..
编译可能不通过,提示缺少库fribidi,
执行sudo apt-get install libfribidi-dev安装,
提示 Could NOT find ProtobufC (missing:  PROTOBUFC_COMPILER) ,
执行 sudo apt-get install protobuf-c-compiler
之后执行cmake ..,提示makefile通过
4  执行 cmake \
    -DWITH_CLIENT_WFS=ON \
    -DWITH_CLIENT_WMS=ON \
    -DWITH_CURL=ON \
    -DWITH_PYTHON=ON \
    -DWITH_THREAD_SAFETY=ON \
    -DWITH_APACHE_MODULE=ON \
    -DWITH_XMLMAPFILE=ON \
    -DCMAKE_C_FLAGS="-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H -DPROJ_RENAME_SYMBOLS" -DCMAKE_CXX_FLAGS="-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H -DPROJ_RENAME_SYMBOLS" \
    ../ 
    开启对应功能支持,缺少支持库,自行安装即可:
    安装sudo apt-get install apache2-dev,
    sudo apt-get install libxslt-dev
5 执行make -j5开始编译

Deploy Apache2:

1. Execute the command to install
$ apt-get install -y apache2 apache2-mpm-worker libapache2-mod-fastcgi
$ a2enmod actions fastcgi alias
$ apt-get install libapache2-mod-php5 php5-common php5-cli php5-fpm php5

2. cd /etc/apache2/sites-available, open 000-default.conf
to find DocumentRoot /var/www/html, modify /var/www/html to be your own cgi program directory, such as /home/mapserv/bin

解决跨域问题:
 2.1sudo  a2enmod headers
 2.2 sudo gedit  /etc/apache2/sites-available/000-default.conf打开文件,添加
	LoadModule headers_module modules/mod_headers.so
	Header set Access-Control-Allow-Origin *
2.3重启服务 sudo service apache2 restart

3, cd /etc/apache2, open apache2.conf,
3.1 Find
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted

Modify /var/www/ for the cig directory set in step 2
3.2 Set virtual directory mapping , mapped to the directory where the cgi program is located
ScriptAlias ​​/mapserv/ /home/mapserv/bin
3.3 Add
LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
4, test
4.1sudo /etc/init.d/apache2 start to start the service

4.2浏览器中输入http://127.0.0.1/mapserv/mapserv,则调用对应的mapserv程序
	http://127.0.0.1/mapserv/mapserv?map=WMS.map&SERVICE=WMS&VERSION=2.0.1&REQUEST=GetCapabilities
若无法访问map文件,则需要添加权限
chmod 666 WMS.map

Support https, rely on the secret key generated by openssl

$ openssl genrsa -out server.key 1024

$ openssl req -new -key server.key -out server.csr

$ openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

$ openssl dhparam -out dh768.pem 768

Guess you like

Origin blog.csdn.net/xwb_12340/article/details/111033453