2. Instalace

2.2 Konfigurace Autodesk MapGuide Enterprise Web Server Extensions


V závislosti na výběru typu konfigurace při instalaci Autodesk MapGuide Enterprise Web Server Extensions je nutné provést rozdílné konfigurační zásahy. Všechny tři konfigurace jsme již představili a popsali v předchozím textu (viz kapitola 2.1.2).

Jestliže jsme jako webový server zvolili Apache, můžeme pro vývoj aplikací využít PHP nebo JSP.
Pro IIS je pro aplikační vývoj možnost výběru z PHP nebo ASP.NET.

V obou případech je většina potřebné konfigurace provedena automaticky během samotné instalace. Jestliže však chceme cokoliv upravit dle vašich potřeb či zkušeností, mohou nám pomoci konfigurační detaily, které jsou uvedeny dále v textu.

Adresářová struktura


Při použití standardního instalačního programu je instalační adresář (InstallDir) umístěn zde: 
C:\Program Files\Autodesk\MapGuideEnterprise2009

a adresář pro Web Server Extensions (WebDir) nalezneme zde:
C:\Program Files\Autodesk\MapGuideEnterprise2009\WebServerExtensions\www

2.2.1 Konfigurace s webovým serverem IIS

Při použití webového serveru pro IIS Autodesk MapGuide Enterprise Web Server Extensions lze jako vývojové platformy použít PHP nebo ASP.NET.
Ať už se rozhodneme pro jednu nebo druhou, vždy je nutné instalovat PHP pro spuštění aplikace Site Administrator z Vašeho počítače.

Existují zda způsoby instalace Autodesk MapGuide Enterprise Web Server  Extensions pro použití s IIS:
  • instalace a automatická konfigurace pomocí instalační aplikace
  • nebo instalace instalační aplikací, ale ruční konfigurace webového serveru.
Co je třeba nastavit v případě zvolení druhého možného postupu je uvedeno níže.

Na úvod nastavíme virtuální adresáře pro Web Server Extensions, AJAX a DWF Viewer a poté nakonfigurujeme PHP nebo ASP.NET.

Při konfiguraci PHP a ASP.NET jsou některé konfigurační kroky totožné nebo alespoň velmi podobné.

Nastavení virtuálních adresářů


Tento postup je prováděn v prostředí IIS verze 5.1, některé dialogy a nabídky se proto mohou v závislosti na verzi mírně lišit. 

  1. Spustíme administrační aplikaci IIS a vytvoříme nový virtuální adresář. Pojmenujeme jej mapguide2009.
  1. Fyzickou cestu nastavíme do adresáře WebDir.
  1. Klepneme pravým tlačítkem na nově vytvořený adresář a vybereme Vlastnosti.
  1.  Vlastnosti nastavíme stejně jako je zobrazeno na obrázku níže.


Nastavení asociací pro PHP


Toto nastavení je třeba provést v případě, že se chystáme používat PHP jako vývojové prostředí nebo chceme na našem počítači pracovat s aplikací Site Administrator.

Pro správnou funkčnost souborů PHP v prostředí IIS je třeba nastavit mapování aplikací. PHP lze spouštět dvěma způsoby – jako proces CGI nebo jako rozšíření ISAPI. Obě mapování se nastavují zcela stejně, samozřejmě kromě cesty k potřebnému souboru.

Pro CGI je spustitelný soubor zde:
InstallDir\WebServerExtensions\Php\php-cgi.exe

Pro ISAPI je pak spustitelný dostupný soubor zde:
InstallDir\WebServerExtensions\Php\php5isapi.dll

Do cesty k souboru php5isapi.dll nelze zadat žádné mezery. Jestliže byla instalace provedena do standardního umístění v C:\Program Files, je nutné v cestě použít C:\Progra~1. Výsledek pak vypadá například takto: C:\Progra~1\Autodesk\MapGuideEnterprise2009\WebServerExtensions\Php\php5isapi.dll.

  1. V dialogu Vlastnosti klepneme na položku Konfigurace.
  1.  Jestliže mapování pro PHP není nastaveno nebo je nastaveno nesprávně, klepneme na tlačítko Přidat nebo Upravit a mapování nastavíme. 


Nastavení rozšíření ISAPI


Autodesk MapGuide Enterprise používá rozšíření ISAPI pro vylepšení celkové výkonnosti aplikací. Pro konfiguraci provedeme následující kroky.

Soubor isapi_mapagent.dll je umístěn v adresáři WebDir\mapagent.

  1. V prostředí administrace IIS nastavíme vlastnosti složky mapguide\mapagent. Vytvoříme aplikaci a pojmenujeme ji mapagent. Ochranu aplikace nastavíme na Vysokou (Izolovanou) a povolíme Skripty a spustitelné soubory.
  1. Klepneme na záložku Konfigurace a nastavíme mapování aplikací na soubor isapi_mapagent.dll pro rozšíření .fcgi.
  2. Stejně jako u CGI i zde nelze v cestě k souboru isapi_mapagent.dll použít mezery, proto nahradíme např. Program Files za Progra~1.
  1. Další možností je zákaz rozšíření ISAPI a využití pouze klasického CGI agenta. V případě, že chceme provést tuto variantu, nastavíme mapování namísto souboru isapi_mapagent.dll na soubor mapagent.exe.

Nastavení bezpečnostních pravidel


Pro nastavení bezpečnostních vlastností přejdeme do záložky Zabezpečení adresáře a klepneme na tlačítko Upravit.
Vše pak nastavíme stejně jako na obrázku níže. Všimněte si, že informace o účtu jsou již nastaveny IIS, a proto je není nutné měnit.

 


Nastavení chybových stránek


Na záložce Vlastní chyby vybereme všechny chyby s číslem 401 a klepneme na Nastavit na výchozí. To umožní, že  Autodesk MapGuide Enterprise správně zpracuje autorizační požadavky.

 


Nastavení virtuálních adresářů pro mapové prohlížeče


Mapové prohlížeče AJAX Viewer a DWF Viewer sdílejí tutéž fyzickou cestu, nicméně je třeba vytvořit virtuální adresář pro každý z nich. Pro PHP je fyzická cesta WebDir\mapviewerphp a pro ASP.NET pak WebDir\mapviewernet

  1. V administrační konzoli IIS vytvoříme nový virtuální adresář v adresáři MapGuide2009  pro AJAX viewer.
  1.  Adresář pojmenujeme mapviewerajax.
  2. Jestliže používáme PHP jako  vývojový jazyk, nastavíme fyzickou cestu do WebDir\mapviewerphp. Jestliže naopak pracujeme se ASP.NET, nastavíme cestu na  WebDir\mapviewernet.
  3. Na závěr nastavíme výchozí dokument pro nový virtuální adresář. Otevřeme záložku Dokumenty z dialogu Vlastnosti a přidáme odpovídající dokumenty:
  • Pro PHP přidáme do výchozího seznamu ajaxviewer.php
  • Pro ASP.NET pak ajaxviewer.aspx
  1. Stejný postup pak zopakujeme i v případě virtuálního adresáře pro DWF viewer.
  2. Namísto mapviewerajax adresář pojmenujeme mapviewerdwf, fyzické cesty budou totožné stejně jako výchozí dokumenty.

Konfigurace PHP


Jestliže chceme vyvíjet aplikace pro prostředí Autodesk MapGuide Enterprise v PHP nebo chceme využívat aplikaci Site Administrator, je třeba PHP pro tyto účely nastavit.

Pro konfiguraci PHP upravíme konfigurační soubor php.ini, který nalezneme v následujícím umístění:
InstallDir\WebServerExtensions\Php.

Identifikace správného souboru php.ini


Vzhledem k tomu, že soubor php.ini lze v PHP najít hned několikrát, je třeba se ujistit, že ten, který jste našli, je opravdu ten, který Autodesk MapGuide Enterprise právě používá. Pro kompletní vysvětlení si prostudujte dokumentaci k PHP.

Doporučenou metodou je vytvoření systémové proměnné pojmenované PHPRC a její nastavení na PHP adresář, který obsahuje soubor php.ini.

Při standardní instalaci je to následující složka:
C:\Program Files\Autodesk\MapGuideEnterprise2009\WebServerExtensions\Php

Upozornění – v operačním systému Windows může existovat registr, který určuje, který soubor php.ini bude zpracován.

Podívejte se do následujícího místa: HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath a v případě, že klíč existuje, smažte ho.


Úprava souboru php.ini


V případě standardní instalace je nejdůležitější PHP konfigurace již hotova. Jestliže ale chceme PHP spustit jako  CGI proces, je třeba provést v souboru php.ini  následující změnu:
Změníme ; cgi.force_redirect = 1 na cgi.force_redirect = 0

Soubor php.ini vytvořený pro potřeby Autodesk MapGuide Enterprise obsahuje některé úprayv odlišné od standardního php.ini. Tyto modifikace zvyšují rozsahy zdrojů a umožňují použití větších datových sad:

output_buffering = 4096
max_execution_time = 60
memory_limit = 64M
post_max_size = 64M
upload_max_filesize = 64M


Přidání adresáře PHP do proměnné PATH


Jestliže chceme spustit PHP jako ISAPI rozšíření, musíme přidat adresář PHP do systémové proměnné PATH. To umožní, že knihovny DLL z PHP budou načítány korektně.
Přidáme proto C:\Program Files\Autodesk\MapGuideEnterprise2009\WebServerExtensions\Php do systémové proměnné PATH.


Konfigurace ASP.NET


Jestliže jsme použili klasickou instalaci, ASP.NET by již mělo být nakonfigurováno správně. Ujistíme se, zda používáme správnou verzi. Autodesk MapGuide Enterprise 2009 vyžaduje verzi 2.0.50727 nebo vyšší. Starší verze aplikace nebudou spolupracovat.

Pro ověření verze otevřeme administrační konzoli IIS. Přejdeme k projektu MapGuide a otevřeme jeho Vlastnosti. V záložce ASP.NET pak zkontrolujeme číslo verze. V případě potřeby prostředí aktualizujeme.


Konfigurace Web Service Extensions pro IIS 6


IIS 6 běžící v prostředí operačního systému Windows Server 2003 vyžaduje některé další zásahy do konfigurace, aby korektně fungovalo PHP a aplikace Map Agent.

V konzoli IIS vybereme složku Web Service Extensions a klepneme na Add a new Web Service Extension. Zadáme jméno mapagent a nalistujeme potřebný soubor v
C:\Program Files\Autodesk\MapGuideEnterprise2009\WebServerExtensions\www\mapagent\isapi_mapagent.dll.

Rozšíření pak nastavíme status Povoleno.

Totéž zopakujeme pro modul PHP CGI. Jako jméno zadáme php a soubor nalezneme zde:
C:\Program Files\Autodesk\MapGuideEnterprise2009\WebServerExtensions\Php\php-cgi.exe

Jestliže používáme standardního CGI agenta namísto ISAPI, nahradíme isapi_mapagent.dll souborem mapagent.exe dle postupu uvedeného výše.

2.2.2 Konfigurace webového serveru Apache

Jestliže si jako webový server pro Autodesk MapGuide Enterprise Web Server Extensions vybereme Apache, máme na výběr (podobně jako u IIS) ze dvou vývojových prostředí – tentokrát PHP nebo JSP.

V případě, že chceme korektně provozovat aplikaci Site Administrator na našem počítači, instalace PHP nás stejně nemine.

Existují dvě možnosti instalace Autodesk MapGuide Enterprise Web Server Extensions pro použití společně s webovým serverem Apache:
  • Standardní kompletní instalace obsahující Apache, PHP a volitelně také Tomcat.
  • Instalace pomocí instalátoru a ruční konfigurace serveru.
Jestliže vybereme první možnost, nainstalujeme trojkombinaci Apache/PHP/Tomcat a pro vývoj nových aplikací využijeme PHP. Nemusíme nic dále konfigurovat a vše je již nachystáno.

Jestliže budeme chtít vyvíjet v prostředí JSP, měli bychom se ujistit, zda jsme provedli všechny potřebné kroky uvedené v kapitole 2.1.2.

Co se stane při volbě manuální konfigurace serveru?
Instalátor provede instalaci a konfiguraci aplikací Apache a Tomcat, ale samotný webový server nespustí.

V základním stavu je jako vývojové prostředí zvoleno PHP. Jestliže chceme zvolit JSP, je nutné odstranit konfigurační pravidla pro PHP a nahradit je pravidly pro JSP uvedenými dále v textu v kapitole Konfigurace pro použití JSP.

Většina konfiguračních zásahů je realizována editací souboru httpd.conf v adresáři conf v místě instalace webového serveru Apache.

Upozornění - Některá pravidla a příkazy mohou být v tomto materiálu rozděleny na dva či více řádků. V konfiguračním souboru však musí být vždy vcelku = na jenom řádku.


Základní konfigurační kroky


Zde je uvedeno několik základních konfiguračních kroků, které je nutno provést, ať už používáme jedno či druhé vývojové prostředí.

Jestliže chceme používat Site Administrator nebo plánujeme vyvíjet v PHP, je nutné konfigurovat Apache, aby uměl zpracovávat soubory s příponou .php.
Upravíme proto soubor httpd.conf.

Pozorně prohlédneme konfigurační soubor pro PHP a v případě, že se od údajů uvedených níže bude lišit, upravíme jej.

ScriptAlias /php/ "C:/Program Files/Autodesk//MapGuideEnterprise2009/WebServerExtensions/Php/"
PHPIniDir “C:/Program Files/Autodesk//MapGuideEnterprise2009/WebServerExtensions/php”
AddType application/x-httpd-php .php
LoadModule php5_module modules/php5apache2_2.dll
LoadModule mgmapagent_module modules/mod_mgmapagent.so
LoadFile ../Php/php5ts.dll
LoadFile ../Php/ACE.dll
LoadFile ../Php/MgFoundation.dll
LoadFile ../Php/MgGeometry.dll
LoadFile ../Php/MgHttpHandler.dll
LoadFile ../Php/MgMapGuideCommon.dll
LoadFile ../Php/MgMdfModel.dll
LoadFile ../Php/MgMdfParser.dll
LoadFile ../Php/MgPlatformBase.dll
LoadFile ../Php/MgWebApp.dll

V sekci Dynamic Shared Object Support se ujistíme, že je modul rewrite povolen.
Jestliže je řádek zakomentován, odstraníme křížek, aby zápis vypadal takto:

LoadModule rewrite_module modules/mod_rewrite.so


 Konfigurace pro použití PHP


Aby bylo možné PHP používat jako vývojové prostředí společně se serverem Apache, přidáme na závěr souboru httpd.conf následující deklarace:

ScriptAlias /mapguide2009/mapagent/mapagent.fcgi
"C:/Program Files/Autodesk/MapGuideEnterprise2009/www/mapagent/mapagent.fcgi"
AliasMatch ^/mapguide2009/mapviewerajax/([^\?])(.*)$
"C:/Program Files/Autodesk/MapGuideEnterprise2009/www/mapviewerphp/\$1\$2"
AliasMatch ^/mapguide2009/mapviewerajax/(.*)$
"C:/Program Files/Autodesk/MapGuideEnterprise2009/www/mapviewerphp/ajaxviewer.php\$1"
AliasMatch ^/mapguide2009/mapviewerdwf/([^\?])(.*)$
"C:/Program Files/Autodesk/MapGuideEnterprise2009/www/mapviewerphp/\$1\$2"
AliasMatch ^/mapguide2009/mapviewerdwf/(.*)$
"C:/Program Files/Autodesk/MapGuideEnterprise2009/www/mapviewerphp/dwfviewer.php\$1"
Alias /mapguide2009
"C:/Program Files/Autodesk/MapGuideEnterprise2009/www/"
<Directory
"C:/Program Files/Autodesk/MapGuideEnterprise2009/WebServerExtensions/www/">
AllowOverride All
Options All
Order allow,deny
Allow from all
AddHandler mgmapagent_handler .fcgi
RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
</Directory>

Na závěr uložíme změny a restartujeme server Apache.

Konfigurace pro použití JSP


Pro použití vývojového prostředí JSP společně s webovým serverem Apache HTTP Server je nutná instalace následujících komponent:
  •  Java JDK 1.5
  • Tomcat
  • Konektor Apache/Tomcat

Stáhneme si instalační soubor pro Java JDK z webu java.sun.com. Provedeme standardní instalaci a poté nastavíme proměnnou JAVA_HOME do kořenového adresáře naší instalované Javy.
Následně stáhneme Tomcat a konektor Tomcat-Apache z webu tomcat.apache.org a provedeme opět standardní instalaci.

Na závěr je třeba provést následující zásahy:
  • Upravit konfiguraci webového serveru Apache pomocí souboru httpd.conf.
  • Přidat konfigurační soubor workers.properties pro konektor Tomcat
  • Nakonfigurovat a spustit Tomcat.

Konfigurace webového serveru Apache


Na konec zápisu v souboru httpd.conf přidáme následující deklarace:

ScriptAlias /mapguide2009/mapagent/mapagent.fcgi
"C:/Program Files/Autodesk/MapGuideEnterprise2009/WebServerExtensions/www/mapagent/MapAgent.exe"
AliasMatch ^/mapguide2009/mapviewerajax/([^\?])(.*)$
"C:/Program Files/Autodesk/MapGuideEnterprise2009/WebServerExtensions/www/mapviewerjava/$1$2"
Alias /mapguide2009/mapviewerajax
"C:/Program Files/Autodesk/MapGuideEnterprise2009/WebServerExtensions/www/mapviewerjava/ajaxviewer.jsp"
AliasMatch ^/mapguide2009/mapviewerdwf/([^\?])(.*)$
"C:/Program Files/Autodesk/MapGuideEnterprise2009/WebServerExtensions/www/mapviewerjava/$1$2"
Alias /mapguide2009/mapviewerdwf
"C:/Program Files/Autodesk/MapGuideEnterprise2009/WebServerExtensions/www/mapviewerjava/dwfviewer.jsp"
Alias /mapguide2009
"C:/Program Files/Autodesk/MapGuideEnterprise2009/WebServerExtensions/www/"
<Directory
"C:/Program Files/Autodesk/MapGuideEnterprise2009/WebServerExtensions/www/">
AllowOverride All
Options All
Order allow,deny
Allow from all
AddHandler mgmapagent_handler .fcgi
RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
</Directory>

Do konfiguračního souboru přidáme také následující kód, který je nezbytný pro konektor Tomcat.
Text <HostName>:<Port> vyměníme na správný název a port serveru.
Řetězec localhost nebude při přesměrování funkční.

LoadModule jk_module modules/mod_jk.so
JkWorkersFile
"C:/Program Files/Autodesk/MapGuideEnterprise2009/WebServerExtensions/Apache2/conf/workers.properties"
#
Where to put jk logs
JkLogFile
"C:/Program Files/Autodesk/MapGuideEnterprise2009/WebServerExtensions/Apache2/logs/mod_jk.log"
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# Send everything for context /examples to worker named
# worker1 (ajp13)
JkMount /mapguide2009/mapviewerjava/* worker1
Redirect /mapguide2009/mapviewerajax/
http://<Hostname>:<Port>/mapguide2009/mapviewerjava/ajaxviewer.jsp
Redirect /mapguide2009/mapviewerdwf/
http://<Hostname>:<Port>/mapguide2009/mapviewerjava/dwfviewer.jsp

Konfigurace konektoru


Přejmenujeme vytvořený konektor Apache/Tomcat na mod_jk.so a umístíme jej do adresáře modules v instalaci Apache. Originální soubor obsahuje číslo verze, a proto by se měl jmenovat
mod_jk-1.2.25-apache-2.2.4.so.
Do adresáře conf v instalaci Apache přidáme soubor workers.properties s následujícím obsahem:

# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.recycle_timeout=300


Konfigurace pro Tomcat


V adresáři instalace Tomcat conf\Catalina\localhost doplníme textový soubor pojmenovaný mapguide.xml následujícím obsahem:

<!--Context configuration file for the Tomcat Manager Web App-->
<Context docBase=
"C:\Program Files\Autodesk\MapGuideEnterprise2009\WebServerExtensions\www"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
<!-- Link to the user database we will get roles from -->
<ResourceLink name="users" global="UserDatabase"
type="org.apache.catalina.UserDatabase"/>
</Context>

Pro spuštění Tomcatu je třeba spustit soubor startup.bat, který nalezneme v adresáři bin.

2.2.3 Ověření konfigurace

Abychom zjistili, zda byla konfigurace úspěšná, provedeme několik testů a zjistíme, zda aplikace Map Agent a Web Server Extensions bez problémů fungují.

Testování služby Map Agent


Nejprve se ujistíme, zda je Autodesk MapGuide Enterprise Server v provozu. Po instalaci běží jako systémová služba. Zkontrolujeme proto, zda je tato služba spuštěna.

Otevřeme webový prohlížeč a zadáme níže zvedenou adresu. Jestliže aplikace Web Server Extensions nebyla instalována na náš lokální počítač, zaměníme localhost za jméno či IP adresu serveru.

http://localhost/mapguide2009/mapagent/mapagent.fcgi?OPERATION=ENUMERATERESOURCES&VERSION=1.0.0&
LOCALE=en&RESOURCEID=Library://&TYPE=&DEPTH=-1

Nesmíme také zapomenout, že v případě, že náš webový server naslouchá jinému portu, musíme jej také přidat do našeho http požadavku. Jestliže server Apache naslouchá na portu 8700, musíme zadat následující URL:

http://localhost:8700/mapguide2009/mapagent/mapagent.fcgi?OPERATION=ENUMERATERESOURCES&VERSION=1.0.0&
LOCALE=en&RESOURCEID=Library://&TYPE=&DEPTH=-1

Jako uživatelské jméno zadáme Administrator a do pole heslo doplníme admin. U obojího je třeba dbát na velká a malá písmena.

Jestliže mapový agent funguje bez problémů, zobrazí se XML dokument popisující zdroje v našem úložišti.


Testování aplikace Site Administrator


Opět je třeba se ujistit, zda je MapGuide Server v provozu (viz výše).

Otevřeme webový prohlížeč a zadáme následující URL:.
http://localhost/mapguide2009/mapadmin/login.php

Nesmíme také zapomenout, že v případě, že náš webový server naslouchá jinému portu, musíme jej také přidat do našeho http požadavku. Jestliže server Apache naslouchá např. na portu 8700, musíme zadat následující URL:

http://localhost:8700/mapguide2009/mapadmin/login.php

Jako uživatelské jméno zadáme Administrator a do pole heslo doplníme admin. U obojího je třeba dbát na velká a malá písmena.

Jestliže je aplikace Site Administrator správně nakonfigurována, zobrazí se stránka pro správu serverů (Manage Servers).


Testování aplikace Web Server Extensions


Vhodné je také otestovat, zda jsou Web Extensions konfigurovány korektně.
Jestliže chceme vyvíjet v prostředí PHP, zadáme ve webovém prohlížeči následující:
http://localhost/mapguide2009/mapviewerajax/ajaxviewer.php?WEBLAYOUT=Library://ATest.WebLayout

Jestliže používáme ASP.NET, vyzkoušíme:
http://localhost/mapguide2009/mapviewerajax/ajaxviewer.aspx?WEBLAYOUT=Library://ATest.WebLayout

A v případě nasazení JSP funkčnost otestujeme následující URL:
http://localhost/mapguide2009/mapviewerajax/ajaxviewer.jsp?WEBLAYOUT=Library://ATest.WebLayout

Protože webové rozložení ATest v úložišti Autodesk MapGuide Enterprise ještě neexistuje, měli bychom získat následující chybovou hlášku:
Resource was not found: Library://ATest.WebLayout

Tato chyba je vrácena skriptem z mapového prohlížeče AJAX Viewer. Ačkoliv se jedná o chybu, tak již víme, že konfigurace proběhla úspěšně a Web Server Extensions jsou připraveny pro přijímání a zpracovávání požadavků.