IT

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」、ロケール設定なしになっています。

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) + →

【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で計測しながら実際にチューニングを行っていきたいと思います。

【eclipse】使えるショートカットキー #1

リソースを開く
Ctrl + shift + R

ファイル名を入力すると、検索結果一覧が表示され行を選択するとファイルを開きます。

クイックアウトライン
Ctrl + O

ソース内のクラス名、関数名、変数名にジャンプすることができます。

指定行へジャンプ
Ctrl + L

指定行へジャンプすることができます。

【Play】Play Framework for Java 開発環境作成

Play Framework(Java)の開発環境作成手順を残しておく!!
Play Frameworkのインストールはこちら → 【Play】CentOS7 Play Framework2.4のインストール

環境

  • JDK 1.8.0_60
  • Play Framework 2.4.3
  • Activator 1.3.6

Play Framework開発環境作成手順

1.JDKをインストール

Play framework の実行の前提条件としてJDK6以降が必要です。
インストールしたらパスを通す。設定後、プロンプトで「java -version」と「javac -version」を入力しチェックを行う。
参考サイト:http://www.javadrive.jp/install/jdk/index4.html

2.Play Frameworkをインストール

Download Play 2.4.3 “Damiya”を押下でダウンロードし、解凍したフォルダをCドライブ直下に移動。

play.PNG

移動後、フォルダの中にあるactivator.batを実行。しばらく待つ。
そのうち勝手にブラウザが立ち上がりActivatorのスタート画面が表示されます。これでインストールは完了。

3.activatorのpath設定

システム環境変数のPathに「C:\activator-1.3.6-minimal」を追加する

4.Scala IDE (Eclipseベース) のインストール

ダウンロードし、解凍したフォルダをCドライブ直下に移動。

環境作成は以上。
インポートする方法は後日投稿します。

下記サイトを参考にさせて頂きました。丁寧に解説してあり良かったです。
https://www.playframework.com/documentation/ja/2.3.x/Installing
http://mpon.hatenablog.com/entry/2014/07/22/220207

【Play】CentOS7 Play Framework2.4のインストール

サーバーにPlay Frameworkをインストールしたので手順を残しておく!!

1.Javaをインストール

[xxx@localhost ~]$ sudo yum -y install java-1.8.0-openjdk-devel.x86_64

2.Play Frameworkをインストール

[xxx@localhost ~]$ wget https://downloads.typesafe.com/typesafe-activator/1.3.6/typesafe-activator-1.3.6-minimal.zip
[xxx@localhost ~]$ unzip typesafe-activator-1.3.6-minimal.zip
[xxx@localhost ~]$ sudo mv activator-1.3.6-minimal /usr/local/lib
[xxx@localhost ~]$ sudo ln -s /usr/local/lib/activator-1.3.6-minimal/activator /usr/bin/activator

以上