apacheでVirtualHost追加時のoverlapエラー

apacheでVirtualHostの設定を追加し、configtestを実行したら以下のエラー(warn)が出ました。

# apachectl configtest
[warn] _default_ VirtualHost overlap on port 80, the first has precedence

調べてみると、NameVirtualHostの設定が必要だそう。
以下がコメントアウトされていたら、コメントアウトを外してconfigtestを実行してみてください。

NameVirtualHost *:80

以上です。

CentOS6.8にPostgreSQL9.6のインストール

ひさしぶりに更新。。

いろいろあってサーバを初期化、CentOSを6.8にしてPostgreSQLを再インストール!

最新バージョンは「9.6」。技術の進歩は早い。

過去記事を参考にしたが、CentOSのバージョン違いや理解不足もあったので再び記事にしようっと。

CentOS7にPostgreSQL9.4のインストール

 

PostgreSQLをダウンロード&インストール

1.PostgreSQLをダウンロード

[xxx@localhost ~]$ wget http://yum.postgresql.org/9.6/redhat/rhel-6-x86_64/pgdg-centos96-9.6-3.noarch.rpm

2. PostgreSQLをインストール

[xxx@localhost ~]$ sudo rpm -ivh pgdg-centos96-9.6-3.noarch.rpm
[xxx@localhost ~]$ sudo yum -y install postgresql96-server postgresql96-devel postgresql96-contrib

※パッケージの説明
postgresql96-server:サーバ本体
postgresql96-devel:開発用モジュール
postgresql96-contrib:contribモジュール

PostgreSQLの設定

3.データベースを初期化

[xxx@localhost ~]$ sudo su - postgres
$ /usr/pgsql-9.6/bin/initdb --no-locale --encoding=UTF8

4.データベースを起動

[xxx@localhost ~]$ sudo service postgresql-9.6 start

5.自動起動設定

システム起動時にPostgreSQLが自動で起動するようにします。

[xxx@localhost ~]$ sudo chkconfig postgresql-9.6 on

6.postgresユーザのパスワード設定

[xxx@localhost ~]$ sudo passwd postgres

7.環境変数設定

PostgreSQLのコマンドへのパスを設定します。

[xxx@localhost ~]$ sudo su
[root@localhost xxx] cd /var/lib/pgsql/
[root@localhost xxx] vi .bash_profile
※ファイルの末尾に追加
export PATH=$PATH:/usr/pgsql-9.6/bin

以上。
Encoding「UTF8」、ロケール設定なしになっています。

東京にある種子島関連の居酒屋

東京で種子島料理を出す居酒屋を探してみました。 by ふらっとグルメーズ

種子島(十条駅)

十条駅から徒歩2,3分のところにある種子島。種子島料理、焼酎を味わえるお店。
種子島出身のご夫婦が暖かく迎えてくれます。

季節や在庫によって食べれる料理が変わってきますが、
トビウオやゆで落花生(らっかしょう)、さつま揚げ、刺身、安納芋などなど食べられます。

種子島焼酎の定番「甘露」も飲めます。

住所 東京都北区上十条1-20-2
営業時間 ?~23:00
定休日 不定休

居酒屋島(目黒駅)

目黒駅すぐ近くにある居酒屋島。
種子島の焼酎が飲めるようです。同じビルに種子島ショップもあるようなのですが、夜に行ったので閉まっていてどんな感じかはわかりませんでした。。

住所 東京都品川区上大崎2-25-5 久米ビル B1F
営業時間 17:00~23:00
定休日 日曜、年末年始

MacでEclipseの便利なショートカット一覧

よく使うmacのEclipseの便利なショートカットをめもめも。

Open Resource

ファイル名で検索することが出来ます。

command + shift + r

Undo

1つ前の状態に戻します。

command + z

Redo

1つ先の状態に進みます。

command + shift + z

Open Declaration

関数、変数が定義されている所へジャンプすることが出来ます。

fn + F3

Backward History

1つ前の箇所に戻ることが出来ます。

command + [

または

command + option(alt) + ←

Forward History

1つ前の箇所に進むことが出来ます。

command + ]

または

command + option(alt) + →

in新潟(越後湯沢) part1

東京ー新潟へ電車で2泊3日のふらっと旅。

スケジュール

スケジュールはこんな感じ(時間はだいたい)
『ふらっとプランナーズ』にIT合宿込みのスケジューリングしてもらいました!

——————————————————–
【2015/11/21】
——————————————————–
10:00 東京出発
11:20 大宮駅から新幹線
13:00 燕三条駅
13:40 弥彦駅着
14:00 彌彦神社参拝&弥彦観光
16:00 弥彦駅出発
17:40 越後湯沢駅
17:50 ぽんしゅ館
18:30 湯沢ホテル着
20:00 夕飯(焼肉)
21:30 スナック
——————————————————–
【2015/11/22】
——————————————————–
10:00 起床
11:00 散歩
14:00 昼飯(海鮮丼)
15:00 ホテルでゆっくり
20:00 夕飯(居酒屋)
22:00 スナック
——————————————————–
【2015/11/23】
——————————————————–
09:00 起床
10:30 山の湯
11:30 街ぶらぶら
13:00 がっつり昼飯(へぎそば、おにぎり)
14:00 越後湯沢駅で勉強
17:30 越後湯沢駅出発
19:30 赤羽駅で旅のレトロスペクティブ
22:00 解散

今回も中身の濃い旅でしたわー!
更新遅くなったんで、記憶あやふやな箇所もあるんですが、書きながら思い出し笑いしております!!

いざ出発

燕三条駅
etigoyuzawa-tsubamesanjou-station.jpg

続く・・・

【PHP】マルチバイト文字をバイト数で切り出し文字化け対応

phpでマルチバイト文字列をバイト数で切り出す場合は、mb_strcut()を使用する。
substr()だと文字化けすることがある。
「あ」が3byteだとすると、1byte目や2byte目までで切り出した場合に文字化けする。

文字化けするパターン

例)文字コードutf8の場合

$a = 'aaあああ';
var_dump(mb_strcut($a, 0, 3)); //出力内容:aa
var_dump(mb_strcut($a, 0, 4)); //出力内容:aa
var_dump(mb_strcut($a, 0, 5)); //出力内容:aaあ

$a = 'aaあああ';
var_dump(substr($a, 0, 3)); //出力内容:aa�
var_dump(substr($a, 0, 4)); //出力内容:aa��
var_dump(substr($a, 0, 5)); //出力内容:aaあ

mb_strcutについて

(PHP 4 >= 4.0.6, PHP 5)
mb_strcut — 文字列の一部を得る

string mb_strcut ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )

パラメータ
str
取り出しの対象となる文字列。
start
start が非負である場合に返される文字列は、 string の start バイト目以降の文字列となります (ゼロから数えます)。 たとえば、文字列 ‘abcdef’ の 0 バイト目は ‘a’ で、 2 バイト目は ‘c’ のようになります。

start が負の数の場合に返される文字列は、 string の後ろから数えて start バイト目以降となります。

length
バイト単位での長さ。 省略したり NULL を指定したりした場合は、 文字列の最後までの全バイトを取り出します。
encoding
encoding パラメータには文字エンコーディングを指定します。省略した場合は、 内部文字エンコーディングを使用します。
返り値
mb_strcut() は、 start および length パラメータで指定した str の一部を返します。

postgresql.confの場所とアクセス(編集)方法

postgresql.confの場所とアクセス(編集)方法について
postgreSQLのバージョンが9.4でサーバーはlinuxです。

postgresql.confの場所

デフォルトで
/var/lib/pgsql/9.4/data
配下にあります。

postgresql.confへアクセス(編集)

pgsqlフォルダ配下にアクセスするにはpostgresユーザでログインします。
その後、viコマンドで編集。

$ su - postgres
$ vi /var/lib/pgsql/9.4/data/postgresql.conf

設定変更後に反映するにはリロードもしくは再起動が必要です。
postgresql.confに「change requires restart」と記述されている設定は再起動が必要です。

リロード、再起動コマンド

$ sudo systemctl reload postgresql-9.4
$ sudo systemctl restart postgresql-9.4

pgbench使用方法

pgbenchとは

postgresqlのベンチマークツールで、postgresqlのパフォーマンスを計測できます。
postgresqlをチューニングする際に、とても役に立ちます。

使用方法

以下、コマンドラインで作業

1.postgresqlをインストール

こではバージョン9.4をインストールしました。
インストール情報はこちら
※postgresql9.4ではpgbenchが既にインストールされている状態ですので、個別でインストールする必要はありません。

2.postgresqlのスーパユーザアカウントでログイン

$ su - postgres

3.sqlを使用できるツールpsqlを起動

$ psql -U postgres

4.テスト用のデータベースを作成

ここでは「test」という名称のDBを作成しました。CREATE DATABASEと表示されればOKです。

postgres=# create database test;
CREATE DATABASE

5.psqlを¥qで終了する

$ ¥q

6.以下コマンドを実行し、ベンチマークデータを初期化する

$ pgbench -i test

実行履歴

NOTICE:  table "pgbench_history" does not exist, skipping
NOTICE:  table "pgbench_tellers" does not exist, skipping
NOTICE:  table "pgbench_accounts" does not exist, skipping
NOTICE:  table "pgbench_branches" does not exist, skipping
creating tables...
100000 of 100000 tuples (100%) done (elapsed 0.64 s, remaining 0.00 s).
vacuum...
set primary keys...
done.

んっ、失敗・・・?
もう一回同じコマンドを実行

実行履歴

creating tables...
100000 of 100000 tuples (100%) done (elapsed 0.70 s, remaining 0.00 s).
vacuum...
set primary keys...
done.

成功したぽい
ひとまず次へ進んでみよう・・・

7.以下コマンドでベンチマーク実行

pgbench -c 2 -t 100 test

実行結果

starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
query mode: simple
number of clients: 2
number of threads: 1
number of transactions per client: 100
number of transactions actually processed: 200/200
latency average: 0.000 ms
tps = 187.624829 (including connections establishing)
tps = 199.760088 (excluding connections establishing)

実行できました。
初期化を2回実行しましたが、1回目の初期化で成功してたみたいでした。

コマンドの説明
「-c 2」:同時に2本の接続
「-t 100」:各接続で100本のトランザクションを実行
「test」:データベースの指定

実行結果
「number of transactions actually processed: 200/200」:2本の接続×100本のトランザクション=200回中、200回正常に実行できたことを示しています。
「tps = 187.624829 (including connections establishing)」:1秒間に実行できたトランザクション数(PostgreSQLへの接続含む)
「tps = 199.760088 (excluding connections establishing)」:1秒間に実行できたトランザクション数(PostgreSQLへの接続含まない)
※tpsは数値が高いほど性能が良いです。

pgbenchがデフォルトで実行する1トランザクションのSQLは以下です。

a.pgbench_accountsを1件更新
b.pgbench_accountsから1件検索
c.pgbench_tellersを1件更新
d.pgbench_branchesを1件更新
e.pgbench_historyに1件行を追加

以下オプションを付けることでデフォルトの実行SQLを制御できます。
「-N」
cとdを除いたSQLを実行します。
pgbench -c 2 -t 100 -N test

「-S」
更新処理を除いたSQLを実行します。
pgbench -c 2 -t 100 -S test

次回は、pgbenchで計測しながら実際にチューニングを行っていきたいと思います。

【種子島】ふらっと2泊3日プラン in 観光・飯・飲み

『ふらっとプランナーズ』プランニングの東京ー種子島ふらっと2泊3日旅。
+α 前夜祭がありつつのw

スケジュール

2016/10/13
22:00 新橋で前夜祭(飲み)
2016/10/14
01:20 東京駅から深夜バスで成田空港へ
02:25 成田空港 第3ターミナル着
成田空港 第3ターミナルのフードコートでグータラ
07:20 成田空港発
09:15 鹿児島空港着
鹿児島市をふらっと
13:00 天文館付近で昼飯
15:30 電車でフェリー乗り場付近まで移動
16:30 タクシーでフェリー乗り場まで移動
17:00 フェリー乗り場着
18:00 フェリー乗り場発
21:40 種子島着
22:00 珊瑚礁(宿)に到着
22:10 五右衛門風呂を堪能
23:00 ふじ十でラーメン
23:40 スナック センチュリー
2016/10/15
02:00 Bar センチュリー3
03:00 珊瑚礁(宿)へ帰還
就寝
08:30 珊瑚礁(宿)で朝食
11:00 レンタカー借りる
11:30 お土産屋偵察
12:30 鉄砲館
14:30 門倉岬
15:30 種子島宇宙センター
17:30 マングローブ地帯
18:00 サンシード(スーパー)
19:00 珊瑚礁(宿)で夕食
20:30 珊瑚礁(宿)で岩風呂堪能
22:30 pure
2016/10/16
00:30 ラグジュ
01:30 スナック センチュリー
03:00 珊瑚礁(宿)へ帰還
就寝
08:30 珊瑚礁(宿)で朝食
10:30 レンタカー返却
お土産購入
15:00 種子島発(Toppy)
16:55 鹿児島着(Toppy乗り場)
鹿児島中央駅へ移動
17:30 バスで鹿児島空港へ
20:10 鹿児島空港発
22:00 成田空港着&解散

前夜祭

続きを読む