Monthly Archives: 9月 2008

LPI-Japanの「Linux標準教科書(Ver1.0)」について

0
Filed under Linux

直接的に技術に関係はないんだけども、
ちょっと記事をみかけたので、忘れないようにメモしとく。

LPI-Japan

Linuxを基礎から学習するための教材を無料で提供してくれるそうですよ!!
量がすごいらしいです。
これからLinuxを勉強しようとかいう人にはいいかもですね。
電子データみたいですし。

書籍を買う前に無料で使えるものから使ってはどうでしょう。

ダウンロードは以下からできるみたいですね。
でも個人情報の入力がいるようだ。

ダウンロードサイト

register_globalsについて

0
Filed under php
Tagged as

前々からregister_globalsはoffにすべきというのは
知っていたのですが、プログラマーになって
具体的にというか本気で困ることに気がついた。

そもそもregister_globalsがonだと、何ができるのかというと、

http://a.com/?mode=bbb

にアクセスした場合、簡単に書くと、

if ( $_GET["mode"] == “bbb” ){
    echo “test”;
}

みたいな感じでGETの値を使う訳ですが、
register_globalsがonだと

if ( $mode == “bbb” ){
    echo “test”;
}

でも同じように通ってしまうわけですね。
$_GETとか$_POSTのような特殊変数じゃなくても
値が入ってしまうわけです。

これってミスの元になるし、脆弱性にもなりえますね。
自分の意思で変更できる環境なら、やっぱり変更するべしですね。

 ## でも、事前検証は確実・十分に!

VirtualDocumentRootの続き

0
Filed under Apache

以前VirtualDocumentRootのことについて書きましたが、
そもそも何をしたかったかというと、

test.com等の特定のドメインの場合には、VirtualHostを有効に。
aaa.test.com のように普通のサブドメインの場合は、
毎回VirtualHostを設定しなくていいようにVirtualDocumentRootを。
というような入り組んだ仕組みにしたかったわけです。

一部特殊な設定をしているサブドメインなどがあるので、
全部をVirtualDocumentRootにできなかったので、探してました。

で、いろいろなサイトを参考にして、結論としては、以下のようになってます。

## デフォルトの設定

ServerName local
ServerAdmin hara@dedede.net
VirtualDocumentRoot /home/%2+/%1

## 特殊な設定をする場合

ServerName aaa.test.com
ServerAdmin hara@dedede.net
DocumentRoot /home/aaa/test.com

 ・
 ・
 ・
 ・

この場合には、VirtualHostの中のServerNameに
アクセスされているホスト名がなければ、
自動で一番最初のVirtualHostの設定をよみ、
VirtualDocumentRootが実行されるようです。

こんな感じで、VirtualHostとVirtualDocumentRootが共存できました。

いいっすね。
こういう楽ができる技術は最高です。

MySQLの型と自動補完について

0
Filed under MySQL

ちょっと前に、SQLの勉強をしていて気づいた。

MySQLで Selectする際に、Where句を利用して
INT型のカラムに対して、英数字等の文字を条件指定すると、
勝手に指定した条件を0に変換されてしまうのか、
0と入っているレコードが大量にHitした。

型は怖いですね。

## はやくもネタ切れの予感・・・

MySQLのおすすめ書籍


PHP & PearのDB.php でプレースホルダを使う。

0
Filed under php
Tagged as

書籍をちゃんと読めばよかったんだけど、
ちょっと前にはまったことをメモしておく。

phpでDBを扱うときにプレースホルダを使うわけですが、
プレースホルダを利用した時点で、エスケープ処理がされるわけなんです。

が、それを勘違いしまして、
mysql_real_escape_stringしたわけですよ。

そしたら、やっぱり↓みたいのがでましたね。

Warning: mysql_real_escape_string(): Access denied for user: ‘aaaa@localhost’ (Using password: NO) in aaa.php on line 384
Warning: mysql_real_escape_string(): A link to the server could not be established in aaa.php on line 384

まあ、エラーの内容はちょっと変ることもあるだろうけど、
僕がしくじった時はこんなんがでてました。
ようするに、2重でエスケープ処理してまったって話ですね。

ちなみにプレースホルダってのは、↓みたいなのですね。

$options = array(“test”, “hogemoge.com”, “bbb@hogemoge.com”);
$sql = “select colm from tablename where name = ? AND domain = ? AND email = ? “;
$aaa = $db->query($sql, $options);

$sqlに代入してるSQL文に『?』が3つあるわけですが、
$options配列に入っている内容も3つあります。
各々エスケープ処理されて、『?』のところに充当されるわけですね。

というわけで、phpではプレースホルダすれば、エスケープ処理いらないよというお話でした。

Macで仮想化環境使いたい

0
Filed under Mac
Tagged as

Macで仮想化環境使いたくて。。。

一般的には、BootcampとかParallelsなんですけど、
Bootcampは複数OS並行して起動できない?
Parallelsは、有償ということで、断念。

そこで無償でWindowsのVMwareみたいに利用できるVirtualBoxを
ためしてます。

インストールとかは、そこそこうまくいきました。

というところで、気がむいたら、また続きを書きます。

さっそくだけどVirtualDocumentRootについて

0
Filed under Apache
Tagged as

Apache関係に限らず、技術系で細かい事をしようと思うと、
手元に資料がないとはまります。単純に理解が足りないだけだけど・・

VirtualDocumentRootを利用して、自動でフォルダ判別したいんだけど、
ドメインでフォルダほって、その下にサブドメイン名のフォルダをほる。
これでわけたかったわけだけど、四苦八苦した。

sub.domain.comというのがあったとしたら、
DocumentRootを /home/domain.com/sub
としたかったわけです。

%0 = sub.domain.com
%1 = sub
%2 = domain
%3 = com

なわけなので、↓で試したわけです。

VirtualDocumentRoot /home/%2.%3/%1

としてみたわけですけど、apachectl configtestでエラーになりますわな。

エラー内容としては、

syntax error in format string

となるわけです。

で、焦ってしまったわけです。
焦った状態で次に試したのが、↓

VirtualDocumentRoot /home/%2.3/%1

apachectlは問題なく通るわけですが、これもエラーになりますわな。
エラーとしては、404エラーなわけです。

エラーログでは、

File does not exist: /home/m

がでます。

理由としては、%2の3文字目という事で、

%2 = domain

でいうところの 『m』という文字になるわけですね。

で、実際の処理としては、

DocumentRoot /home/m/sub

という意味わからんことになってしまってるわけです。

で、答えは、

VirtualDocumentRoot /home/%2+/%1

でした。
%2 の後に 『+』をつけることで、%2以降全てになるようだ。
httpd.confとかいじるときは、手元にApache関連の本が必要だなと実感しました。
ググッても詳しいのが見当たらなかった。

はじめようと思う。

0
Filed under その他
Tagged as

デザイン等のもろもろは後から対応するとして、

とりあえず技術系のネタをベースにしたログを残していこうと思う。

どれだけ続くことやら。

興味がある人は、たま~に見てやってください。