月別アーカイブ: 2013年8月

エックスサーバーでGitをインストール

vimに引き続き、開発者視点ではGitでバージョン管理できないと甚だ不安です。
そこでgitもローカルディレクトリにインストールしてみます。

Gitを入れる前にGNU gettextが必要なのでインストールします。

$ cd ~/tmp
$ wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.2.tar.gz
$ tar zxvf gettext-0.18.2.tar.gz
$ cd gettext-0.18.2
$ ./configure –prefix=$HOME
$ make install

.bash_profileにパスが通っていることを確認します。

PATH=$PATH:$HOME/bin

Git をインストール

$ wget https://github.com/git/git/archive/master.zip
$ unzip master
$ cd git-master
$ make configure
$ ./configure –prefix=$HOME
$ make all
$ make install

これでGitコマンドが使えるようになりました。

参考ページ
Xserver で git を使う | 3.1415.jp

エックスサーバーにVimをインストールする

大容量&低価格、安定したレスポンスで評価の高いレンタルサーバー『エックスサーバー』。
しかし我々技術者にとっては、容量がいくつとかMySQLがいくつとか言うスペックよりも、一番重要なのは
『SSHが使えるかどうか』
ですよね。

で、エックスサーバーはSSH接続は可能なんですが、エディタがViしか入っていないので不便です。syntaxがないとコードを書いてても不安でしょうがないので、Vimを入れてみました。
レンタルサーバーのため、当然ローカルユーザーなのでYumなどのパッケージ管理は使えないので、ソースからインストールする必要があります。

Vimをソースからインストール

まずローカルディレクトリに一時ディレクトリを作って、そこにソースをDLします。

$ cd ~
$ makedir tmp
$ cd ./tmp
$ wget ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
$ tar jxvf ./vim-7.3.tar.bz2

vimは現在7.4が出てるんですが、Patchが出てなかったので7.3にしました。
解凍してできたvim73の中に入ってPatchをDLして当てます。

$ cd ./vim73
$ mkdir patches
$ cd ./patches
$ curl -O ‘ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.[001-502]’
$ cd ..
$ cat patches/7.3.* | patch -p0

次にconfigureしてmakeでインストール…のはずだったんですが。

$ ./configure –enable-multibyte –enable-xim –enable-fontset –with-features=big –prefix=$HOME

ここでエラーが出て叱られます。

no terminal library found
checking for tgetent()… configure: error: NOT FOUND!
You need to install a terminal library; for example ncurses.
Or specify the name of the library with –with-tlib.

「ターミナルライブラリーがない、例えばncurse的な。それか–with-tlibオプションでターミナルを指定せよ」
とのことなので、じゃあncurseを入れようか…と思うも

yum install ncurse-devel

はもちろん使えません。(root権限がある普通のサーバならこれでOKです)
rpmパッケージからのインストール

ももちろん不可です。

–with-tlibオプションでncursesを指定してみたらどうかな?と一応試してみましたが

$ ./configure –enable-multibyte –enable-xim –enable-fontset –with-features=big –with-tlib=ncurses –prefix=$HOME

checking whether stack_t has an ss_base field… no
checking –with-tlib argument… ncurses
checking for linking with ncurses library… configure: error: FAILED

無いものは無いということでした。

というわけでncursesもソースを探してきてインストールします。

ncursesをインストール

$ cd ~/tmp
$ wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.tar.gz
$ tar zxfv ncurses-5.7.tar.gz
$ cd ncurses-5.7
$ configure –prefix=$HOME
$ make
$ make install

インストール完了。
これでvimインストールの準備が整ったので、再度configureに挑戦します。

今度こそVimをインストール

$ cd ~/tmp/vim73
$ ./configure –enable-multibyte –enable-xim –enable-fontset –with-features=big –prefix=$HOME
$ make
$ make install

インストールが終わりました。
念の為「vim」と打ってみると

$ vim
version 7.3.502
by Bram Moolenaar 他.
Vim はオープンソースであり自由に配布可能です

ウガンダの恵まれない子供たちに援助を!
詳細な情報は :help iccf<Enter>

終了するには :q<Enter>
オンラインヘルプは :help<Enter> か <F1>
バージョン情報は :help version7<Enter>

インストール成功です。

あとは.bashrcにvimのエイリアスを追加すれば完了です。

# User specific aliases and functions
 alias ls='ls -G'
 alias vi='vim'

SSLのパスフレーズ(Pass Phrase Dialog)入力を省略してApacheを起動する

パスフレーズ付きでSSLの鍵を作ると、Apache再起動の際にパスフレーズの入力を求められます。

こんな感じです。

通常の起動プロセス

[root@www5254ue ~]# service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中: Apache/2.2.15 mod_ssl/2.2.15 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server weblogy.co.jp:443 (RSA)
Enter pass phrase:

Apache:mod_ssl:Error: Pass phrase incorrect (5 more retries permitted).
Enter pass phrase:

OK: Pass Phrase Dialog successful.
                                                           [  OK  ]

でもこれだと再起動の際に毎回入力するのは面倒だし、何より自動再起動の際にここでストップしてしまいます。

そこでこのパスフレーズの入力を省略して起動できるようにしてみましょう。

方法は2つあります。

1.パスフレーズ無しの鍵にする
2.パスフレーズ応答スクリプトを設定する

1.パスフレーズ無しの鍵にする

1については、最初からパスフレーズなしで作る方法と、後からパスフレーズを消す方法とあります。

1-A パスフレーズなしで鍵を生成する場合

通常の作成方法

# openssl genrsa -des3 -out ./ssl.key/xxxxxxx.key 2048

パスワードなしの作成方法

# openssl genrsa -out ./ssl.key/xxxxxxx.key 2048

1-B パスフレーズを後から解除する場合

元ファイルのバックアップ

# cp xxxxxxx.key xxxxxxx.key.org

パスフレーズの解除

# openssl rsa -in xxxxxxx.key -out xxxxxxx.key

これで、パスフレーズ無しの鍵ができます。

パスワード自動応答スクリプトを設置する

まず、パスワードを自動的に応答するシェルスクリプトを書きます。シェルスクリプトと言っても、パスフレーズをエコーするだけの単純なものです。
これはどこに設置してもいいんですが、SSL関連の設定が置いてある/etc/ssl/certs/に置くことにします。

vi /etc/ssl/certs/pass_phrase.sh
#!/bin/sh
echo "your passphrase"

実行権限を与えておきます。

chmod 500 /etc/ssl/certs/pass_phrase.sh

次に、SSLの設定を変更します。

# vi /etc/httpd/conf.d/ssl.conf
#   Pass Phrase Dialog:
#   Configure the pass phrase gathering process.
#   The filtering dialog program (`builtin' is a internal
#   terminal dialog) has to provide the pass phrase on stdout.
#SSLPassPhraseDialog  builtin
SSLPassPhraseDialog  exec:/etc/ssl/certs/pass_phrase.sh

SSL設定の中野、パスフレーズダイアログの部分を、「builtin」から、先ほどのスクリプトの実行指定に変更しました。

これで完成です。再起動を試してみましょう。

# service httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]