Archive: 2005/06/23

rNoteも始めます

となるとコンテンツ管理ツールでも動かしてみようかと色気を出してしまうのは自然な事だ。

rNoteをダウンロードしてひとまずプライベートフォルダに展開し、Webブラウザでアクセスしたところ反応が無い/var/log/httpd/error_log をチェックしたら

PHP Fatal error: Call to undefined function: mb_http_output()
というエラーが出ていた。PHPは 4.3.11 を導入していたのだが、入れただけで動作実績はまだ無い。調べてみると、Red Hat Linux 8/9のRPMではPHPのマルチバイト文字拡張機能が無効となっているらしい。がび〜ん。

というわけで、止む無くソースからbuildする事に。

$ wget http://jp.php.net/get/php-4.3.11.tar.bz2/from/this/mirror
$ bunzip2 -dc php-4.3.11.tar.bz2 | tar xlv
$ cd php-4.3.11
と展開までしたとこでconfigureのオプションを調べていると、apache拡張ライブラリの--with-apxs2が要りそうなのだが、apache拡張ツールのapxsがインストールされて無い。httpd-develに入ってるそうなので、インストールメディアからインストールして準備OK。

$ ./configure --enable-memory-limit --enable-inline-optimization --enable-mbstring --enable-zend-multibyte --with-mysql --enable-mbstr-enc-trans --enable-mbregex --with-config-file-path=/usr/local/apache/conf/php --with-apxs2=/usr/sbin/apxs
$ make
$ sudo make install
てな感じでbuildしてapacheを再起動。

すると、

httpd を起動中: Syntax error on line 838 of /etc/httpd/conf/httpd.conf:
Cannot load /usr/lib/httpd/modules/libphp4.so into server: /usr/lib/httpd/modules/libphp4.so: cannot restore segment prot after reloc: Permission denied
と出たので、取り敢えずおまじない気分で
$ sudo setenforce 0
してリトライするとapacheの起動もOKに。
allow httpd_t httpd_config_t:dir write;
allow httpd_t httpd_modules_t:file execmod;
allow httpd_t user_home_t:file write;
が足りなかった模様。

RSS始めました

ブログ系のコンテンツ管理ツールは使っていないのだが、HTMLから力業でRSS(RDF Site Summary)を生成する。

html2rss1.awkというawkスクリプトを作ってみた

#!/usr/local/bin/gawk -f
# html2rss1.awk:
BEGIN {
reg_date="[ 0-9]*月[ 0-9]*日";
y = 2005;
base_url="http://www.bravotouring.com/~yano/";
link_url=base_url;
}
END { print ""; }

// {
next
}

$0 ~ reg_date {
pos = match($0, reg_date);
str_hiduke = substr($0, pos, RLENGTH);
pos = match(str_hiduke, /[0-9]*月/);
m = substr(str_hiduke, pos, RLENGTH-2);
pos = match(str_hiduke, /[0-9]*日/);
d = substr(str_hiduke, pos, RLENGTH-2);
str_date = sprintf("%04d-%02d-%02d", y, m, d);
}

/SubTitle/ {
pos = match($0, ".*
");
str_title = substr($0, pos, RLENGTH);
gsub(/<[^>]*>/, "", str_title);

pos = match($0, "
");
str_desc = substr($0, pos+4);
gsub(/<[^>]*>/, "", str_desc);

printf "\t\n", base_url;
printf "\t\t%s\n", str_date;
printf "\t\t%s %s\n", str_hiduke, str_title;
printf "\t\t%s\n", link_url;
printf "\t\t%s\n", str_desc;
print "\t
";
}
個別記事に直接ジャンプさせる事はできないが、結構イイ感じ。