コンパイルからのインストール

必要モジュールなどをインストール

sudo aptitude install gcc g++ make cmake
sudo aptitude install bison libncurses5-dev libncursesw5-dev

MySQLユーザー/グループの追加

sudo groupadd mysql
sudo useradd -r -g mysql mysql

ソースのダウンロード

sudo wget http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz
sudo tar xzvf mysql-5.5.28.tar.gz
cd mysql-5.5.28

CMAKEを利用したコンパイル

sudo cmake . \
 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DENABLED_LOCAL_INFILE=true \
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 -DWITH_EXTRA_CHARSETS=all \
 -DWITH_READLINE=ON

sudo make
sudo make install

ディレクトリの作成と権限変更

sudo chown -R mysql:mysql /usr/local/mysql/

sudo mkdir /var/log/mysql/
sudo touch /var/log/mysql/error.log
sudo touch /var/log/mysql/query.log
sudo touch /var/log/mysql/slow.log
sudo chown -R mysql:mysql /var/log/mysql/

MySQLの設定

sudo vi /etc/my.cnf
[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock
[mysqld]
port                = 3306
socket              = /var/run/mysqld/mysqld.sock
basedir             = /usr/local/mysql
datadir             = /var/lib/mysql
tmpdir              = /tmp
log_error           = /var/log/mysql/error.log
slow-query-log      = ON
slow-query-log-file = /var/log/mysql/slow.log
skip-external-locking
key_buffer_size     = 256M
max_allowed_packet  = 1M
table_open_cache    = 256
sort_buffer_size    = 1M
read_buffer_size    = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
thread_concurrency = 8

log-bin=mysql-bin
binlog_format=mixed
server-id       = 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
basedir=/usr/local/mysql

データベースの初期化

sudo mkdir /var/lib/mysql
sudo chown mysql:mysql /var/lib/mysql

cd /usr/local/mysql
sudo ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql

全権限ユーザーの作成

mysql> CREATE USER 'sheeps'@'%' IDENTIFIED BY  '***';
mysql> GRANT ALL PRIVILEGES ON * . * TO  'sheeps'@'%' IDENTIFIED BY  '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

ユーザーと同一のDBに全権限を与える

mysql> CREATE USER 'wordpress'@'localhost' IDENTIFIED BY  '***';
mysql> GRANT USAGE ON * . * TO  'wordpress'@'localhost' IDENTIFIED BY  '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
mysql> CREATE DATABASE IF NOT EXISTS  `wordpress` ;
mysql> GRANT ALL PRIVILEGES ON  `wordpress` . * TO  'wordpress'@'localhost';

SpiderやMroongaなどコンパイルが必要になる時いつも忘れるので

nginxとphp5の設定など

nginxのインストール

sudo aptitude install -y nginx

PHPインストール

sudo aptitude -y install php5 php5-common php5-curl php5-dev php5-fpm
sudo aptitude -y install php5-gd php5-imagick php5-intl php5-json php5-mcrypt
sudo aptitude -y install php5-memcache php5-mongo php5-mysql php5-xdebug

nginxのサイト設定

sudo vi /etc/nginx/sites-available/sheeps.me
server {
    server_name *.sheeps.me;

    root /var/www/$host/www;
    index index.html index.php;

    location / {
        try_files $uri $uri/ /index.php;
    }

    # API
    location /api/ {
        try_files $uri /api.php?$args;
    }

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass    unix:/var/run/php5-fpm.sock;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME /var/www/$host/www$fastcgi_script_name;
    }

    # serve static files directly
    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|bmp|swf|wmv)$ {
        root /var/www/$host/www;
        access_log off;
        expires 30d;
    }

    location ~ /\.ht {
        deny  all;
    }
}

DNS Aレコードの設定

a   *.sheeps.me     163.43.161.128

php-fpmの設定

sudo vi /etc/php5/fpm/pool.d/www.conf
[www]
listen = /var/run/php5-fpm.sock
user = www-data
group = www-data
pm = dynamic
pm.max_children = 10
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6
request_slowlog_timeout = 1s
slowlog = /var/log/php5/$pool.log.slow
chdir = /

5.4.6-1ubuntu1.1ではaptでインストールした場合にデフォルトで
unixドメインで動作するように設定されるようです。

ファイルオープン上限の確認

ulimit -n

1024

アクセス数の多いサイトなどでは、/etc/security/limits.confなどで設定

XHProfのインストール

git clone https://github.com/facebook/xhprof.git
cd ./xhprof/extension/
phpize
./configure
make
sudo make install
sudo vi /etc/php5/mods-available/xhprof.ini


; configuration for php XHProf module
; priority=20
extension=xhprof.so

Ketamaのインストール

git clone https://github.com/RJ/ketama.git
cd ./ketama/libketama/
make
sudo make install

cd ../php_ketama/
phpize
./configure
make
sudo make install
sudo vi /etc/php5/mods-available/ketama.ini


; configuration for php Ketama module
; priority=20
extension=ketama.so

Ubuntu-serverに最初に入れたソフト

コンパイルとかで使うもの

sudo aptitude install -y gcc g++ make cmake curl pkg-config zlibc git ssh
sudo aptitude install -y bison libncurses5-dev libncursesw5-dev sysv-rc-conf

パッケージのインストール先

dpkg -L [パッケージ名]
dpkg -L mongo

ユーザー追加

sudo useradd -d /home/adminuser -m -s /bin/bash adminuser
sudo locale-gen ja_JP.UTF-8
sudo dpkg-reconfigure locales
Generating locales...
  en_US.UTF-8... done
  ja_JP.UTF-8... up-to-date
Generation complete.

言語追加

sudo aptitude -y install locales

sudo設定

visudo
adminuser  ALL=(ALL:ALL) NOPASSWD:ALL

sun-javaのインストール

Ubuntuにsun-javaをインストールするためにflexion.orgのスクリプトを実行します。

flexion.org

wget https://raw.github.com/flexiondotorg/oab-java6/master/oab-java.sh -O oab-java.sh
chmod +x oab-java.sh
sudo ./oab-java.sh

インストール

sudo aptitude -y install sun-java6-jdk ant

環境変数設定

export JAVA_HOME=/usr/lib/jvm/java-6-sun

aptでhadoopをインストールする準備

HadoopをaptからインストールするためにClouderaのリポジトリを追加します。

Clouderaのリスト作成

sudo vi /etc/apt/sources.list.d/cloudera.list

—- cloudera.list —-

deb http://archive.cloudera.com/debian lucid-cdh3 contrib

公開鍵の登録

curl -s http://archive.cloudera.com/debian/archive.key | sudo apt-key add -

パッケージ情報の更新

sudo aptitude update

Swap領域の確保

1GBを確保

sudo mkdir /var/swap
sudo dd if=/dev/zero of=/var/swap/swapfile bs=1024 count=1024000
sudo mkswap /var/swap/swapfile
sudo swapon /var/swap/swapfile

free

             total       used       free     shared    buffers     cached
Mem:        604376     536116      68260          0      31992     411644
-/+ buffers/cache:      92480     511896
Swap:      1023996         84    1023912

fstabへ登録

sudo vi /etc/fstab

/var/swap/swapfile      swap     swap   defaults        0 0

再起動時にSwap領域を有効にするために設定します。