LinuxにwebMathematicaをインストールして設定する方法
webMathematicaを使うためには,Java,Servletコンテナ,およびMathematicaがシステムにインストールされていなければなりません.Mathematica (ひいてはwebMathematica)の機能の中には,Mathematicaのフロントエンドを使用しなければならないものもあります.そしてフロントエンドを使用するには,Linux上にX Window Systemがインストールされていなければなりません.webMathematicaをインストールするステップは以下の通りです.
- Javaの設定
- Tomcatの設定
- Mathematicaの設定
- webMathematicaがライセンスファイルにアクセスできるようにする方法
- webMathematicaをインストールして設定する方法
- MinimalあるいはServerエディションのLinux用にXvncを設定する方法
Javaの設定
Javaは,webMathematicaだけでなく,Java Servletコンテナにも必要です.OracleのJavaは,http://www.oracle.com/us/downloads/index.htmlからダウンロードできます.
Linuxディストリビューションの中には,Javaパッケージがコマンドラインあるいはソフトウェアセンターを通してインストールできるものもあります.
RedHat/CentOS/Fedora
sudo yum install java-1.8.0-openjdk
sudo yum install java-1.8.0-openjdk-devel
Debian/Ubuntu
sudo apt install openjdk-8-jre
sudo apt install openjdk-8-jdk
インストールに成功したかどうかを確かめるために,コマンドライン上で以下を実行します.
java -version
Tomcatの設定
インストール
webMathematicaは,Java Servletコンテナ内から操作するように設計されています.さまざまなServletコンテナの使用が可能ですが,ここではApache Tomcatの設定手順についてのみ,簡単に説明します.
- http://tomcat.apache.org/download-80.cgiを開きます.
- tar.gzという形式のインストーラをダウンロードします.
- サーバをインストールしたい場所に移動します.例えば
/usr/local
にインストールしたい場合は以下を実行します.cd /usr/local
- 現在の場所でインストーラを解凍します.
tar -xvzf apache-tomcat-<version>.tar.gz
Tomcatのテスト
- Tomcatサーバを起動するには,Tomcatのインストールディレクトリで以下を実行します.
./bin/startup.sh
- Webブラウザを開き,「localhost:8080」にアクセスします.Tomcatが正しく設定されている場合には,以下と同じようなページが開きます.
- Tomcatサーバを終了するためには,同じディレクトリで以下を実行します.
./bin/shutdown.sh
考えられる問題
- コンピュータのファイアウォールがTomcatへのリクエストをブロックしている場合があります.Tomcatはデフォルトでポート8080上で実行されます.Tomcatサーバを実行しているシステム上でtcpパケットが受信できるようにポートが開かれているかどうかを確かめてください.
- OracleのWebサイトからJavaをダウンロードした場合に,TomcatサーバがJavaのインストールを見付けられないことがあります.そのような場合には,システム変数JAVA_HOMEをJavaのインストールディレクトリに設定してください.例えば,Javaが
/usr/local/jdk1.8.0
にインストールされているという場合には,bashコマンドラインで以下を実行,またはこれらのコマンドを.bashrcに追加してください.JAVA_HOME=/usr/local/jdk1.8.0 export JAVA_HOME
Tomcatアカウントの作成(推奨)
Tomcatサーバ(通常「tomcat」と呼ばれる)を実行するための専用のユーザアカウントを作成することをお勧めします.このアカウントはTomcatサーバを実行するための承認が必要です.
- アカウントを作成するためには,ターミナルで以下を実行します.
sudo useradd tomcat sudo passwd tomcat
- apache-tomcatサーバをインストールしたディレクトリの親ディレクトリから以下のコマンドを実行して,Tomcatのインストールディレクトリの所有者とグループを「tomcat」ユーザに変更します.
sudo chown -R tomcat apache-tomcat-<version> sudo chgrp -R tomcat apache-tomcat-<version>
- 新しいユーザアカウントを使ってサーバを起動します.
su tomcat cd apache-tomcat-<version>/bin ./startup.sh
- Webブラウザを開き,「localhost:8080」にアクセスします.ユーザが正しく設定されていたら,以下のTomcatのランディングページが開きます.
Mathematicaの設定
Mathematicaをインストールし,Mathematicaをアクティベートして,生成されたライセンス情報を,使用するマシンで大域的にアクセスできる場所に置きます.
インストール
LinuxにMathematicaをインストール方法の手順に従ってください.
必ず適切なファイル名をお使いください.
sudo sh Mathematica_12.x_LINUX.sh
デフォルトのディレクトリを使用しない場合は,選択したインストールディレクトリをコマンドに使用することを忘れないでください.
アクティべーション
オンラインまたは手動のアクティべーションを使って,Mathematicaをアクティベートします.
X WindowがインストールされていないLinuxでは,Mathematicaのフロントエンドを使用することはできません.カーネルからMathematicaをアクティベートしてください.
- 以下のコマンドを実行します.
math
- アクティベーションキーを入力してください.アクティベーションキーの形式はXXXX-XXXX-XXXXXXです.
webMathematicaがライセンスファイルにアクセスできるようにする方法
Mathematicaはデフォルトでそのライセンス情報をユーザ固有の場所にあるmathpassファイル内に置きます.使用しているwebMathematicaでライセンス情報にアクセスできるようにするには,mathpassファイルを大域的にアクセス可能なMathematicaのベースディレクトリにコピーして,すべてのアカウントがファイルを読み取れるようにパーミッションを設定します.
- mathpassファイルの場所を調べたい場合には,Mathematicaで以下を評価します.
$PasswordFile
- ベースディレクトリの場所を調べたい場合には,以下を評価します.
$BaseDirectory
例:
In[1]:= $PasswordFile
Out[1]= /home/user/.Mathematica/Licensing/mathpass
In[2]:= $BaseDirectory
Out[2]= /usr/share/Mathematica
これらのフォルダの場所は,以下の手順で必要になります.
- Licensingディレクトリがまだ存在しないという場合もあります.その場合には,以下のコマンドを実行してこのディレクトリを作成します.
sudo mkdir -p /usr/share/Mathematica/Licensing
- mathpassファイルをベースディレクトリのLicensingディレクトリにコピーします.
sudo cp /home/user/.Mathematica/Licensing/mathpass /usr/share/Mathematica/Licensing/.
- すべてのアカウントについて,mathpassファイルへの読取りアクセスを許可します.
sudo chmod a+r /usr/share/Mathematica/Licensing/mathpass
webMathematicaをインストールして設定する方法
インストール
- ユーザポータルからwebMathematicaのインストールファイルをダウンロードして,解凍します.
- 解凍したwebMathematicaディレクトリをApache Tomcatサーバのwebappsディレクトリに置きます.ここで
$TOMCAT_INSTALL
はTomcatサーバのインストールディレクトリです.sudo mv webMathematica $TOMCAT_INSTALL/webapps/
- サーバを実行するためのtomcat userを作成した場合は,webMathematicaフォルダの所有者も変更してください.
sudo chown -R tomcat $TOMCAT_INSTALL/webapps/webMathematica sudo chgrp -R tomcat $TOMCAT_INSTALL/webapps/webMathematica
- フォルダを所有するアカウントからサーバを再起動します.
su tomcat cd $TOMCAT_INSTALL/bin ./shutdown.sh ./startup.sh
テストとトラブルシューティング
webMathematicaパッケージには,webMathematicaの設定のテストに使えるデフォルトページが含まれています.
- ブラウザで「localhost:8080/webMathematica」を指定して,ベースページにアクセスします.
- 最初のテストとして,Hello Worldの例をクリックします.実行時の時間と日付を提供するHello Worldページが表示されます.
- Hello Worldがうまく作動しない場合には,以下を実行してログファイルをチェックします.
less $TOMCAT_INSTALL/logs/webMathematica.log
考えられる問題
上記のログファイルでエラー....com.wolfram.kerneltools.state.StateMachine [ERROR] Could not find MathLink executable
を探します.このエラーが生じた場合,webMathematicaがMathematicaカーネルの実行ファイルを見付けられなかったことを示しています.このエラーは,Mathematicaを非標準的な場所にインストールした場合,あるいはお使いのwebMathematicaが推奨されるバージョンのMathematicaと一緒に使われていない場合に起ります.例えば,webMathematica 3.5.2はMathematica 12.2に対応する等です.現在サポートされている製品のバージョンと一緒に使うのに推奨されるバージョンはこちらでご覧ください.
正しいバージョンのMathematicaと一緒に使われるようにするには,webMathematicaを設定する必要があります.
- コマンドラインで,
$TOMCAT_INSTALL/webapps/webMathematica/WEB-INF/
に進み,ファイルMSPConfiguration.xmlを見付けます. - テキストエディタでMSPConfiguration.xmlを開き,以下のセクションを見付けます.
- このセクションを編集し,以下のように変更します.
<KernelPool> <KernelPoolName>General</KernelPoolName> <KernelExecutable> /usr/local/Wolfram/Mathematica/12.x/Executables/MathKernel </KernelExecutable> <URLPattern>/*</URLPattern> </KernelPool>
<KernelPool>
<KernelPoolName>General</KernelPoolName>
<URLPattern>/*</URLPattern>
</KernelPool>
注意:ここでは,Mathematica 12.xが/usr/local/Mathematica/12.x/
にインストールされているものとしています.インストールディレクトリが異なる場合には,その使用したインストールディレクトリで置き換えてください.
MinimalあるいはServerエディションのLinux用にXvncを設定する方法
Linuxの「Server」あるいは「Minimal」のディストリビューションの多くには,デフォルトではX Windowは含まれていません.Mathematica(ひいてはwebMathematica)の機能の中には,X Windowサーバを使用しなければならないものもあります.例えばPlot Exampleは,何らかのX Window Systemがなければ,正しく実行することができません.このような場合には,Xvncサーバを実行することをお勧めします.
- Xvncサーバをインストールします.このサーバは,yumあるいはaptのようなコマンドラインのインストールアプリケーションを通して取得することができます.
- コマンド「vncserver」でvncディスプレイを起動します.最初にこれを起動する場合には,ディスプレイ番号(通常は1)を提供する必要があります.
- 以下のコードを含むようにファイル
$TOMCAT_INSTALL/webapps/webMathematica/WEB-INF/MSPConfiguration.xml
を編集し,webMathematicaを設定してディスプレイを使用します.<KernelPool> .... <FrontEndLaunchFlags> -display :1 -nogui -geometry 1000x500+10+10 </FrontEndLaunchFlags> .... </KernelPool>
[English]