インストール

# yum -y install nfs-utils

公開設定

# vi /etc/exports 
/var/svn 49.212.145.87(rw,no_root_squash,sync,wdelay) (新datawatchのIP)
# exportfs -ra

※ /etc/exports を編集した場合は、必ず、exportfs -ra コマンドを実行して変更を反映させてあげる必要があります。

一般的なオプション
ro              読み込み専用でマウント
rw              読み書きを許可してマウント
async           ディレクトリ内のファイルは非同期に反映される(デフォルト)
sync            asyncと反対。ファイル更新が直ちに行われる
wdelay          複数の書き込み処理を1度に行う。NFSサーバ側での更新を一括して行う
no_wdelay       wdelayとは反対。syncオプションと併用する
noaccess        指定したディレクトリを共有しない
ユーザIDのマッピングに関するオプション 
all_squash      すべてのUID,GIDを匿名アカウントへマッピング(nfsnobody)
anonuid         すべてのUIDを匿名アカウントへマッピング
anongid         すべてのGIDを匿名グループへマッピング(nfsnobody)
squash_uids     指定したUIDのユーザをすべて匿名アカウントへマッピング
squash_gids     指定したGIDユーザをすべて匿名グループへマッピング
map_identity    UID,GIDに関する変換を行わない。
map_static      UID,GIDに関する変換を定義するマップファイルを指定する
root_squash     rootアカウントをnfsnobodyへ変換する(デフォルト)
no_root_squah   root_squashの反対。rootアカウントをroot(サーバ側)へマッピング

サーバ起動

(< CentOS5) # service portmap start
(>=CentOS6) # service rpcbind start
# service nfs start

「mount: wrong fs type, bad option, bad superblock on ~」

# mount -t nfs 182.48.44.154:/var/svn /mnt/old.typewrite.jp
mount: wrong fs type, bad option, bad superblock on 182.48.44.154:/var/svn,
       missing codepage or helper program, or other error
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)
       In some cases useful info is found in syslog - try
       dmesg | tail  or so
↓
nfs-utils をインストールする

「mount.nfs: rpc.statd is not running but is required for remote locking.」

# mount -t nfs 182.48.44.154:/var/svn /mnt/old.typewrite.jp
mount.nfs: rpc.statd is not running but is required for remote locking.
mount.nfs: Either use '-o nolock' to keep locks local, or start statd.
mount.nfs: an incorrect mount option was specified
↓
# service rpcbind start

mount.nfs: Input/output error

service portmap start すれば解決?

インスタンス設定(いろいろ)

該当マシンに ssh ログイン (myprojectユーザ)

↓

(ホスト名設定)
$ sudo su -
# hostname <新しい名前>
# vi /etc/sysconfig/network
HOSTNAME=<新しい名前>
# service network restart

(不要ファイル削除)
# rm -rf /home/myproject/myproject_point
# rm -rf /home/myproject/modules

↓

(NFS設定)
# yum -y install libevent-devel
# yum -y install nfs-utils
# vi /etc/exports
/home/www 10.1.0.0/22(rw)
# exportfs -ra
# chkconfig portmap on
# chkconfig nfs on
# service portmap start
# service nfs start

↓

(webdb2へのcaptcha参照)
# mkdir -p /home/www/www.myproject.jp/public/images/captcha
# mkdir -p /home/www/mypage.myproject.jp/public/images/captcha
# mount -t nfs webdb2:/home/www/captcha /home/www/www.myproject.jp/public/images/captcha
# mount -t nfs webdb2:/home/www/captcha /home/www/mypage.myproject.jp/public/images/captcha
# chmod -R 777 /home/www
(たくさんエラー出るけど気にしない)
# chown -R myproject:myproject /home/www
(たくさんエラー出るけど気にしない)

↓

(webdb2へのlogstorage参照)
# mkdir /home/www/logstorage
# mount -t nfs webdb2:/home/www/logstorage /home/www/logstorage

↓

(fstab設定)
# vi /etc/fstab
(最下部に以下を追記)
webdb2:/home/www/captcha /home/www/www.myproject.jp/public/images/captcha    nfs defaults 0 0
webdb2:/home/www/captcha /home/www/mypage.myproject.jp/public/images/captcha nfs defaults 0 0
webdb2:/home/www/logstorage /home/www/logstorage                       nfs defaults 0 0

# chkconfig netfs on

↓

(miscからの参照)
misc1# mkdir /home/www/_deploy/<新しいマシン名>
misc1# mount -t nfs <新しいマシン名>:/home/www /home/www/_deploy/<新しいマシン名>
misc1# vi /etc/fstab
<新しいマシン名>:/home/www /home/www/_deploy/<新しいマシン名> nfs defaults 0 0

↓

(miscからのファイル配布)
misc1# \cp -rf /home/www/_deploy/web1/*.jp /home/www/_deploy/<新しいマシン名>/.
(たくさんエラー出るけど気にしない)

↓

(パーミッション変更)
# chmod -R a+w /home/www/*.jp
# chown -R myproject:myproject /home/www/*.jp

↓

(mod_log_rotate)
# cd mod_log_
# scp myproject@misc1:/home/myproject/archives/mod_log_rotate.c .
# /usr/local/apache2/bin/apxs -i -a -c mod_log_rotate.c

↓

(Apache設定ファイル設置)
(wwwの場合)
# scp -r myproject@web1:/usr/local/apache2/conf/* /usr/local/apache2/conf/.
(mypageの場合)
# scp -r myproject@web2:/usr/local/apache2/conf/* /usr/local/apache2/conf/.
# chmod -R a+w /usr/local/apache2/conf
# chown -R myproject:myproject /usr/local/apache2/conf

↓

(memcache利用設定)
# yum -y install autoconf
# yum -y install httpd-devel
# /usr/local/php/bin/pecl install memcache
Enable memcache session handler support? [yes] : (Enter押下)
# vi /usr/local/php/lib/php.ini
-----------
[PHP] (追加)
extension=memcache.so (追加)

[date]
date.timezone = Asia/Tokyo

[Session]
session.save_handler = memcache (追加)
session.save_path = "10.1.3.177:11211" (追加)
session.gc_maxlifetime = 7200
-----------
# /usr/local/php/bin/php -m | grep memcache
(memcache と表示されることを確認)

↓

(余計なログ削除)
# rm -rf /home/www/*.jp/log/*

↓

(Twitter設定)
$ crontab -e
(以下の行を削除)
*/10 * * * * wget --no-check-certificate https://join.…

↓

(ログ移動設定)
# crontab -e
----
 0 3 * * * perl /home/www/www.myproject.jp/library/movelog.pl    /home/www/www.myproject.jp/log 2d
 5 3 * * * perl /home/www/mypage.myproject.jp/library/movelog.pl /home/www/mypage.myproject.jp/log 2d
----

↓

(Apache差替え)
# service httpd stop
# mv /etc/httpd /etc/httpd_old
# mv /usr/sbin/httpd /usr/sbin/httpd_old
# vi /etc/rc.d/init.d/httpd
apachectl=/usr/sbin/apachectl
→ apachectl=/usr/local/apache2/bin/apachectl

httpd=${HTTPD-/usr/sbin/httpd}
→ httpd=${HTTPD-/usr/local/apache2/bin/httpd}

pidfile=${PIDFILE-/var/run/httpd.pid}
→ pidfile=${PIDFILE-/usr/local/apache2/logs/httpd.pid}

CONFFILE=/etc/httpd/conf/httpd.conf
→ CONFFILE=/usr/local/apache2/conf/httpd.conf

# chkconfig httpd on
# service httpd start

/etc/fstab

# vi /etc/fstab 
LABEL=/                 /                       ext3    defaults        1 1
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
webdb2:/home/www/captcha /home/www/www.myproject.jp/public/images/captcha    nfs defaults 0 0
webdb2:/home/www/captcha /home/www/mypage.myproject.jp/public/images/captcha nfs defaults 0 0
webdb2:/home/www/logstorage /home/www/logstorage                       nfs defaults 0 0
# mount -a

mount

# mkdir /home/www/logstorage
# mount -t nfs webdb2:/home/www/logstorage /home/www/logstorage