さくらの VPS を借りて RStudio のサーバー版を動かす
今回、さくらの VPS を借りて RStudio のサーバー版を動かしたので、その顛末を記します。さくらの VPS のサーバーは標準で CentOS 6.4 でした。
1.サーバー導入から公開鍵認証方式での ssh 接続まで
主な流れ
- サーバーを申し込む
- 一番安いコースで初回は 2 ヶ月分で 3000 円弱。V プリカ使用可能
- 送られてきた仮登録メールに載った ip アドレスと root パスワードをメモ
- VPS コンソール に先ほどの組み合わせでログイン (参考画像 1 参照)
- コンソールからサーバーを起動させる (参考画像 2 参照)
- ssh でログイン
- ユーザー作成
- yum をアップデート
- sudo の設定をする
リモートコンソールを利用して以下の操作を行う。
なお、今回利用する vi は i
で編集可能な状態となり、 ESC
でコマンドが使える状態になる。コマンドモードで :w
をすると上書き、:q
で編集終了となる。
ユーザー作成
useradd ユーザー名 -G wheel # wheel グループで sudo 権限の管理をする
passwd ユーザー名 # パスワード設定
yum をアップデート
sudo yum update
sudo の設定をする
sudo vi /etc/pam.d/su
下の方法は一般ユーザーでも su できなくなるので use_uid オプションではなく、root_only オプションを使う方法がある。
http://www.pistolfly.jp/weblog/2008/06/suroot.html
---
以下をアンコメント
---
# auth required pam_wheel.so use_uid
↓
auth required pam_wheel.so use_uid
sudo vi /etc/login.defs
---
最終行に以下を追加
---
SU_WHEEL_ONLY yes
sudo visudo
---
以下をアンコメント
---
# %wheel ALL=(ALL) ALL
↓
%wheel ALL=(ALL) ALL
root でのログインを禁止する & Port 変更
sudo vi /etc/ssh/sshd_config
---
以下をアンコメントし no に
---
# PermitRootLogin yes
↓
PermitRootLogin no
---
同上
---
# PasswordAuthentication yes
↓
PasswordAuthentication no
---
Port を変更する
---
Port ${49152 - 65535 の間の任意の整数}
ホームディレクトリ直下に .ssh ディレクトリを作成
su - 作成したユーザー名
mkdir ~/.ssh
chmod 700 ~/.ssh
ここまで行ったら一旦リモートコンソールから離れます。
公開鍵、秘密鍵の作成 (Windows)
Windows では putty と WinSCP を利用する方法を採用する。
公開鍵は puttygen を利用して作る方法 を参考に作成する。
WinSCP で作成した公開鍵を /home/ユーザー名/.ssh/authorized_keys
に移動しておく。
公開鍵、秘密鍵の作成 (Mac)
Mac では標準のターミナルから接続する方法を採用する。
mkdir ~/.ssh # ホームディレクトリ直下に .ssh ディレクトリを作成する
cd ~/.ssh
ssh-keygen -t rsa
scp 公開鍵のファイルまでのパス [email protected]:/home/作成したユーザー名/.ssh/authorized_keys
公開鍵、秘密鍵の名称について
一般的に id_rsa.pub.${ドメイン名}
id_rsa.${ドメイン名}
のフォーマットで命名されるらしい。たとえば google.com であれば、id_rsa.pub.google.com
id_rsa.google.com
といったセットとなる。
sshd のリスタートなど
再びリモートコンソールに戻ります。
vi ~/.ssh/authorized_keys # 先ほど生成した公開鍵をはりつける
sudo chown ユーザー名:ユーザー名 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
sudo /etc/init.d/sshd restart # 先ほど編集した sshd_config がやっと反映
これでリモートコンソールからの操作は終了です。
ssh での接続 (Windows)
putty で秘密鍵を利用して接続します。
ssh での接続 (Mac)
簡単に接続するため、まず config を作成する。
vi ~/.ssh/config
Host 任意の名前
HostName IPアドレス
Port ポート
User 作成したユーザー名
IdentifyFile 秘密鍵へのパス
作成した config を使って ssh 接続します。
ssh 設定した名前
ここまでの参考サイト
さくらVPS 1GB に CentOS6.4 を入れて、 環境構築1 - ssh など - Qiita
さくらVPS/Cent OS 6.4 初期状態から鍵認証SSHでの接続まで[Railsサーバへの道] - 酒と泪とRubyとRailsと
2. 各種セットアップ
主な流れ
- iptables (ファイアウォール) 設定
- MeCab インストール
- R インストール
- R Studio インストール
iptables 設定
まず iptables6 を無効化
sudo vi /etc/modprobe.d/disable-ipv6.conf
---
以下を追加
---
options ipv6 disable=1
reboot 後も起動しないように設定
sudo /etc/init.d/ip6tables stop
sudo chkconfig ip6tables off
確認
chkconfig --list | grep ip6tables
すべて off になっていれば OK
次に postfix の設定
sudo vi /etc/postfix/main.cf
---
inet_protocols を all から ipv4 へ変更
なお、``IPv4`` と大文字を使って書くとエラーとなるので注意
---
inet_protocols = all
↓
inet_protocols = ipv4
iptables の設定
sudo vi /etc/sysconfig/iptables
---
基本的に以下をコピペで貼り付けるが、
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 自分の ssh ポート -j ACCEPT
を一行追加する
---
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH, HTTP, HTTPS, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 433 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
空白行に半角スペースがあるなどするとエラーが発生するので注意。
iptables 再起動
sudo /etc/init.d/iptables restart
chkconfig iptables on
chkconfig --list | grep '3:on' # iptables があれば OK
ここまでの参考サイト
さくらのVPSへのiptablesの設定 - 9ensanのLifeHack
Mecab のインストール
https://mecab.googlecode.com/ を見る
sudo yum install glibc glibc.i686 gcc* # gcc のインストール
mkdir ~/tmp
cd ~/tmp
wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz
tar zxvf mecab-0.996.tar.gz
cd mecab-0.996
./configure
make
sudo make install
mecab 辞書のインストール
cd ~/tmp
wget http://downloads.sourceforge.net/mecab/mecab-ipadic-2.7.0-20070801.tar.gz
tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf8
make
sudo make install
mecab # テスト
sudo vi /etc/ld.so.conf
---
最終行に以下を追加
---
/usr/local/lib
sudo ldconfig # 共有ライブラリを認識させる
R 関係のインストール
R のインストール
sudo yum install R
R Studio のインストール準備 (最新版は 0.98)
sudo yum install openssl098e compat-libgfortran-41
cd ~/tmp
wget http://download2.rstudio.org/rstudio-server-0.97.551-x86_64.rpm
sudo yum install --nogpgcheck rstudio-server-0.97.551-x86_64.rpm
sudo rstudio-server verify-installation # install check
sudo rstudio-server start # RStudio Server 起動
sudo chkconfig rstudio-server on # chkconfig に登録
iptables 関係
sudo vi /etc/sysconfig/iptables
---
以下を追加
---
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8787 -j ACCEPT
sudo /etc/init.d/iptables restart
これで http://xxx.xxx.xxx.xxx:8787 (xxx.xxx.xxx.xxx は IP アドレス) にアクセスすることで、
ネット環境さえあればいつでも RStudio が利用可能に。
また、R で MeCab を利用するには RStudio で以下を実行すれば良い。
install.packages ("RMeCab", repos = "http://rmecab.jp/R")
Author And Source
この問題について(さくらの VPS を借りて RStudio のサーバー版を動かす), 我々は、より多くの情報をここで見つけました https://qiita.com/sqrtxx/items/49a0885e4d28a6a8de4c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .