Instalace serveru webMathemaica na Linuxové distribuci Debian

Wolfram webMathematica je produkt, který umožňuje publikovat většinu funkcionality programu Wolfram Mathematica prostřednictvím webových stránek. Protože jeho instalace na Linuxový server není triviální, rozhodl jsem se její postup popsat pro případné zájemce. Instalaci jsem se snažil rozdělit do jednotlivých logických kroků, na jejichž konci je vždy ověření, zda se příslušná část instalace podařila.
Instalace je založená na Linuxové distribuci Debian Lenny, webovém serveru Apache2, servletovém serveru Apache Tomcat 6.0 a sun-java6-jdk, ale je pravděpodobné, že bude funkční i na mírně odlišných verzích. V postupu není zahrnuta ochrana serveru před útoky a předpokládá se, že po dobu instalace bude server izolován od přístupu z Internetu, a po dokončení instalace bude ošetřen nějakým firewallem, ať už na vnějším routeru nebo například pomocí iptables na samotném serveru.

Hardwarové nároky

Musíme si uvědomit, že na serveru poběží program Wolfram Mathematica (je nezbytnou podmínkou zprovoznění webMathematicy). Proto je dobré, aby počítač na kterém server poběží, měl rozumný výpočetní výkon. Počítač jehož instalaci popisuji bude sloužit jako školní server s webMathematicou, na kterém budou vystavovány především ne příliš náročné aplikace webMathematicy a počet přístupů je předpokládán na desítky denně. Instaloval jsem ho na počítač s procesorem Intel Pentium D DualCore na 3GHz s 1GB paměti a 80GB diskem, a zdá se, že jeho výkon je pro tyto účely zcela dostatečný. 

Instalace základního systému

Nejprve provedeme standardní instalaci Linuxového distribuce Debian, kde oproti obvyklým serverovým zvyklostem nainstalujeme i Desktop environment, protože webMathematica ke své činnosti potřebuje X windows.
Pro znalé instalace Debianu tahle věta stačila, pro méně znalé doporučuji si ze stránek www.debian.org stáhnout instalační CDčko ve verzi NetInst a postupovat podle postupu, který najdete Googlem jako Perfect Server Debian Lenny.
Doporučuji v prvním kroku vybrat English, ale jako country, territory vyberte Českou republiku. Já osobně si na servery dávám zásadně anglickou klávesnici, ale volba je na každém individuálně. V tomto tutoriálu předpokládám, že název a doménu serveru nastavíte hned při instalaci na požadovanou hodnotu (ale samozřejmě je možné je později změnit).

Doporučuji (a také s tím v tomto tutoriálu počítám) nastavit si pro tento server v DNS dva názvy. Já osobně jsem vytvořil názvy mathematica a webmath (konkrétně mathematica.panska.cz a webmath.panska.cz). Na hostname mathematica bude reagovat přímo apache server a poběží zde některý z běžných CMS systémů, kdežto na hostname webmath budou dotazy přesměrovány serveru Tomcat, pod kterým poběží servlet webMathematica. 
Pokračujte dále standardním postupem a v kroku Software selection vyberte pouze Standard system a Desktop environment. Já osobně po dokončení základní instalace nejraději server odnáším do serverovny (aby mi nepřekážel v kanceláři ) a v dalších krocích pokračuji již z ssh terminálu (např. PuTTY). Proto po restartu na konci prvotní instalace ještě nainstaluji ssh a svůj oblíbený editor joe.
Po restartu stiskneme Ctrl-Alt-F1 (přihlášení do konzole), přihlásíme se jako uživatel root a napíšeme:

apt-get install ssh joe

 

Ihned po dokončení instalace ssh se již k počítači můžeme přihlásit prostřednictvím ssh. Přihlásíme se jako uživatel root a tak budeme také až na výjimky pokračovat ve většině celé instalace.
Nejprve nakonfigurujeme podporované locales (nechte původní anglické a přidejte české ve verzi UTF-8) a časové pásmo a hned potom nainstalujeme nástroje pro synchronizaci systémového času:

dpkg-reconfigure locales
dpkg-reconfigure tzdata
apt-get install ntpdate ntp

Instalace webserveru a běžných utilit

Protože plánujeme na serveru nasadit některý z běžných CMS systémů (osobně používám zpravidla Drupal), nainstalujeme nejprve běžné komponenty LAMP, tedy Apache server, mySQL databázi a PHP:

apt-get install apache2 mysql-server php5

Debian Lenny nás již přímo při instalaci mySQL vyzve k zadání administrátorského hesla k databázi, ale staší distribuce to nedělaly, tak na to v případě jejich použití nezapomeňte!

Dále doporučuji nástroj pro správu databáze phpmyadmin:

apt-get install phpmyadmin

Pro práci s komprimovanými daty je dobré nainstalovat si standardní sadu kompresních utilit a pro případ nutnosti nějaké kompilace i základní vývojové prostředí:

apt-get install arc arj bzip2 cabextract zip unzip
apt-get install build-essential autoconf automake

(Bezpodmínečně nutný pro další instalaci je z toho všeho ovšem pouze apache server, takže pokud nechcete nic dalšího než statické webové stránky a program webMathematica, ze všeho výše uvedeného instalujte jen apt-get install apache2.)

To, že se instalace podařila si můžeme ověřit tím, že si server mathematica.nase.domena otevřeme ve web browseru. Měla by se objevit obligátní stránka Apache "It works!".

Instalace javy  

webMathematica je javovský servlet běžící na serveru Tomcat (v dokumentaci se píše, že může běžet na libovolném servlet containeru podporujícím specifikaci Servlet 2.4 a vyšší a JSP specifikaci 2.0 a vyšší, ale doporučován je právě Tomcat 5.5 nebo vyšší).
Balík JDK of firmy SUN nepodléhá zcela svobodné licenci, a tudíž ho Debian nemá v základní distribuci (během instalace jsme také vyzváni k potvrzení licenční smlouvy). Proto musíme nejprve upravit seznam zdrojů. Otevřeme editorem soubor sources.list

joe /etc/apt/sources.list

a přidáme na jeho konec následující řádky:

 

# for sun-java packages in unstable
deb http://ftp.debian.org/debian/ unstable non-free
deb-src http://ftp.debian.org/debian/ unstable non-free

Soubor uložíme (Ctrl-K, X) a updatujeme databázi balíčků:

apt-get update

Nyní můžeme nainstalovat javu:

apt-get install sun-java6-jdk

Tomcat server musí vědět, kde je java nainstalovaná, proto teď musíme nastavit systémové proměnné JAVA_HOME a JRE_HOME. Otevřeme soubor profile:

joe /etc/profile

najdeme v něm řádek export PATH a těsně pod něj přidáme:

export JAVA_HOME="/usr/lib/jvm/java-6-sun"
export JRE_HOME="$JAVA_HOME"

Soubor uložíme a aby proměnné nabyly hodnot bez nutnosti našeho odhlášení a znovupřihlášení, necháme ho tzv. sourcovat (tečka na začátku příkazu není překlep):

. /etc/profile  

Funkčnost javy vyzkoušíme například příkazem:

java -version

a správné nastavení proměnných třeba jejich použitím v příkazu cd:

cd $JAVA_HOME 

Instalace serveru Apache Tomcat

Je všeobecně známo, že Debian instalační balíček serveru Tomcat je bohužel velmi nepovedený a webMathematica pod serverem nainstalovaným pomocí něj (standardní apt-get install tomcat5.5) bohužel neběží. Proto server Tomcat nainstalujeme přímo z archivu staženého z jeho domovských stránek tomcat.apache.org.

Najdeme tam poslední stabilní verzi Tomcatu (v mém případě se jednalo o verzi 6.0.26), stáhneme ji a rozbalíme do příslušného adresáře (adresu u příkazu wget si upravte podle konkrétní nalezené verze serveru Tomcat):

cd /usr/share
wget http://www.apache.org/dist/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0...
tar xvzf apache-tomcat-6.0.26.tar.gz
rm apache-tomcat-6.0.26.tar.gz
mv apache-tomcat-6.0.26/ tomcat6.0

Nyní musíme vytvořit uživatele a skupinu tomcat a také je dobré uživatele tomcat kvůli provázanosti webových serverů přidat do skupiny www-data:

adduser tomcat
usermod -aG tomcat www-data

Tomuto novému uživateli přiřadíme práva ke složce pro ukládání webových aplikací:

cd /usr/share/tomcat6.0
chown tomcat:tomcat webapps/ -R
chmod 775 webapps/ -R

Dále v souboru tomcat-users nadefinujeme uživatele s právy managera pro Tomcat server (pochopitelně mu dáme dobré heslo):

joe conf/tomcat-users.xml

<tomcat-users>
<role rolename="manager"/>
<user username="mgr" password="heslo" roles="manager"/>
</tomcat-users>

Nyní zkusíme ručně spustit Tomcat server:

/usr/share/tomcat6.0/bin/startup.sh

Měly by se objevit zhruba tyto řádky:

Using CATALINA_BASE:   /usr/share/tomcat6.0
Using CATALINA_HOME:   /usr/share/tomcat6.0
Using CATALINA_TMPDIR: /usr/share/tomcat6.0/temp
Using JRE_HOME:        /usr/lib/jvm/java-6-sun
Using CLASSPATH:       /usr/share/tomcat6.0/bin/bootstrap.jar

Pokud v tuto chvíli web browserem zobrazíme adresu mathematica.nase.domena, měli bychom vidět "It works!", pokud zkusíme mathematica.nase.domena:8080, měli bychom vidět úvodní stránku Tomcat serveru.

Úvodní stránka Tomcat serveru

Můžeme ještě zkusit kliknout na položku menu Tomcat Manager a do přihlašovacího okna vložit jméno a heslo, které jsme nastavili pro roli managera, čímž se nám zobrazí stránka pro ovládání servletů.

Pokud jste se dostali až sem, gratuluji, můžete se zhluboka nadechnout a pokračovat dále. Pokud něco nefunguje tak jak by mělo, zkuste vše ještě jednou prověřit a chyby odstranit. Bez perfektně fungujícího Tomcatu webMathematica chodit nebude.

Automatické spuštěni Tomcatu a konektor s Apachem

Samozřejmě je žádoucí, aby se Tomcat server spouštěl sám po startu serveru (zatím jsme ho pouze pokusně spustili ručně). Spouštěcí skripty daemonů jsou v Debianu umístěny v adresáři /etc/init.d Vytvoříme alespoň primitivní spouštěcí skript, který je sice funkční, ale správnější kvůli ošetření různých možných chyb by bylo použít jako jeho základ složitější soubor skeleton z adresáře /etc/init.d (popis toho je už ovšem nad rámec našeho článku).

Vytvoříme tedy soubor tomcat:

joe /etc/init.d/tomcat

a zkopírujeme do něj tento obsah:

#!/bin/sh -e
export JRE_HOME="/usr/lib/jvm/java-6-sun"
case $1 in
start)
/usr/share/tomcat6.0/bin/startup.sh
;;
stop)
/usr/share/tomcat6.0/bin/shutdown.sh
;;
restart)
/usr/share/tomcat6.0/bin/shutdown.sh
/usr/share/tomcat6.0/bin/startup.sh
;;
*)
exit 1
;;
esac

Pro zařazení symbolických linků do správného místa startup procesu provedeme příkaz:

update-rc.d tomcat defaults 99

I když z hlediska dotazujícího se browseru dělá Apache2 a Tomcat server vpodstatě totéž - generuje a posílá webovou stránku, není možné, aby oba servery sdílely jediné pro web obvyklé číslo portu 80. Proto má Tomcat standardně nastaven port 8080, tak jak jsme viděli, když jsme se na něj připojovali při ověřování jeho funkčnosti. Nestandardní číslo portu ovšem není pro běžné uživatele moc příjemné. Proto nyní nakonfigurujeme Apache server tak, aby zprostředkovával veškerou komunikaci s Tomcatem. Všechny dotazy na adresu mathematica.nase.domena bude zpracovávat přímo Apache server, zatímco dotazy na webmath.nase.domena bude apache zprostředkovávat Tomcat serveru. Apache modul komunikující s Tomcat serverem se jmenuje Jakarta a musíme ho nejprve nainstalovat:

apt-get install libapache2-mod-jk

Teď musíme vytvořit soubor s jeho konfigurací:

cd /etc/apache2/mods-available
joe jk.conf

a zapsat do něj následující obsah:

<IfModule mod_jk.c>
JkWorkersFile /etc/apache2/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel error
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
</IfModule>

Soubor uložíme a vytvoříme jeho symlink v adresáři povolených modulů a zkontrolujeme, že tam je i symlink modulu samotného:

cd ../mods-enabled
ln -s ../mods-available/jk.conf jk.conf
ls

Ve výpisu musíme vidět soubory jk.conf a jk.load. Tím ale konfigurace Jakarty zdaleka nekončí. Nejprve vytvoříme soubor worker.properties, na který se odkazuje jk.conf. V něm je popsán konektor s názvem default, který se připojuje na port 8009 na localhost. Tento konektor později použijeme v definici VirtualHosta Apache serveru.

Nyní standardním způsobem vytvoříme adresář pro pozdější uložení klasického webu (třeba nějakého toho redakčního systému), prozatím si do něj zkopírujeme index.html s nápisem It works! a připravíme odpovídající site soubor pro apache:

mkdir /var/www/mathematica
chown www-data:www-data /var/www/mathematica/
cp /var/www/index.html /var/www/mathematica/index.html 
cd /etc/apache2/sites-available

joe mathematica

obsah souboru:

<VirtualHost *:80>
ServerAdmin webmaster@nase.domena
ServerName mathematica.nase.domena
DocumentRoot /var/www/mathematica/
<Directory /var/www/mathematica/>
Options Indexes FollowSymLinks MultiViews
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/Mathematica-err.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/mathematica-acc.log combined
</VirtualHost>

Teď připravíme site soubor pro web webmath.nase.domena. Na rozdíl od toho předchozího tato site nebude založená na DocumentRoot adresáři, ale na jakarta konektoru:

joe webmath

s obsahem:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName webmath.panska.cz
JkMount /* default
JkMount /*.jsp default
DirectoryIndex index.jsp index.html
# Globally deny access to the WEB-INF directory
<LocationMatch ".*WEB-INF.*">
deny from all
</LocationMatch>
ErrorLog /var/log/apache2/webmath-err.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/webmath-acc.log combined
</VirtualHost>

Nakonec vytvoříme symlinky na právě vytvořené soubory v /etc/apache2/sites-available do /etc/apache2/sites-enabled:

cd ../sites-enabled
rm 000-default
ln -s ../sites-available/mathematica 000-mathematica
ln -s ../sites-available/webmath 001-webmath

Zkusíme celý server rebootovat a měly by být dostupné weby mathematica.nase.domena a webmath.nase.domena (již bez portu 8080), přičemž ten první ukazuje It works! a ten druhý úvodní stránku Tomcat serveru.

Pokud jste došli až sem, je téměř vše připraveno pro instalaci programů Wolfram Mathematica a webMathematica. Osvěžte se šálkem čaje (třeba maté) nebo kávy a můžeme pokračovat...

Instalace Wolfram Mathematica 7.0.1

Vložíme instalační CDčko Mathematiky pro  Linux, ale bohužel přímo z něj instalace neběží (skončí nějakou chybou, když se na CDčko snaží cosi zapsat). Proto jeho obsah nejprve musíme překopírovat třeba do adresáře tmp a teprve odtamtud instalaci spustit:

cp /cdrom/Unix /tmp/Unix -r
cd /tmp/Unix/Installer
./MathInstaller

Na otázku ohledně instalačního adresáře doporučuji vložit pro Debian typičtější /usr/share/Wolfram/Mathematica/7.0 a podobně později namísto /usr/local/bin dáme jen /usr/bin:

--------------------------------------------------------------------------------
Wolfram Mathematica 7 Installer
--------------------------------------------------------------------------------
Copyright (c) 1988-2009 Wolfram Research, Inc. All rights reserved.
WARNING: Wolfram Mathematica is protected by copyright law and international
treaties. Unauthorized reproduction or distribution may result in severe
civil and criminal penalties and will be prosecuted to the maximum extent
possible under law.
Enter the installation directory, or press ENTER to select
/usr/local/Wolfram/Mathematica/7.0:
> /usr/share/Wolfram/Mathematica/7.0
Create directory (y/n)? y
Now installing...
[***************                                              ]
Type the directory path in which the Wolfram Mathematica script(s) will be
created, or press ENTER to select /usr/local/bin:
> /usr/bin

Následuje registrační proces. Záleží na tom, jaký licenční model používáte. Já osobně server registruji jako single machine i přesto, že na síti máme server poskytující síťovou licenci Mathematiky, aby webMathematica nemusela být závislá na dalším stroji a stavu sítě. Okopírujeme si MathID a některým ze standardních způsobů (např. pomocí stránky register.wolfram.com) produkt zaregistrujeme a po doručení mailu s heslem ho na příslušné místo vložíme. Celé to vypadá zhruba takhle (čísla ve výpisu jsou samozřejmě nepravá):

 

Configuring Single-Machine password...
Mathematica 7.0 for Linux x86 (32-bit)
Copyright 1988-2009 Wolfram Research, Inc.
You will need to get a password from your
license certificate or from Wolfram Research
(http://register.wolfram.com).
Machine name:   mathematica
MathID: 7102-123456-12345
You will need a valid license ID and password in order
to proceed. Go to http://register.wolfram.com or
consult your Getting Started documentation.
Enter your name: Jakub Serych
Enter the name of your organization: SPSST
Enter your license ID [format Lxxxx-xxxx]: L1234-1234
Enter your password: 1234-123-123:0,1,1,1:1:35210123 (přijde mailem)
Creating password file entry in
/usr/share/Mathematica/Licensing/mathpass.
See your Getting Started documentation if you need to
set up a site-wide password file.
Installation complete. 

Zkoušeli jste někdy Mathematiku v čistě textovém režimu? Pokud ne, máte jedinečnou příležitost příkazem math. Ukončení se provede stisknutím Ctrl-C a netradičně klávesy Enter a napsáním příkazu quit:

 

math

Mathematica 7.0 for Linux x86 (32-bit)
Copyright 1988-2009 Wolfram Research, Inc.
In[1]:= 1+1
Out[1]= 2
In[2]:= Ctrl-C <Enter>
Interrupt> quit

Chcete-li si prohlédnout Mathematicu tak, jak ji znáte z MS Windows, zalogujte se přímo z klávesnice serveru do X windows a najdete ji v menu Applications/Other/Mathematica 7. Pozor, ukončuje se prostřednictvím menu File/Quit, pouhé zavření okna notebooku křížkem jen vygeneruje okno s novým prázdným notebookem.

 

Instalace programu webMathematica

Instalace samotné webMathematicy je poměrně snadná záležitost, výrazně obtížnější je pak její zprovoznění. webMathematica se dodává ve formě dvou archivů webMathematica.zip a webMathematica.war. Oba obsahují téměř totéž, jen soubor war je určen pro automatickou instalaci Tomcatem. My instalaci provedeme z obyčejného zip souboru. Soubor z CDčka překopírujeme do adresáře webapps, rozbalíme a nastavíme práva:

 

cp /cdrom/webMathematica.zip /usr/share/tomcat6.0/webapps/
cd /usr/share/tomcat6.0/webapps/
unzip webMathematica.zip
chown tomcat:tomcat webMathematica -R

Teď musíme otevřít soubor MSPConfiguration.xml v adresáři WEB-INF a provést v něm potřebné úpravy. První z nich je nastavení cesty ke kernelu. Upravíme sekci <KernelPool> do následujícího tvaru:

 

cd webMathematica/WEB-INF
joe MSPConfiguration.xml

  <KernelPool>
<KernelPoolName>General</KernelPoolName>
<URLPattern>/*</URLPattern>
<KernelExecutable>
/usr/local/Wolfram/Mathematica/7.0/Executables/MathKernel
</KernelExecutable>
</KernelPool>

Pokud teď browserem zkusíme zobrazit web webmath.nase.domena/webMathematica, měli bychom vidět úvodní stránku webMathematiky s příklady.

 

Úvodní stránka webMathematiky 

 

Zkusíme kliknout na příklad Hello World a vše by mělo fungovat, uvidíme datum a čas na serveru zobrazený prostřednictvím funkcí programu webMathematika.

 

Hello World

Ale nejásejme předčasně. Pokud klikneme na příklad Plot Example a v něm na tlačítko Plot, dostaneme po chvíli čekání pouze chybovou hlášku. To je proto, že Mathematica (zavolaná nadstavbou webMathematica) potřebuje pro jeho výstup grafické prostředí X windows, které v tuto chvíli ještě nemáme nastaveno. V X windows se jednotlivé tzv. displeje označují dvojtečkou a číslem za názvem serveru. Jedním řešením by bylo, přihlásit se trvale k serveru v prostředí X windows, a pak vše nakonfigurovat tak, aby Mathematica používala displej nazev-serveru:0, což odpovídá právě fyzickému displeji počítače. Kdykoliv by někdo z webu sáhl po nějakém výpočtu s grafickým výstupem (jako je třeba onen Plot Example), Mathematica by si na obrazovce přihlášeného uživatele otevřela okno, v něm provedla potřebný výstup, a po odeslání na web by ho zase zavřela. To je samozřejmě poněkud neprofesionální řešení s mnoha různými nevýhodami. Proto budeme postupovat jinak. Nainstalujeme takzvaný VNC server, což je server pro vzdálený přístup k pracovní ploše Linuxového počítače. VNC server tak poskytne programu Mathematica virtuální grafický displej, kde si bude moci nerušeně dělat vše potřebné. Provedeme instalaci serveru a pro kontrolu si také stáhneme a nainstalujeme VNC klienta pro MS Windows, například z adresy www.tightvnc.com

 

apt-get install vnc4server

Po instalaci nejprve spustíme server ručně jako uživatel tomcat. Server se napoprvé zeptá na heslo, kterým se budeme ke vzdálené ploše moci připojit:

 

su tomcat
vncserver
You will require a password to access your desktops.
Password:
Verify:
xauth:  creating new authority file /home/tomcat/.Xauthority
New 'mathematica:1 (tomcat)' desktop is mathematica:1
Creating default startup script /home/tomcat/.vnc/xstartup
Starting applications specified in /home/tomcat/.vnc/xstartup
Log file is /home/tomcat/.vnc/mathematica:1.log

Totéž provedeme pro uživatele root, aby se příslušné soubory vytvořily i v jeho domovském adresáři:

 

vncserver -kill :1
exit
vncserver 

Když nyní spustíme Mathematicu a pomocí parametru display jí přesměrujeme na nově vytvořený virtuální displej, můžeme se k němu pak vzdáleně přihlásit (pomocí TightVNC klienta na adresu mathematica.nase.domena:1) a měli bychom vidět klasické okno aplikace Mathematica.

 

mathematica -display :1

Pokud program Mathematica v TightVNC ukončíme, uvidíme i na řádku terminálu, že skončil a objevil se nový prompt.
Aby webMathematica věděla k jakému virtuálnímu displeji se má připojovat, musíme upravit konfigurační soubor MSPConfiguration.xml. Do sekce <KernelPool> pod řádku </KernelExecutable> přidáme sekci <FrontEndLaunchFlags> (pokud by takto uvedený tvar npozději nefungoval, můžeme namísto -display :1 napsat -display nazev-serveru:1):

 

joe /usr/share/tomcat6.0/webapps/webMathematica/WEB-INF/MSPConfiguration.xml

<FrontEndLaunchFlags>
-display :1 -nogui -geometry 1000x500+10+10
</FrontEndLaunchFlags>

Zbývá vyřešit poslední problém, kterým je automatické spuštění vncserveru po startu počítače a zajištění jeho dosažitelnosti z webMathematiky. I přesto, že jsme již schopni ručně spustit Mathematiku na virtuálním displeji, náš oblíbený test - příklad Plot Example z hlavní stránky webMathematiky ještě stále fungovat nebude. Na vině je to, že vncserver se z bezpečnostních důvodů spouští v režimu, ve kterém je na začátku připojení k virtuálnímu displeji vyžadována cookies transakce. Ta se sice odehraje při ručním spuštění vnc klienta, ale nikoliv při snaze webMathematiky se připojit k virtuálnímu displeji. Pro správnou funkci je třeba vncserveru zakázat používání těchto bezpečnostních prvků. To se z příkazové řádky dá provést příkazem xhost +, který ovšem bohužel nefunguje ve startovacím skriptu. V něm tedy situaci musíme řešit jinak, a sice spuštěním vncserveru, kterému parametrem -ac rovnou zakážeme využívání systému cookies. Vytvořme tedy startovací skript vncserveru a vložme do něj následující text:

 

joe /etc/init.d/vncserver

#!/bin/sh -e
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DISPLAY="mathematica:1.0"
HOME="/root"
case $1 in
start)
/usr/bin/vnc4server -ac
;;
stop)
/usr/bin/vnc4server -kill :1
;;
restart)
/usr/bin/vnc4server -kill :1
/usr/bin/vnc4server -ac
;;
*)
exit 1
;;
esac

Nakonec příkazem:

update-rc.d vncserver defaults 99 

vytvoříme potřebné symbolické linky na tento skript do příslušných adresářů zapojených do startu systému.
Pokud jsme postupovali správně, odměnou by nám po rebootu serveru měla být plně funkční webMathematica.