6-1 MapServer のインストール
インストールされていないときは、Synaptic パッケージマネージャで cgi-mapserver をインストールしてください。
Mapserver のバージョンは 7.0.4 です。
インストールの確認は、Web ブラウザに
http://localhost/cgi-bin/mapserv
と入力して Enter キーを押し、
No query information to decode. QUERY_STRING is set, but empty.
と表示されれば OK です。
もし、次のように表示されたら CGI が動作していません。
CGI のモジュールは /etc/apache2/mods-available/cgi.load ファイルです。
user@deb9-vmw:~$ su -
パスワード:
root@deb9-vmw:~# ls /etc/apache2/mods-available/
---
cgi.load
cgid.conf
cgid.load
---
パスワード:
root@deb9-vmw:~# ls /etc/apache2/mods-available/
---
cgi.load
cgid.conf
cgid.load
---
このファイルが有効になっているかは /etc/apache2/mods-enable/ でわかります。
root@deb9-vmw:~# ls /etc/apache2/mods-enabled/
cgid.conf がないので有効にします。
root@deb9-vmw:~# a2enmod cgi Your MPM seems to be threaded. Selecting cgid instead of cgi. Enabling module cgid. To activate the new configuration, you need to run: systemctl restart apache2
root@deb9-vmw:~# apachectl -k graceful
root@deb9-vmw:~# ls /etc/apache2/mods-enabled/
---
cgid.conf
cgid.load
---
root@deb9-vmw:~# ls /etc/apache2/mods-enabled/
---
cgid.conf
cgid.load
---
6-2 mapserver-bin gdal-binのインストール
MapServer を使用する上で便利なユーティリティソフトを Synaptic パッケージマネージャでインストールしておきます。
6-3 一時フォルダの作成
MapServerでは、表示するための画像が生成されますが、これを保存する一時保存フォルダを作成します。
次のように入力してEnterキーを押します。
root@deb9-vmw:~# exit
ログアウト
user@deb9-vmw:~$ cd public_html/
user@deb9-vmw:~/public_html$ mkdir ms_tmp
ログアウト
user@deb9-vmw:~$ cd public_html/
user@deb9-vmw:~/public_html$ mkdir ms_tmp
次のように入力すると所有者(オーナ)とグループが表示されます。
user@deb9-vmw:~/public_html$ ls -l
---
drwxr-xr-x 2 user user 4096 6月 26 14:17 ms_tmp
---
---
drwxr-xr-x 2 user user 4096 6月 26 14:17 ms_tmp
---
MapServerがこのフォルダに画像を保存できるようにするには、所有者とグループを Apache2 の実行ユーザの www-data にします。(rootで)
(/etc/apache2/envvars に
---
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
---
と記述があります。)export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
---
user@deb9-vmw:~/public_html$ su
パスワード:
root@deb9-vmw:/home/user/public_html# chown www-data:www-data ms_tmp
パスワード:
root@deb9-vmw:/home/user/public_html# chown www-data:www-data ms_tmp
このフォルダの所有者とグループを確かめてみます。
root@deb9-vmw:/home/user/public_html# ls -l
---
drwxr-xr-x 2 www-data www-data 4096 6月 26 14:17 ms_tmp
---
---
drwxr-xr-x 2 www-data www-data 4096 6月 26 14:17 ms_tmp
---
6-4 動作確認
Demo Application の準備
MapServer Download ページ
http://mapserver.org/download.html
「Download」の「Demo Application」の「MapServer 5.4.x Demo」リンクをクリックしてダウンロードします。
root@deb9-vmw:/home/user/public_html# exit
exit
user@deb9-vmw:~/public_html$ cd ../ダウンロード
user@deb9-vmw:~/ダウンロード$ ls
---
workshop-5.4.zip
---
exit
user@deb9-vmw:~/public_html$ cd ../ダウンロード
user@deb9-vmw:~/ダウンロード$ ls
---
workshop-5.4.zip
---
ダウンロードした workshop-5.4.zip を解凍します。
user@deb9-vmw:~/ダウンロード$ unzip workshop-5.4.zip
user@deb9-vmw:~/ダウンロード$ ls
---
workshop-5.4
workshop-5.4.zip
---
user@deb9-vmw:~/ダウンロード$ ls
---
workshop-5.4
workshop-5.4.zip
---
解凍した workshop-5.4 フォルダを public_html に移動します。
user@deb9-vmw:~/ダウンロード$ mv workshop-5.4/ ../public_html/
user@deb9-vmw:~/ダウンロード$ cd ../public_html/
user@deb9-vmw:~/public_html$ ls
index.html ms_tmp workshop-5.4
user@deb9-vmw:~/ダウンロード$ cd ../public_html/
user@deb9-vmw:~/public_html$ ls
index.html ms_tmp workshop-5.4
index.html のコードを修正します。
user@deb9-vmw:~/public_html$ cd workshop-5.4/
user@deb9-vmw:~/public_html/workshop-5.4$ ls
---
index.html
---
user@deb9-vmw:~/public_html/workshop-5.4$ vim index.html
---
The base data is the old-reliable Itasca dataset that we know and love...
<!-- EDIT THE FORM ACTION -->
user@deb9-vmw:~/public_html/workshop-5.4$ ls
---
index.html
---
user@deb9-vmw:~/public_html/workshop-5.4$ vim index.html
---
The base data is the old-reliable Itasca dataset that we know and love...
<!-- EDIT THE FORM ACTION -->
<!-- <form name="demo" method="GET" action="/cgi-bin/mapserv54" onSubmit="configure()"> --> <form name="demo" method="GET" action="/cgi-bin/mapserv" onSubmit="configure()"><input type="hidden" name="layer" value="lakespy2">
<input type="hidden" name="layer" value="dlgstln2"> <input type="hidden" name="zoomsize" value=2> <input type="hidden" name="map_web" value=""><!-- EDIT THESE HIDDEN VARIABLES -->
<!-- <input type="hidden" name="map" value="/usr/local/www/docs_maps/mapserver_demos/workshop-5.4/itasca.map"> <input type="hidden" name="program" value="/cgi-bin/mapserv54"> <input type="hidden" name="root" value="/mapserver_demos/workshop-5.4"> --> <input type="hidden" name="map" value="/home/user/public_html/workshop-5.4/itasca.map"> <input type="hidden" name="program" value="/cgi-bin/mapserv"> <input type="hidden" name="root" value="/~user/workshop-5.4">---
itasca.map のコードを修正します。
user@deb9-vmw:~/public_html/workshop-5.4$ vim itasca.map
---
Webブラウザのアドレスバーに次のように入力してEnterキーを押します。---
WEB HEADER templates/header.html TEMPLATE "set in index.html" FOOTER templates/footer.html MINSCALE 1000 MAXSCALE 1550000# change the next two lines to match your setup
# IMAGEPATH "/usr/local/www/docs_maps/tmp/" # IMAGEURL "/tmp/" IMAGEPATH "/home/user/public_html/ms_tmp/" # 追加 IMAGEURL "/~user/ms_tmp/" # 追加METADATA
WMS_TITLE "UMN MapServer Itasca Demo" WMS_ABSTRACT "This is a UMN MapServer application for Itasca County located in north central Minnesota." WMS_ACCESSCONSTRAINTS "none" # change this value to match your setup WMS_ONLINERESOURCE "http://localhost.localdomain/mapserver_demos/itasca/index.html" WMS_SRS "EPSG:26915" END END ---
http://localhost/~user/workshop-5.4/index.html
ページが表示されたら 「Initialize」 ボタンをクリックします。
次のようなメッセージが表示されたました。
loadLayer(): Unknown identifier. Annotation Layers have been removed. To obtain same functionality, use a layer with label->styles and no class->styles
これは、TYPE の annotation が削除されたためレイヤ()が削除されたためです。
MapServer のドキュメント「LAYER(http://mapserver.org/mapfile/layer.html#layer)」に次のようにあります。
Note: TYPE annotation has been deprecated since version 6.2. Identical functionality can be obtained by adding LABEL level STYLE blocks, and do not require loading the datasets twice in two different layers as was the case with layers of TYPE annotation.
TYPE annotation は、6.2 バージョン以降、非推奨になりました。同様の機能は、LABEL レベルの STYLE ブロックを追加することによって得られ、TYPE annotation のレイヤを使用した場合のように、2つの異なるレイヤにデータセットを2度ローディングする必要がありません。
itasca.map のコードで、次の3つのレイヤ ctyrdln3_anno、majrdln3_anno、mcd90py2_anno をコメントアウトします。(今回は、表示が目的なのでこの修正だけにしました。)
--- # LAYER # NAME ctyrdln3_anno # GROUP roads # MAXSCALE 300000 # STATUS OFF # DATA ctyrdln3 # TYPE ANNOTATION --- # LAYER # NAME majrdln3_anno # GROUP roads # MAXSCALE 600000 # STATUS OFF # DATA majrdln3 # TYPE ANNOTATION --- # LAYER # NAME mcd90py2_anno # GROUP cities # TYPE ANNOTATION ---
地図が表示されたら成功です。
0 件のコメント:
コメントを投稿