@blog.justoneplanet.info

日々勉強

CentOSにAntをインストールする

以下のコマンドでインストールする。

wget http://ftp.riken.jp/net/apache/ant/binaries/apache-ant-1.8.1-bin.tar.gz
tar zxvf apache-ant-1.8.1-bin.tar.gz
ln -s /usr/lib/apache-ant-1.7.0/bin/ant /etc/alternatives/ant
ln -s /usr/lib/apache-ant-1.7.0/ /etc/alternatives/anthome
ln -s /etc/alternatives/ant /usr/bin/ant

パスを通す。

vi /etc/profile

以下のように最終行に追記する。

export ANT_HOME=/etc/alternatives/anthome

編集が終わったら以下のコマンドを実行して反映させる。

source /etc/profile

CentOSにnginxをインストールする

nginxをインストールする。

■インストール

以下のコマンドでインストールをおこなう。

yum --enablerepo=epel install nginx

epelについて

Fedoraと同等環境を実現するRHEL用レポジトリであるが、初期状態では使えないため以下のコマンドでリポジトリを追加する。

wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
rpm -Uvh epel-release-5*.rpm

■設定

以下のコマンドで設定ファイルを編集する。

vi /etc/nginx/nginx.conf

80番ポートをドキュメントルートを「/var/www/vhosts/domain/httpdocs」とする場合、以下のように記述する。

listen       80;
root   /var/www/vhosts/domain/httpdocs;

HTTP PUTメソッドを許可する

location / {
    root         /var/www/vhosts/domain/httpdocs;
    index        index.html index.htm;
    dav_methods  PUT;
    create_full_put_path   on;
    dav_access   group:rw  all:r;
}

IPアドレスで制限する

location / {
    allow        192.168.1.0/32;
    deny         all;
}

以下のコマンドで起動する。

/etc/init.d/nginx start

常に起動しておく場合、以下のコマンドを実行する。

chkconfig nginx on
chkconfig nginx --list

設定ファイルを変更した場合は以下のコマンドでreloadする。

/etc/init.d/nginx reload

Googleの入社テストを考えてみる

Google の入社テストに使われた?質問

同じ大きさのボールが8つある。そのうち7つは同じ重さで残り1つはほかより少し重い。この中から重いボールをどう探す?使っていいのははかりのみ。ただし、2回しか使ってはいけない

■解答

1回目

3個ずつのせる。

  1. 釣り合う
  2. 釣り合わない

1の場合

最初に秤にのせなかった2つのうちのどちらかに重いボールが含まれるのでその2つで比較する

2の場合

重かった方から2個を選び1つずつ秤にのせる

まぁ、コンナ感じだお( ^ω^)再帰が見えるよね!…簡単なんだけど本当に使われた問題なのだろうか…

memcachedをインストールする

あまり興味がないが仕事で使うので試してみた。♪(´ε` )

■インストール

以下のコマンドを実行してmemcachedをインストールする。

yum install memcached
/etc/init.d/memcached start
chkconfig memcached on

設定ファイルは以下のコマンドで編集できる。編集が必要な場合は書き換えると良い。

vi /etc/sysconfig/memcached

PHPから使いたいので以下のようにpeclコマンドでインストールする。

pecl clear-cache
pecl install memcache
cp /etc/php.d/curl.ini /etc/php.d/memcache.ini
vi /etc/php.d/memcache.ini

以下のようにファイルを記述する。

; Enable memcache extension module
extension=memcache.so

ファイルを上書き保存したらhttpをreloadする。

/etc/init.d/httpd reload

■ベンチマーク

以下のコードを使用し簡単にベンチマークしてみた。

$memcache = new Memcache();
$memcache->connect('localhost', 11211);
$start = microtime(true);
for($i = 0; $i < 1000; $i++){
    $memcache->set("k{$i}", "abcdefghijklmnopqrstuvwxyz");
}
$end = microtime(true);
print($end - $start);// 0.07976508140564

さすがメモリにしかデータがないだけあって爆速だ。