RStudio は 統計解析環境 Rのための IDE です。デスクトップ版とサーバー版があり,サーバー版ではブラウザー上で R の開発を行うことができます。
RStudio サーバー版を利用するだけなら組み込みの HTTP サーバーを使えば良いのですが, RStudio v0.93 時点では SSL には対応していません。そこで Apache のプロキシーを利用して SSL 対応の RStudio 環境を構築してみます。
環境
- Ubuntu 10.4 Server 版 (64-bit)
- Apache 2.2
- R 最新版
- RStudio v0.93
R のインストール
Ubuntu の公式リポジトリで R が用意されていますが,最新版をインストールしたいので『UBUNTU PACKAGES FOR R』にしたがって少し作業をします。
/etc/apt/sources.list に次の一行を付け加えます。
deb http://cran.r-project.org//bin/linux/ubuntu lucid/
ここでは公式の CRAN サイトを利用していますが,好きなミラーサイトを利用すれば良いです[A]。最後の lucid/ の部分は Ubuntu 10.4 (コードネーム Lucid Lynx) なので,違うバージョンの Ubuntu の場合は適宜修正が必要です。
次に R プロジェクトの GPG 鍵をインストールします。
gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9 gpg -a --export E084DAB9 | sudo apt-key add -
これで CRAN のリポジトリが利用できるようになったので, APT で R をインストールします。
sudo aptitude update sudo aptitude install r-base
RStudio のインストール
『Download RStudio Server』を読みながらインストールします。本記事の場合は 64-bit 版です。
wget https://s3.amazonaws.com/rstudio-server/rstudio-server-0.93.92-amd64.deb echo 'bd21457b8a1c8362ea48d7d630a4a73f rstudio-server-0.93.92-amd64.deb' | md5sum --check sudo dpkg -i rstudio-server-0.93.92-amd64.deb
公式ドキュメントには書かれていませんが,念のために MD5 チェックサムを確認しています。さらにこだわる人は https://s3.amazonaws.com/rstudio-server/ で提供される XML を解析するなどしてもう少し自動化すると良いと思います。
Apache の設定
基本は『RStudio Server: Running with a Proxy』の通りですが, SSL の設定も行います。
まず Apache のインストールとモジュールの追加を行います。
sudo aptitude install apache2 libapache2-mod-proxy-html libxml2-dev sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod ssl
/etc/apache2/sites-available/rstudio というファイルを以下の内容で作成します。
# Listen 443 <VirtualHost *:443> <Proxy *> Allow from all </Proxy> ProxyPass / http://127.0.0.1:8787/ ProxyPassReverse / http://127.0.0.1:8787/ SSLEngine on SSLCertificateFile /path/to/cert SSLCertificateKeyFile /path/to/key </VirtualHost>
Listen
の行はポート番号を変更したい場合に VirualHost の行とともに修正して,コメントアウトします。アクセス制限は Allow from all
にしていますが,必要に応じて修正しましょう。
サイトを有効化し, Apache を再起動します[B]。
sudo a2dissite ssl # デフォルトの SSL サイト sudo a2ensite rstudio sudo /etc/init.d/apache2 restart
RStudio の設定
外部からプロキシーサーバー越しにアクセスさせるために, RStudio にローカルホスト以外からのアクセスを拒否させます。
/etc/rstudio/rserver.conf というファイルを以下の内容で作成します[C]。
www-address=127.0.0.1 www-port=8787
RStudio を再起動して完了です。
rstudio-server restart
日本語対応
サーバーに日本語対応フォントがインストールされていない場合は日本語をプロットしても文字が表示されません。日本語フォントのインストールを行います。
sudo aptitude install ttf-vlgothic
PDF に出力する場合は,適切なフォントファミリーを指定する必要があります[D]。具体的には,例えば Japan1GothicBBB を指定する場合は, /etc/R/Rprofile.site に以下の内容を追加します。
setHook( packageEvent("grDevices", "onLoad"), function(...) grDevices::pdf.options(family = "Japan1GothicBBB") )
ユーザーごとに指定する場合は ~/.Rprofile に記述します。
その他
ファイアーウォールを利用している場合は HTTPS ポートの開放をお忘れなく。
主要参考文献
- UBUNTU PACKAGES FOR R
- Download RStudio Server
- RStudio Server: Running with a Proxy
- Apache Module: mod_ssl
- Apache Module: mod_proxy
- RStudio Server: Configuring the Server
脚注
- 私は普段筑波大学のミラーサイトを利用しています。 [↩]
- モジュールが最初から有効化されていた場合は
reload
で良いです。 [↩] - RStudio サーバーのポートはデフォルトが 8787 なので
www-port
は記述しなくても動きます。明示しておくとわかりやすいです。 [↩] - 利用可能なフォントファミリー名は
names(
を実行すると確認できます。 [↩]postscriptFonts()pdfFonts())