Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

さくらのレンタルサーバ(スタンダード)でNode.jsをインストールする

$
0
0

「Node.js」をさくらでやるならVPSを契約しないとだろうなあ、レンタルサーバじゃ無理だよなあ。と思っていたら、できるという噂が。そこで、試してみた。

尚、開発環境はMac OS X 10.9(2014/06時点で最新のもの)。

さくらのレンタルサーバにSSHでログインする

ターミナル(自分の場合はiTerm2)を開いて、sshコマンドでログイン。(サーバの文字コード設定がEUC-JPになっているため、ターミナルの文字コード設定も「Japanese(EUC)」にしないと日本語が文字化けする。)

$ ssh (sakura's login name)@(sakura's domain name)password:(input your password)

vimをインストール

別に不要かもしれないが、何かと便利そうだったので、vimをインストールすることにした。以下のサイトを参考にさせてもらった。(この後の内容は、ほぼ、このサイトと一緒。)

まず、ソース用のディレクトリを作成して移動。

% mkdir -p $HOME/local/src% cd $HOME/local/src

ソースを手に入れる。2014/06時点でのvimの最新版は7.4版だが、「extra」なるものと「lang」なるものが7.2版までしかないため、vim本体も7.2版をゲットした。

% wget ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2% wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-extra.tar.gz% wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gz

解凍し、出来上がった「vim72」へ移動。

% tar jxf vim-7.2.tar.bz2% tar xvzf vim-7.2-extra.tar.gz% tar xvzf vim-7.2-lang.tar.gz% cd vim72

パッチ用のディレクトリを作成し、パッチをゲット。(2014/06現在の7.2版のパッチは「446」まである。)

% mkdir patches% cd patches% curl -O 'ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.[001-446]'

ひとつ上に戻り、パッチを適用。

% cd ../% cat patches/7.2.* | patch -p0

インストール。オプションは、参考サイトに従った。

% ./configure --enable-multibyte --enable-xim --enable-fontset --with-features=big --prefix=$HOME/local% make% make install

これでインストールは完了。あとは、参考サイトにも書いてある、「vi」で「vim」が起動させるようにする設定を行った。

% cd% vi .cshrc

"set path = (◯◯...)" となっているカッコ内の一連の記述に「$HOME/local/bin」を追加し、更に、このファイルのどこかに1行、「alias vi vim」の記述を追加。sourceコマンドで、その設定を反映。

% source .cshrc

whichコマンドで確認してみた。

% which vivi:      aliased to vim

ついでに$HOMEに.vimrcも作成。内容は、Vimの設定ファイルを作ると、ずんWiki - vimにある「文字コードの自動認識」のものをそっくりそのまま入れさせてもらった。

.vimrc
"#####表示設定#####setnumber"行番号を表示するsettitle"編集中のファイル名を表示setshowmatch"括弧入力時の対応する括弧を表示syntaxon"コードの色分けsettabstop=4"インデントをスペース4つ分に設定setsmartindent"オートインデント"#####検索設定#####setignorecase"大文字/小文字の区別なく検索するsetsmartcase"検索文字列に大文字が含まれている場合は区別して検索するsetwrapscan"検索時に最後まで行ったら最初に戻る" 文字コードの自動認識if&encoding!=# 'utf-8'setencoding=japan
  setfileencoding=japan
endifif has('iconv')lets:enc_euc ='euc-jp'lets:enc_jis ='iso-2022-jp'" iconvがeucJP-msに対応しているかをチェックif iconv("\x87\x64\x87\x6a",'cp932','eucjp-ms')==# "\xad\xc5\xad\xcb"lets:enc_euc ='eucjp-ms'lets:enc_jis ='iso-2022-jp-3'" iconvがJISX0213に対応しているかをチェックelseif iconv("\x87\x64\x87\x6a",'cp932','euc-jisx0213')==# "\xad\xc5\xad\xcb"lets:enc_euc ='euc-jisx0213'lets:enc_jis ='iso-2022-jp-3'endif" fileencodingsを構築if&encoding==# 'utf-8'lets:fileencodings_default =&fileencodingslet&fileencodings=s:enc_jis .','. s:enc_euc .',cp932'let&fileencodings=&fileencodings .','. s:fileencodings_default
    unlet s:fileencodings_default
  elselet&fileencodings=&fileencodings .','. s:enc_jis
    setfileencodings+=utf-8,ucs-2le,ucs-2if&encoding=~# '^\(euc-jp\|euc-jisx0213\|eucjp-ms\)$'setfileencodings+=cp932
      setfileencodings-=euc-jp
      setfileencodings-=euc-jisx0213
      setfileencodings-=eucjp-ms
      let&encoding=s:enc_euc
      let&fileencoding=s:enc_euc
    elselet&fileencodings=&fileencodings .','. s:enc_euc
    endifendif" 定数を処分
  unlet s:enc_euc
  unlet s:enc_jis
endif" 日本語を含まない場合は fileencoding に encoding を使うようにするif has('autocmd')function! AU_ReCheck_FENC()if&fileencoding=~# 'iso-2022-jp'&& search("[^\x01-\x7e]",'n')==0let&fileencoding=&encodingendifendfunctionautocmdBufReadPost * call AU_ReCheck_FENC()endif" 改行コードの自動認識setfileformats=unix,dos,mac
" □とか○の文字があってもカーソル位置がずれないようにするif exists('&ambiwidth')setambiwidth=double
endif

もう一度「vi .vimrc」で開いて、文字色など設定した内容が反映されていることを確認。これで、vimのインストールは完了。
```

Node.jsをソースコードからインストール

その前にlibexecinfoのインストール

root権限なしでNode.js、MongoDBをインストールする方法さくらのレンタルサーバ(スタンダード)にnode.jsをインストールしてみたを参考にした。Node.jsの前に「libexecinfo」とやらをインストールしないとNode.jsをビルドできないらしいので、まずはlibexecinfoをインストールする。

更にその前にportsのインストール

そのlibexecinfoをインストールする上で、どうやらportsというもののインストールが必要であるっぽい。Sakura共用サーバにportsをインストールを参考に、インストールしてみた。

まずはports treeとやらの取得。

% cd ~/local% mkdir work% mkdir work/ports% mkdir work/ports/distfiles% mkdir var% mkdir var/db% mkdir var/db/portsnap% vi work/ports/portsnap.conf

portsnap.confを以下のように記述。

portsnap.conf
# Default directory where compressed snapshots are stored.
WORKDIR=/home/(user name)/local/var/db/portsnap

# Default location of the ports tree (target for "update" and  "extract").
PORTSDIR=/home/(user name)/local/work/ports

# Server or server pool from which to fetch updates.  You can change
# this to point at a specific server if you want, but in most cases
# using a "nearby" server won't provide a measurable improvement in
# performance.
SERVERNAME=portsnap.FreeBSD.org

# Trusted keyprint.  Changing this is a Bad Idea unless you've received
# a PGP-signed email from <security-officer@FreeBSD.org> telling you to
# change it and explaining why.
KEYPRINT=9b5feee6d69f170e3dd0a2c8e469ddbd64f13f978f2f3aede40c98633216c330

# Example of ignoring parts of the ports tree.  If you know that you
# absolutely will not need certain parts of the tree, this will save
# some bandwidth and disk space.  See the manual page for more details.
#
# WARNING: Working with an incomplete ports tree is not supported and
# can cause problems due to missing dependencies.  If you have REFUSE
# directives and experience problems, remove them and update your tree
# before asking for help on the mailing lists.
#
REFUSE arabic chinese french german hebrew hungarian
REFUSE korean polish portuguese russian ukrainian vietnamese
REFUSE x11 x11-clocks x11-drivers x11-fm x11-fonts x11-servers x11-themes x11-toolkits x11-wm
REFUSE palm cad astro

portsnapコマンドで、このconfigファイルを指定。

% portsnap -f ~/ports/portsnap.conf fetch extract update

次にportsからのインストール設定。portsからインストールするものは「$HOME/local/ports」に全てインストールするようにした。

% cd ~/local% mkdir ports% cd ports/% mkdir -p bin sbin etc lib tmp/dist tmp/work var/db/pkg var/db/ports var/run% vi ~/.cshrc

portsとNode.jsのための設定を.cshrcに追加する

以下のsetenvの設定を追加。

.cshrc
setenv  PATH    ${PATH}:${HOME}/local/ports/bin
setenv  NODE_PATH   ${HOME}/local/ports/bin/node
setenv  NODE_MODULES    ${HOME}/local/lib/node_modules
setenv  LD_LIBRARY_PATH
setenv  LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${HOME}/local/lib

setenv  INSTALL_AS_USER yes
setenv  PREFIX  ${HOME}/local/ports
setenv  LOCALBASE   ${HOME}/local/ports
setenv  PKG_DBDIR   ${LOCALBASE}/var/db/pkg
setenv  PKG_TMPDIR  ${LOCALBASE}/tmp/
setenv  PORT_DBDIR  ${LOCALBASE}/var/db/pkg
setenv  DISTDIR ${LOCALBASE}/tmp/dist
setenv  WRKDIRPREFIX    ${LOCALBASE}/tmp/work
setenv  PORTSDIR    ${HOME}/local/work/ports
setenv  PKGTOOLS_CONF   ${LOCALBASE}/etc/pkgtools.conf
setenv  DEPENDS_TARGET  'install clean'

setenv  X11BASE ${LOCALBASE}

setenv  PKG_CONFIG_PATH "$HOME/local/ports/lib/pkgconfig:$HOME/local/ports/libdata/pkgconfig:/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/libdata/pkgconfig:/usr/libdata/pkgconfig"

# Set user and group variables to ourself
setenv  BINOWN  `whoami`
setenv  BINGRP  `id -G -n ${BINOWN}`
setenv  SHAREOWN    ${BINOWN}
setenv  SHAREGRP    ${BINGRP}
setenv  MANOWN  ${BINOWN}
setenv  MANGRP  ${BINGRP}

# Make sure files are installed with correct default permissions
setenv  BINMODE 744
setenv  SHAREMODE   644
setenv  MANMODE 644

# Make sure we don't really try to become root, but just execute everything as ourselves
setenv  SU_CMD  "sh -c"

# Make sure the systemdefault make.conf is not read
setenv  __MAKE_CONF ${LOCALBASE}/etc/make.conf

# Keep our own version of ldconfig hints
setenv  LDCONFIG    "/sbin/ldconfig -i -f ${LOCALBASE}/var/run/ld-elf.so.hints"
#setenv LDCONFIG    "/sbin/ldconfig -f=${LOCALBASE}/var/run/ld-elf.so.hints -i -R=${LOCALBASE}/etc/ld-elf.so.conf "
setenv  LD_LIBRARY_PATH ${LOCALBASE}/lib
setenv  LD_RUN_PATH ${LOCALBASE}/lib

setenv  PATH    ${LOCALBASE}/bin:${LOCALBASE}/sbin:${PATH}
setenv  MANPATH_MAP ${LOCALBASE}/bin:${LOCALBASE}/man

# Set application specific variables to make sure it doesn't pick up things from the main system
setenv  APXS    ${LOCALBASE}/sbin/apxs
setenv  PERL    ${LOCALBASE}/bin/perl
setenv  PERL5   ${PERL}
setenv  SITE_PERL   ${LOCALBASE}/lib/perl5/site_perl/5.8.8
setenv  SITE_PERL5  ${SITE_PERL}
setenv  PERL_VERSION    5.8.8
setenv  PERL_VER    ${PERL_VERSION}

setenv  SRCCONF     ~/local/ports/etc/src.conf

Node.jsのインストール

Node.js公式のダウンロードページからソースコードをゲットし…とやってみたものの、上手くいかなかった。試行錯誤の結果、先ほどインストールしたportsとやらにNode.jsが入っていたので、そちらのものを「make install」することでインストールした。

% cd ~/local/work/ports/www/node% make install

途中、依存するライブラリに関して「◯◯をインストールしますか」的なダイアログが表示されるが、全てデフォルトのままで「OK」を選び、インストールを続けた。

インストールが完了したら、「node -v」のコマンドで、インストールが正常に完了したかを確認する。

% node -vv0.10.28

バージョンが表示されれば、インストールは正常に完了。

このあと調べたいこと

で、どこまでNode.jsが使えるかっていう。root権限なしでNode.js、MongoDBをインストールする方法に書かれているような、express入れて、socket.ioで何やかんやとか、MongoDB入れて、とかって本当にレンタルサーバでできるのか、を調べてみたい。もう少し遊んでみる予定。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>