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
参考
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のバージョン
参考
XMLサイトマップ、RSS/Atomを使い Googleに正しくサイト内ページと更新情報を知ってもらう
Googleや他の検索エンジンによるクロールを最適化するためにXMLサイトマップとRSS/Atomフィードの両方を利用しよう。というお話
XMLサイトマップ
- サイト内のすべてのURLを伝えるためのもの
- ファイルサイズが大きい
- 単独XMLサイトマップの場合、1日1回Googleにping
- 単独のXMLサイトマップの場合:更新は少なくとも1日1回行いGoogleにpingする(定期的に更新しているサイトの場合)。
- 複数のXMLサイトマップの場合:それぞれのサイトマップは5万URL、もしくは圧縮されていない状態で10MBまでにする。更新するとGoogleにpingする。
サイトマップインデックスを利用している場合は、複数の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