Node.js0.10.25とMongoDB2.6.9を使用したサーバ環境構築
前回作成したサーバイメージに、Node.js0.10.25とMongoDB2.6.9を使用したサーバ環境を構築する。
なお、本サーバイメージはCentOS6.6のインストール直後である。
ネットワークの設定
- ifcfgを編集。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
- 以下のように設定(DHCP環境の場合)。
DEVICE=eth0 #HWADDR=*** TYPE=Ethernet #UUID=*** ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp
パッケージのアップデート
- パッケージをアップデート。
# yum update
グループとユーザの追加
- グループは以下のコマンドで追加。
# groupadd -g <GID> <グループ名>
- ユーザは以下のコマンドで追加。
# useradd -g <グループ名> -u <UID> <ユーザ名>
- ユーザ追加時にホームディレクトリとシェルと指定する場合は、以下のコマンドで追加。
# usermod -g <グループ名> -d <ホームディレクトリ> -s <シェル> -u <UID> <ユーザ名>
- 追加したユーザとグループの確認。
# id <ユーザ名>
- ユーザをwheelグループに追加する場合は、以下のコマンドで編集。
# vigr
- 以下のように編集。
wheel:x:10:<ユーザ名>
- パスを編集する場合、以下のように編集。
# vi /home/<ユーザ名>/.bashrc
- 以下のように編集(例)。
PATH="$PATH":/opt/bin
- ユーザのパスワードは、以下のコマンドで設定。
# passwd <ユーザ名>
sudoの設定
- /etc/sudoersを編集。
visudo
- 以下のように編集(例)。
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/opt/bin %wheel ALL=(ALL) ALL
公開鍵と秘密鍵の作成
- rootから作業ユーザに変更。
# su <ユーザ名>
- 公開鍵と秘密鍵を作成。
$ cd $ ssh-keygen
Enter file in which to save the key (/home/<ユーザ名>/.ssh/id_rsa): <Enter> Created directory '/home/<ユーザ名>/.ssh'. Enter passphrase (empty for no passphrase): <パスフレーズを入力し、Enter> Enter same passphrase again: <パスフレーズを入力し、Enter> Your identification has been saved in /home/<ユーザ名>/.ssh/id_rsa. Your public key has been saved in /home/<ユーザ名>/.ssh/id_rsa.pub. The key fingerprint is: 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff <ユーザ名>@<ホスト名> The key's randomart image is:
- 作成した.sshディレクトリに移動。
cd ~<ユーザ名>/.ssh
- 以下のコマンドを実行。
$ cp –ip ./id_rsa.pub ./authorized_keys $ chmod 600 authorized_keys
- rootに変更。
$ exit
ssh の設定
- sshd_configを編集。
# vi /etc/ssh/sshd_config
- 以下のように編集(例)。
# rootでのログインを許可しない PermitRootLogin no # パスワード認証によるログインを禁止(公開鍵方式でしかログインさせない) PasswordAuthentication no # ログイン時の遅延を解消 GSSAPIAuthentication no
NTPの設定
- 時刻同期デーモンを停止。
# /etc/init.d/ntpd stop
- ntp.confを編集。
# vi /etc/ntp.conf
- 以下のように編集。
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server -4 ntp.nict.jp server -4 ntp.nict.jp server -4 ntp.nict.jp server -4 ntp.nict.jp
- 時刻を同期。
# ntpdate ntp.nict.jp
- 時刻同期デーモンを起動。
# /etc/init.d/ntpd start
- 数分経ったら、以下のコマンドで時刻が同期しているかを確認。
# ntpq –p
- 以下のようにremoteのホスト名の左横に「*」がついていたら同期完了。
remote refid st t when poll reach delay offset jitter ============================================================================== +ntp-a2.nict.go. .NICT. 1 u 32 64 377 98.748 9.511 91.679 +ntp-b2.nict.go. .NICT. 1 u 39 64 377 93.339 5.348 283.719 +ntp-a3.nict.go. .NICT. 1 u 53 64 377 92.676 5.236 207.158 *ntp-b3.nict.go. .NICT. 1 u 30 64 377 81.482 -6.739 70.909
基本パッケージのインストール
- yumで各パッケージをインストール。
# yum install gcc gcc-c++ make ...
追加パッケージの手動インストールの準備
- yumを使用せずインストールする追加パッケージのため、インストール用ディレクトリを作成。
# mkdir -p /opt/build/distfiles
- ライブラリパスの追加。
sudo sh -c "echo /opt/lib >> /etc/ld.so.conf"
MongoDBのインストール
# touch /etc/yum.repos.d/mongodb.repo # vi /etc/yum.repos.d/mongodb.repo
- 以下のように編集。
[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1
- yumでMongoDBをインストール。
# yum install mongo-10gen mongo-10gen-server
- yum.confを編集。
# vi /etc/yum.conf
- yumでアップデートされないように、以下のように編集。
exclude=mongo-10gen,mongo-10gen-server
FreeType(※ImageMagickで使用)のインストール
- 公式サイトからソースコードのアーカイブファイルをダウンロード。
# cd /opt/build/distfiles # curl -L -O http://download.savannah.gnu.org/releases/freetype/freetype-2.4.11.tar.bz2
- アーカイブファイルを解凍。
# cd /opt/build # tar jxvf distfiles/freetype-2.4.11.tar.bz2
- ソースコードをビルド。
cd /opt/build/freetype-2.4.11 env CC=gcc CXX=g++ ./configure --prefix=/opt ; make
- インストール。
# make install
- 以下のエラーが発生した場合、internalディレクトリを手動で作成し、再度インストールする。
rmdir: failed to remove `/opt/include/freetype2/freetype/internal': そのようなファイルやディレクトリはありません
- internalディレクトリを作成。
# mkdir /opt/include/freetype2/freetype/internal
Ghostscriptフォント(※ImageMagickで使用)のインストール
- 公式サイトからソースコードのアーカイブファイルをダウンロード。
# cd /opt/build/distfiles # curl -L -O http://jaist.dl.sourceforge.net/sourceforge/gs-fonts/ghostscript-fonts-std-8.11.tar.gz
- アーカイブファイルを解凍。
# cd /opt/share # tar zxvf /opt/build/distfiles/ghostscript-fonts-std-8.11.tar.gz
ImageMagickのインストール
- yumでImageMagickをインストール。
# yum install ImageMagick-6.5.4.7
Node.jsのインストール
- 公式サイトからソースコードのアーカイブファイルをダウンロード。
# cd /opt/build/distfiles # curl -O http://nodejs.org/dist/v0.10.25/node-v0.10.25.tar.gz
- アーカイブファイルを解凍。
# cd /opt/build # tar zxvf distfiles/node-v0.10.25.tar.gz
- ソースコードをビルド。
# cd /opt/build/node-v0.10.25 # ./configure –prefix=/opt ; make
- インストール。
# make install
- rootで実行できるようにリンクを作成。
# ln -s /usr/local/bin/node /opt/bin/node # ln -s /usr/local/bin/npm /opt/bin/npm
Node.js用パッケージのインストール
- パッケージをローカルインストール。
# cd <サーバアプリを置くディレクトリ> # npm install <パッケージ名>
- パッケージをグローバルインストール。
# cd <サーバアプリを置くディレクトリ> # npm install -g <パッケージ名>
共有ライブラリの反映
- 以下のコマンドで反映。
# /sbin/ldconfig
IPv6の無効化
- 設定ファイルを編集。
# vi /etc/sysconfig/network
- 以下の行を追加。
NETWORKING_IPV6=no
ファイアウォールの設定
- iptablesを任意に編集。
# vi /etc/sysconfig/iptables
サーバ再起動
- サーバを再起動する。
# shutdown -r now