YAMAHAルータのVPN

2010年3月4日

YAMAHAルータでVPSを設定する際に、
いい感じの事例集が乗ってたので、記載。

http://netvolante.jp/solution/vpn/case1/example3.html

3つのオフィス間でつながる(1)
3つのオフィス拠点でそれぞれインターネットを利用しながら、オフィス拠点間をインターネットVPNで安全につなぐ構成です。各拠点にそれぞれRTX1100を配置し、拠点間はIPsecにより暗号化して機密性を高めたVPNトンネルで接続。さらにバックアップとしてISDN回線を利用するケースです。FTTH(光ファイバー)、ADSLなどの回線の障害や、網の障害が発生した場合、バックアップ側のISDN回線に切り替わり、拠点間の通信が維持されます。

グループウェア アイポ

2010年3月4日

会社で実験的にグループウェアを導入してみようという話になり、
どれがよいか探していました。

候補に上がったのが
・9Arrows
→Rubyで入れるのが非常にメンドウ

・dotProject
→PHP+MySQLなので導入は非常に楽だが、
プロジェクト管理に特化しているので違う。

・アイポ5
→SNSやスケジューラ、プロジェクト管理や施設予約など
沢山色んな事ができる。

上記3つですが、アイポは導入が非常に楽で
デザインも綺麗なので早速導入。

WindowsServer 2008 R2に入れてみたところ、あっさりインストールできました。
CentOS5.4に導入したところreadline-develがないと怒られたものの、
案外あっさりインストール完了。

これは楽だ!

> 無料グループウェア アイポ

XREAのPHPをCGIとして動かす方法

2010年2月26日

.htaccessに

AddHandler application/x-httpd-phpcgi .php

を追記すればいいそうです。
詳しくは下記を参照。

http://sb.xrea.com/showthread.php?t=10744

jQueryでグラフを描くライブラリ

2010年2月25日

jQueryでグラフを描くことができる、
jqplotというライブラリが非上に便利です。

・公式ページ
http://www.jqplot.com/index.php

サンプルページも充実していて非上に使い易いです。

[PHP] クエリ文字列の生成

2010年2月2日
phpで「a=1&b=2」などのクエリ文字列の生成方法について調べてみました。

string http_build_query(array $formdata [, string $numeric_prefix  [, string $arg_separator  ]] );

formdata
プロパティを含む配列もしくはオブジェクト
配列の形式は、単純な一次元構造、 もしくは配列の配列 (言い換えると、他の配列を含む配列) となります。
numeric_prefix
もし数値インデックスが基底となる配列に使用されたり numeric_prefix が指定された場合、 基底となる配列の要素に対する数値インデックスの前にこれが追加されます。
これは、後で PHP や他の CGI アプリケーションによってデータがデコードされる際、 正当な変数名になるよう考慮したものです。
arg_separator
arg_separator.output が区分のためのセパレータとして使用されます。ただし、 このパラメータが指定されていた場合は それが使用されます。

<?php
$data = array(“test”=>”aaa”,”test2″=>”bbb”,”test3″=>”ccc”);
echo http_build_query($data).”\n”;
echo http_build_query($data, ”, ‘&amp;’).”\n”;
echo http_build_query($data, ‘var_’).”\n”;
?>

とすると結果は

test=aaa&test2=bbb&test3=ccc
test=aaa&amp;test2=bbb&amp;test3=ccc
test=var_aaa&test2=var_bbb&test3=var_ccc

という風な結果が返ってきます。
php5からの機能ですが非常に便利そうです。

[Windows] FATからNTFSの変換

2010年2月1日
Windowsのファイルシステムである、FATをNTFSに変換する方法について調べてみました。
FAT32では1ファイル4Gまでですが、NTFSでは1ファイル2TBまで扱えます。
互換性などのぞいては、その他もろもろのメリットがあったります。

その変換方法ですが
コマンドプロンプト(ファイル名を指定して実行のcmdでもいけます)を使用します。

コマンドプロンプトでのコマンドですが
convert 変換したいドライブ /fs:ntfs

とコマンドを打つとデータは保持され変換されます。

ここで注意なのですが
FAT32からNTFSの変換は可能ですが NTFSからFAT32にへの変換はできなくなるので注意してください。

[PHP] file_get_contentsでのプロキシ経由方法

2010年1月31日
file_get_contentsなどのファイル操作関数でプロキシを経由してデータを取得したい場合どうすればよいのか調べてみました。

file_get_contentsでは第3引数でstream_context_create関数で生成したコンテキストリソースが渡すことが可能との事です。

<?php

$proxy = array(
“http” => array(
“proxy” => “tcp://proxy.example.com:8080″,
),
);
$proxy_context = stream_context_create($proxy);

$test = file_get_contents(“http://example.com”,false,$proxy_context);

?>

とするとプロキシ経由でアクセスできることが可能のようです。

[PHP] 時間取得

2010年1月30日

PHPで時間を扱うことが多い今日この頃
時間を取得する関数はどういうのがあるのだろうという事で調べました。

string date ( string $format [, int $timestamp ] )

第一引数でフォーマットを指定します。
第二引数でタイムスタンプを設定するのですが、デフォルトではtime()です。

date(“Y/m/d”,time());という記述で
2008/09/03
という風に整形することができます。

他にも
array getdate ([ int $timestamp ] )
という関数で現在の時間を連想配列として取得できます。
連想配列には下記のものが用意されています。

second —- 現在の秒を定義する
mimutes — 現在の分定義する
hours —– 現在の時定義する
mday —— 現在の月次の日付を定義する
wday —— 現在の曜日番号を定義する
mon ——- 現在の月を定義する
year —- 現在の年を定義する
yday —— その年の通算日を定義する
weekday — 現在の曜日の文字列を定義する
month ——- 現在の月の文字列を定義する

まだまだ色々と存在する時間関数、奥が深いです。

[MySQL] LEFT JOIN と INNER JOIN の違い

2010年1月29日
システム開発でデータベースを使っている場合頻繁に使う結合文、
その結合文であるINNER JOIN や LEFT JOINの違いというのは何だろうということで調べてみました。

SELECT (省略) FROM TEBLE_A INNER JOIN TABLE_B ON TABLE_A.id = TABLE_B.id
INNER JOINは結合する両方のテーブルにデータがある場合にデータが取得できます。

SELECT (省略) FROM TABLE_A LEFT JOIN TABLE_B ON TABLE_A.id = TABLE_B.id
LEFT JOINは左側(TABLE_A)の全データを取得し、右側(TABLE_B)のテーブルからもデータがあれば取得するという違いです。

LEFT JOIN で右側のテーブルにデータが無い場合はNULLとして結合されます。
またLEFT JOINの反対でRIGHT JOINというのもあります。

結合するテーブルにデータが無い場合でも、結合してデータを取得したい場合に便利です。

[dotProject]チケットが文字化けする

2010年1月29日

dotProjectの機能でチケットがあります。

チケットとはなんぞやと正直よくわかってなかったので、
調べてみると。

チケット管理とはいわゆるヘルプデスクのようなもので、
顧客からの質問管理(質問の受付、回答の蓄積、質問から解決までのフロートラッキングなど)
を行うためのモジュールです。

なるほど…。
バグ管理など、これでやると便利そう!
など安易な考えて導入。

チケットの登録をしようとすると、日本語が化ける

単純に文字コードの問題?だと思って修正。(MySQL前提で・・・)

■DB接続などしてるファイルパス
includes/db_connect.php

14行付近でdb_connectしてるので、
その辺で
mysql_query(‘SET NAMES utf8′);
セキュリティ上怪しいとよく言われてますが、
外部公開しない事を前提にしてるので使ってます。

ちなみに
mysql_queryより↓
$db->Execute(‘SET NAMES utf8′);
が妥当だと思うのですが、
チケットのSQL発行してる関数を覗くと、
mysql_query関数を直で使っていたのでmysql_query直で発行しております。