simplexml_load_file の落とし穴
なんかでかいxmlをwepごしに指定するとエラーが出るっぽい。
友達のを肩越しに見てただけだからあんまり良く見れなかったけど。
で、そういう時はfile_get_contentsを使ってコンテンツを取得してからsimplexml_load_string でパースするといいっぽい。
ただそれだけ。以上。
Windows Vista
Usermin with LDAP
Cent OS 5でLDAP認証環境でUseminでパスワードの変更をさせる方法。
参考:Windowsネットワーク用統合認証サーバー構築(OpenLDAP+Samba) - Fedoraで自宅サーバー構築の下のほう
参考:kmwebnet: CentOS4でLDAP + Usermin
参考:第2回 LDAPによるパスワードの一元管理の3ページ目
ポイントは
かな?
まず、Authen::PAMのインストール。cpanでインストールするときにpam-devilパッケージが必要。
これだけ書いておけばいいでしょ。備忘録的に。
つぎ、LDAPユーザーの使用を許す。
まず/etc/pam.d/userminの中身を以下のように書き換える。全部。追加じゃないよ。
#%PAM-1.0
auth required pam_stack.so service=system-auth
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
そんつぎ。/etc/usermin/changepass/configの中のpasswd_cmd=fileをpasswd_cmdに(fileを削除)
これでuserminにログインできるはず。
そんで仕上げ。/usr/libexec/usermin/changepass/changepass.cgiを書き換える。
if ($msg =~ /old|current|login/i) { → if ($msg =~ /login/ ) {
これでパスワードの変更ができるようになる。
ML115 で Wake on Lan
ml115でwake on lanを使う方法。
参考:はかつまぶろぐ - MA20V/B + CentOS + Wake on LANな話
参考:独学Linux:遠隔操作でLAN内PCの電源を入れる方法 - livedoor Blog(ブログ)
参考:Wakeonlan
起こされるホスト:ML115 with debian/etch
起こしてくれるホスト:Fedora Core 3
まず、ML115のMACアドレスを取得。00:...っていうやつ。ifconfigってやると出てくる。HWaddr 00:XX:XX:XX:XX:XXってやつね。そいつをメモしておく。
次に実際にマジックパケットで起きれるように設定。
# apt-get install ethtool
とやって必要なパッケージをインストール。つぎに/etc/rc.localのexitの上に次の1行を追加。
/usr/sbin/ethtool -s eth0 wol g
これでML115のほうの設定は終わり。
今度は起こすほうの設定。
Fedoraのほうで
# rpm -ivh http://gsd.di.uminho.pt/jpo/software/wakeonlan/downloads/wakeonlan-0.41-0.fdr.1.noarch.rpm
で起こすツールを導入。完了。
起こし方:
# wakeonlan 00:XX:XX:XX:XX:XX
これでおきてくるはず。
debian/etch で raidを構成
VMware on Debian
参考:[Debian] VMware Server 1.0.4インストール
まずdebianをインストール。 自分はほぼ最小構成でインストールしてみた。
で、とりあえず、/etc/apt/sources.listの中でCDを指定してるところをコメントアウト。
そしてとりあえず、
# apt-get update
# apt-get install ssh
でsshをセットアップ。これないと不便だから。
つぎ、vmware-serverをダウンロード。 tar.gz版をダウンロードしてくる。ついでにライセンスキーも取得。これはメールアドレスとか登録しないとだめだね。無料だからいいけど。
で、インストール方法。
まず必要なパッケージをインストール。
# apt-get install gcc make linux-headers-`uname -r` psmisc libX11-6 libxext6 libxtst6 libxt6 libice6 libxrender1
いよいよvmwareのインストール。
/usr/local/srcに入って、まず解凍。
で、インストール
# ./vmware-install.pl
いろんな質問が出てくるけど大体Enterでいいはず。あと途中でconsoleに接続するためのポート番号が表示されるはず。たぶん902。途中でネットワークについて聞かれるっぽい。使い方に合わせて答えればいいでしょう。まぁそのままEnterでいいか。
で最後にシリアルナンバー聞かれるから答える。
これで完了。あとはリブートしちゃいましょ。どうせまだ何も動いてないからいいよね?
それかinetdをリロードすればクライアントからvmware-server consoleでアクセスできるようになってるはず。
windowsマシンにでもvmware-server consoleをインストールすれば接続できるはず。
パスワードとユーザー名を聞かれたらhostのユーザー名とパスワードでOK。
完成。
ウェブリブログのrss
ってさ、descriptionところ最初の1行しか出さないよね?
普通はそれでいんだけど、GREEとかで外部blogに指定すると最初の1行しか読めなくなるわけさ。パソコンからだったら「外部ブログへ移動」なんて感じのリンクがあるけど、携帯にはない。。。
ってことで、descriptionの中にウェブリブログに書いた本文を丸ごと入れてやるrssプロクシを作ってみた。
こんな感じ↓ めっちゃ簡単だね。昔phpでdomを使ったときはこんな簡単にはいかなかったし。あと、携帯だとaタグは無効にされちゃうみたいだね。そこら辺はどうしようか。。。。
現時点での問題はもう1つ。本文の中で table 使ってると致命的ってこと。ただ /td を探してるからね。これはあとで直さないと。tdではじめる部分を数えて、そのぶん /td を読み飛ばせばいいのかな?
ってかhtmlを簡単な方法でパースするほうほうってないのかな?JavaScriptのgetElementById見たいなのがあればめっちゃ楽チンなんだけど。
誰か教えて!
$rss = "http://gorakuru.at.webry.info/rss/index.rdf";
$extender = new rssExtender();
echo $extender->extend($rss);
class rssExtender{
function extend($rss){
return $this->convert($rss);
}
function getBodybyUrl($url){
$start = '<td id="blog-body">';
$stop = '</td>';
$charSet = 'Shift_JIS';
$content = mb_convert_encoding(file_get_contents($url), 'UTF-8', $charSet);
$content = mb_substr($content,
mb_strpos($content, $start, 0, 'UTF-8') + mb_strlen($start, 'UTF-8'),
mb_strlen($content, 'UTF-8'), 'UTF-8');
$content = mb_substr($content,
0,
mb_strpos($content, $stop, 0, 'UTF-8'),
'UTF-8');
$content = trim($content);
return $content;
}
function convert($rss){
$article = simplexml_load_file($rss);
foreach($article->item as $item){
$url = $item->link;
$description = '<a href="'.$url.'">オリジナル→'.$url.'</a><br /><br />';
$description .= $this->getBodybyUrl($url);
$item->description = $description;
}
return $article->asXML();
}
}
?>