rubyenv

rubyenv, ruby-buildインストール

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
source ~/.zshrc
# インストール可能なruby
rbenv install --list
# インストール
rbenv install 1.9.3-p551
# インストール済みのバージョン
rbenv versions
# 全体のrubyバージョンを指定
rbenv global 1.9.3-p551
# 現在のディレクトリ固有のrubyバージョンを指定
 rbenv local 1.9.3-p551
# 現在のバージョン
rbenv version

# 新しいrubyのバージョンがない場合は
cd ~/.rbenv
git pull
cd ~/.rbenv/plugins/ruby-build
git pull

参考

rbenv を利用した Ruby 環境の構築 | Developers.IO

mecabインストール

mecabインストール

 mkdir ~/work/mecab
 cd ~/work/mecab
 wget http://mecab.googlecode.com/files/mecab-0.994.tar.gz
 tar xvfz mecab-0.994.tar.gz
 cd mecab-0.994
 ./configure --enable-utf8-only
 make
 sudo make install
 mecab -v

ipadic インストール

 mkdir ~/work/ipadic
 cd ~/work/ipadic
 wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz
 tar zvxf mecab-ipadic-2.7.0-20070801.tar.gz
 cd mecab-ipadic-2.7.0-20070801
 ./configure --with-charset=utf8
 make
 sudo make install

naist-jdic インストール

 mkdir ~/work/naist-jdic
 cd ~/work/naist-jdic
 wget "http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fnaist-jdic%2F53500%2Fmecab-naist-jdic-0.6.3b-20111013.tar.gz" -O naistdic.tar.gz
 tar zvxf naistdic.tar.gz
 cd mecab-naist-jdic-0.6.3b-20111013/
 ./configure --with-charset=utf8
 make
 sudo make install

php-mecabインストール

yum -y install php-pear
$ echo "すもももももももものうち" | mecab
すもも  名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
うち    名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

phpenvインストール

1つの環境で異なったphpを使うようにする。

ビルドのためのパッケージ

sudo yum install re2c libxml2-devel openssl-devel curl-devel freetype-devel gd gd-devel mcrypt libmcrypt-devel readline-devel libtidy libtidy-devel libxslt-devel

phpenvインストール

curl https://raw.githubusercontent.com/CHH/phpenv/master/bin/phpenv-install.sh | bash
git clone git://github.com/CHH/php-build.git ~/.phpenv/plugins/php-build
echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(phpenv init -)"' >> ~/.zshrc
exec $SHELL -l

特定のバージョンをインストール

phpenv install -l     # インストールできるバージョン
phpenv install 5.5.9  # インストール
phpenv versions       # インストール済みの一覧
phpenv local 5.5.9    # このディレクトリ以下で使うphpのバージョン

参考

http://note.onichannn.net/archives/3192

XMLサイトマップ、RSS/Atomを使い Googleに正しくサイト内ページと更新情報を知ってもらう

Googleや他の検索エンジンによるクロールを最適化するためにXMLサイトマップRSS/Atomフィードの両方を利用しよう。というお話

XMLサイトマップ

サイトマップインデックスを利用している場合は、複数XMLサイトマップがあったとしてもGoogleへのpingは1回のみでOK。 複数XMLサイトマップに少しだけURLを記載するのは間違いで、想定された時間ないでXMLサイトマップをすべてダウンロードされなくなる可能性がある。 => URLが少ないとき(5万URLor無圧縮10MB以下)は1つのXMLサイトマップにまとめろって事だと思う。

RSS/Atom

  • サイト内の更新情報を伝えるためのもの、頻繁に更新されるべき
  • 一般的にファイルサイズが小さい
  • PubSubHubbub を利用する (wordpressプラグインにある)

新たなページの追加、既存のページが実質的に更新されたとき、フィードにそのURLと更新日時を追加する Googleによる更新情報見逃し防止のため、RSS/Atomフィードには少なくとも前回のGoogleのクロール以降のすべての更新情報を含める。

=> PubSubHubbub を利用するのがオススメ

参考

rsyncを使ってサーバ間バックアップ

  • cronを使ってrsync, sshで10分毎にバックアップ
  • それぞれのサーバにアカウントrsyncuserを作り、公開鍵認証を利用
  • コピー元 /var/www 配下すべて
  • コピー先サーバの /home/rsyncuser/<コピー元サーバのドメイン名>/var/www/ 配下に保存
  • サーバのsshのポートは10022
  • rsyncuserはコピー元サーバからのみログイン可能にする(鍵漏れ対策)

それぞれのサーバにrsyncuserを作りサーバ間rsync

コピー元サーバ

コピー元サーバにログインする必要はないので、ログインできないユーザとして追加

sudo useradd -s /bin/false rsyncuser

空の鍵作成

$ sudo -u rsyncuser ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/rsyncuser/.ssh/id_rsa): (エンター)
Created directory '/home/rsyncuser/.ssh'. (エンター)
Enter passphrase (empty for no passphrase): (エンター)
...

sudo -u rsyncuser mv /home/rsyncuser/.ssh/id_rsa.pub /home/rsyncuser/.ssh/authorized_keys

公開鍵をコピー先サーバへ転送

sudo cp /home/rsyncuser/.ssh/authorized_keys ~/authorized_keys-rsyncuser
scp -P10022  ~/authorized_keys-rsyncuser <転送先サーバ>:
rm -f ~/authorized_keys-rsyncuser

コピー先サーバ

コピー元サーバで作成した公開鍵を、rsyncuserの.sshディレクトリに入れる

sudo useradd rsyncuser
sudo -u rsyncuser mkdir -m 700 /home/rsyncuser/.ssh
sudo mv ~/authorized_keys-rsyncuser /home/rsyncuser/.ssh/authorized_keys
sudo chown rsyncuser:rsyncuser /home/rsyncuser/.ssh/authorized_keys

バックアップを保存するためのディレクトリを作成

sudo -u rsyncuser mkdir -p /home/rsyncuser/<コピー元サーバのドメイン>/var/www

コピー元サーバ

rsyncのテスト /var/www 以下をバックアップ

sudo -u rsyncuser rsync -av -e 'ssh -p10022 -i /home/rsyncuser/.ssh/id_rsa' /var/www/ rsyncuser@<コピー先サーバ>:`hostname`/var/www/
Are you sure you want to continue connecting (yes/no)? yes # yesと入力しエンター

10分毎にrsyncするようにcronにセット

$ sudo -u rsyncuser crontab -e
*/10 * * * * rsync -av -e 'ssh -p10022 -i /home/rsyncuser/.ssh/id_rsa' /var/www/ rsyncuser@<コピー先サーバ>:`hostname`/var/www/

ログイン元を制限

コピー先サーバ

rsyncuserがログインはコピー元サーバに限定

$ sudo vim /etc/ssh/sshd_config
UsePAM yes

$ sudo vim /etc/security/access.conf
- : rsyncuser : ALL EXCEPT <コピー元サーバIP>

$ sudo vim /etc/pam.d/sshd 
#%PAM-1.0
auth       required     pam_sepermit.so
auth       include      password-auth
account    required     pam_nologin.so
account  required     pam_access.so      # ここの行を追加
account    include      password-auth
password   include      password-auth

$ sudo service sshd reload

参考