RStudio を HTTPS で使用する


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 ポートの開放をお忘れなく。

主要参考文献

脚注

  1. 私は普段筑波大学のミラーサイトを利用しています。 []
  2. モジュールが最初から有効化されていた場合は reload で良いです。 []
  3. RStudio サーバーのポートはデフォルトが 8787 なので www-port は記述しなくても動きます。明示しておくとわかりやすいです。 []
  4. 利用可能なフォントファミリー名は names(postscriptFonts()pdfFonts()) を実行すると確認できます。 []