日本語フォントのインストールがメイン

Phantomjsのインストール

cd /usr/local/share/
sudo wget http://phantomjs.googlecode.com/files/phantomjs-1.7.0-linux-x86_64.tar.bz2
sudo tar xjvf phantomjs-1.7.0-linux-x86_64.tar.bz2
sudo rm -rf phantomjs-1.7.0-linux-x86_64.tar.bz2
sudo mv phantomjs-1.7.0-linux-x86_64 phantomjs
sudo ln -s /usr/local/share/phantomjs/bin/phantomjs /usr/bin/phantomjs

日本語フォントのインストール

フォント設定ツールのインストール

sudo aptitude -y install fontconfig

フォント一覧を確認

fc-list
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf: DejaVu Serif:style=Book
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book

好きなフォントをインストールします。

Takaoフォント

sudo aptitude -y install fonts-takao

IPAフォント

sudo aptitude -y install fonts-ipafont

IPAexフォント

sudo aptitude -y install otf-ipaexfont-gothic otf-ipaexfont-mincho

梅フォント

sudo aptitude -y install fonts-horai-umefont

UmePlusフォント

sudo aptitude -y install fonts-umeplus

さざなみフォント

sudo aptitude -y install ttf-sazanami-gothic ttf-sazanami-mincho

東風フォント

sudo aptitude -y install ttf-kochi-gothic ttf-kochi-mincho

VLフォント

sudo aptitude -y install ttf-vlgothic

IPAフォントを入れた場合

sudo aptitude -y install fonts-ipafont
fc-list
/usr/share/fonts/opentype/ipafont-mincho/ipam.ttf: IPAMincho,IPA明朝:style=Regular
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf: DejaVu Serif:style=Book
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book
/usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf: IPAPGothic,IPA Pゴシック:style=Regular
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold
/usr/share/fonts/opentype/ipafont-mincho/ipamp.ttf: IPAPMincho,IPA P明朝:style=Regular
/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf: IPAGothic,IPAゴシック:style=Regular
/usr/share/fonts/truetype/fonts-japanese-mincho.ttf: IPAMincho,IPA明朝:style=Regular
/usr/share/fonts/truetype/fonts-japanese-gothic.ttf: IPAGothic,IPAゴシック:style=Regular
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book

Yahoo!ジャパンのスクリーンショット

phantomjs /usr/share/phantomjs/examples/rasterize.js http://www.yahoo.co.jp/ yahoo.png

文字化けせずにスクリーンショットが撃てるはすです。

Hadoop streaming用のスクリプトファイルを配布する時など

lsyncd

lsyncdインストール

sudo aptitude -y install lsyncd

lsyncd設定ファイル

sudo vi /etc/lsyncd/lsyncd.conf.lua
----
-- Streaming configuration file for lsyncd.
--
settings = {
    statusFile = "/var/run/lsyncd.stat",
    statusInterval = 30,
}

sync { 
    default.rsync, 
    source="/home/mapred/",
    target="slaves000:/home/mapred/",
    rsyncOps={"-aruz", "--delete"}, 
    delay=10 
}
sync { 
    default.rsync, 
    source="/home/mapred/",
    target="slaves001:/home/mapred/",
    rsyncOps={"-aruz", "--delete"}, 
    delay=10 
}
sync { 
    default.rsync, 
    source="/home/mapred/",
    target="slaves002:/home/mapred/",
    rsyncOps={"-aruz", "--delete"}, 
    delay=10 
}

lsyncdデーモン起動

sudo /etc/init.d/lsyncd start

rsync

rsyncd設定ファイル

sudo vi /etc/rsyncd.conf
# GLOBAL OPTIONS

# pid file = /var/run/rsync.pid
# log file = /var/log/rsync.log

timeout = 600
hosts allow *.sheeps.me
read only = yes

max connections = 2
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

[MapReduce]
comment = PHP for Hadoop streaming
path = /home/mapred
uid = mapred
gid = mapred

rsyncdデフォルトファイル

sudo vi /etc/default/rsync
# start rsync in daemon mode from init.d script?
#  only allowed values are "true", "false", and "inetd"
#  Use "inetd" if you want to start the rsyncd from inetd,
#  all this does is prevent the init.d script from printing a message
#  about not starting rsyncd (you still need to modify inetd's config yourself).
RSYNC_ENABLE=true

rsyncデーモン起動

sudo /etc/init.d/rsync start

SSHを利用したlsyncd設定

sudo vi /etc/lsyncd/lsyncd.conf.lua
----
-- Streaming configuration file for lsyncd.
--
settings = {
    statusFile = "/var/run/lsyncd.stat",
    statusInterval = 30,
}

sync {
    default.rsyncssh,
    source="/home/mapred/",
    host="hdfs@slaves000",
    targetdir="/home/mapred/",
    rsyncOps={"-aruz", "--delete"}, 
    delay=10
}

sync {
    default.rsyncssh,
    source="/home/mapred/",
    host="hdfs@slaves001",
    targetdir="/home/mapred/",
    rsyncOps={"-aruz", "--delete"}, 
    delay=10
}

sync {
    default.default.rsyncssh,
    source="/home/mapred/",
    host="hdfs@slaves002",
    targetdir="/home/mapred/",
    rsyncOps={"-aruz", "--delete"}, 
    delay=10
}

rootのSSH設定

sudo vi /root/.ssh/config
Host slaves000
    HostName            slaves000.sheeps.me
    IdentityFile        /root/.ssh/id_rsa
    User                hdfs

Host slaves001
    HostName            slaves001.sheeps.me
    IdentityFile        /root/.ssh/id_rsa
    User                hdfs

Host slaves002
    HostName            slaves002.sheeps.me
    IdentityFile        /root/.ssh/id_rsa
    User                hdfs
sudo cp $HADOOP_HOME/.ssh/id_rsa /root/.ssh/id_rsa
sudo chmod 0600 /root/.ssh/id_rsa

Lsyncdからrsyncを実行するユーザーを変更する方法がわからないので
デフォルトのrootで実行させています。

接続先が/root/.ssh/known_hostsに登録されていないとエラーとなりました。
予め接続して登録しておく必要があるようです。

ポートの開閉

ufwの利用

ファイアーウォールを無効にする

sudo ufw disable

すべてのアクセスを拒否に設定

sudo ufw default deny

SSHを許可

sudo ufw allow ssh

HTTPを許可

sudo ufw allow http

HTTPSを許可

sudo ufw allow https

MySQLをローカルネットワークだけ許可

sudo ufw allow from 192.168.11.0/24 to any port mysql

ファイアーウォールを有効にする

sudo ufw enable

プロキシサーバを無効にする

sudo ufw deny 3128/tcp

ルールを削除する

sudo ufw delete DENY 3128/tcp

設定確認

sudo ufw status

Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
3306                       ALLOW       192.168.11.0/24

ufwヘルプ

Commands:
 enable                          enables the firewall
 disable                         disables the firewall
 default ARG                     set default policy
 logging LEVEL                   set logging to LEVEL
 allow ARGS                      add allow rule
 deny ARGS                       add deny rule
 reject ARGS                     add reject rule
 limit ARGS                      add limit rule
 delete RULE|NUM                 delete RULE
 insert NUM RULE                 insert RULE at NUM
 reset                           reset firewall
 status                          show firewall status
 status numbered                 show firewall status as numbered list of RULES
 status verbose                  show verbose firewall status
 show ARG                        show firewall report
 version                         display version information

Application profile commands:
 app list                        list application profiles
 app info PROFILE                show information on PROFILE
 app update PROFILE              update PROFILE
 app default ARG                 set default application policy

確認

現在有効な接続状況確認

netstat -antu

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN

MySQLとMongoDBの設定ファイル内でローカル接続のみを有効に設定しているため
127.0.0.1の制限がある。

番号付き一覧表示

iptables -L --line-numbers

TCPダンプで確認

sudo tcpdump -s 1600 -X -i eth0 src port 80
sudo tcpdump -s 1600 -X -i eth0 dst port 80

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

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

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などコンパイルが必要になる時いつも忘れるので

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

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領域を有効にするために設定します。