DOM XMLチュートリアル

2006/03/31 | XML

PHPでXMLを使える環境にはなったが、XMLのことをよく理解していないので、まだイマイチ使えない。ここに少しずつ備忘録としてメモしていくことにした。ただしPHP4の場合であり、PHP5になるとまた使い方が違うみたい。

<?php
//[1] $xmlがURLで与えられた場合
$dom=domxml_open_file($xml);
//[2] $xmlがファイルで与えられた場合
$dom=domxml_open_mem($xml);

//以下のメソッドは使い方まだわからない・・・
$root=$dom->document_element();
?>

上記[1][2]の部分で、Windows環境では[1]でローカルのファイル名を指定するとエラーになる(Linuxの場合は未確認)。

さて、とりあえず、ここからどう料理するかが問題・・・。

Windows版でDOM XML関数を利用する

基本的にサーバはLinux(RedHat系)を使用しているけれど、ローカルの開発環境(OS:WindowsXP PRO)にもapache+PHPをインストールし、どこでも開発できるようにはしてある。
XMLを使用したいと思い、ローカルな環境に設定を試みたがつまずいた。現状phpinfoを見たけれど、XML関連の表示はあるけれどDOMXML関連の表示が見当たらない。これは「きっとphp.iniのコメントアウトしてあるDLLを有効にすれば」と思い、該当部分を有効にしてapacheを再起動した。
しかし再起動時にエラーが表示され「c:¥php¥extensions¥php_domxml.dllが見つかりません」と怒られる。確かにc:¥php¥extensions¥php_domxml.dllは存在するし、同じディレクトリにあるphp_mbstring.dllは正常に読み込むことができている。
「どうして???」とウェブで調べてみて結局マニュアルに行き着いた。マニュアルによると「dllsディレクトリにあるiconv.dllをシステムディレクトリに入れるように」とある。このファイルをc:¥windowsにコピーし、apacheを再起動すると今度は問題なくapacheが起動した模様。
phpinfoを見るとDOMXMLの表示があった。一件落着。

アラートで赤ランプ点灯

2006/03/31 | NetScreen

契約先のファイヤーウォール「NetScreen25」のアラートで赤ランプが点灯したとのこと。様子を見ることになった。
もともとファイヤーウォールの面倒を見るなんて約束もしてないのでやりたくはないけれど、長い付き合いでもあるのでまぁ仕方がない。
赤ランプが点灯したときは「ハードウェアの故障」「ソフトウェアの故障」「クリティカルな攻撃」のいずれかであるが、外部から正常に接続できているので何か攻撃があったのかもしれない、と思い、まずはログを確認。とりあえず攻撃だけのようなので問題はなさそう。
ということで赤ランプのクリア。クリアはコマンドラインからログイン後、以下のコマンドを実行。

clear alarm event [Enter] //ログのクリア?
clear led alarm [Enter] //ランプの消灯

ランプも消えたのでこれでしばらくまた様子を見ることにした。

Read the rest of this entry »

ファイルダウンロードプログラムでのトラブル

PHPで、ファイルを動的に生成してダウンロードさせるプログラムを作成したときに、以下のような問題が発生した。

○「対象をファイルに保存」するのは成功する
○「開く」でダイレクトに開こうとすると「ファイルが見つかりません」といわれる

PHPのMLに投稿があってわかったが、これはブラウザのキャッシュが原因とのこと。Microsoftのサイトに解決策がある。
http://support.microsoft.com/default.aspx?scid=kb;ja;436605

iptablesの初期設定でつまずく

2006/03/27 | iptables

契約先の会社の補助でiptablesの設定をするときにつまずいたので備忘録としてメモ。
インストール時に「iptablesを使用しない」を選択した場合、当然ながらiptablesは初期状態で有効ではない。得てして後からセットアップするのはよくあることだ。
ここでつまずいた。別のサーバで使用していた設定ファイルを流用しようとコピペ(/etc/sysconfig/iptables)したがエラーで起動できない。「あれ?」と思って設定ファイルを取り除き、素の状態でiptablesを起動してみた(/etc/rc.d/init.d/iptables start)が、ステータスを見ると「stopped」となっている。「えー動かないじゃん!」。
後で調べたがこういうときは、素の状態で以下のコマンドを入力。
/sbin/iptables-save > /etc/sysconfig/iptables
これで何も書かれていないファイル「/etc/sysconfig/iptables」ができあがる(おそらくこの状態で別のファイルにも記述されているんだと思う)。この出来上がったファイルを編集すればよい(と思う)。
今までやったことなかったから知らなかった(サーバ会社にクレームつけないでよかった)。

だんだんPHPの話題から離れているように思う・・・けど大切だと思ったので。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net