YANO's digital garage

Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/

Last-modified: 2024-04-17 (水)


[一語一絵/IT系]

RSS始めました / 2005-06-23 (木)

ブログ系のコンテンツ管理ツールは使っていないのだが、HTMLから力業で[External]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 "</rdf:RDF>"; }

/<!--/,/-->/ {
  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, "<SPAN CLASS=\"SubTitle\">.*<BR>");
  str_title = substr($0, pos, RLENGTH);
  gsub(/<[^>]*>/, "", str_title);

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

  printf "\t<item rdf:about=\"%s\">\n", base_url;
  printf "\t\t<dc:date>%s</dc:date>\n", str_date;
  printf "\t\t<title>%s %s</title>\n", str_hiduke, str_title;
  printf "\t\t<link>%s</link>\n", link_url;
  printf "\t\t<description>%s</description>\n", str_desc;
  print  "\t</item>";
}
個別記事に直接ジャンプさせる事はできないが、結構イイ感じ。

makerss.cronで毎日生成しなおすように。

#!/bin/sh
#
cd ~yano
TARGET_HTML=public_html/index.html
RSS_HEAD=public_html/info/rss.head
RDF_FILE=public_html/info/rss.rdf

if [ ! -f $RDF_FILE ] || [ $TARGET_HTML -nt $RDF_FILE ];
then
 (cat $RSS_HEAD;\
  nkf -w $TARGET_HTML | awk -f ./bin/html2rss1.awk \
  ) > $RDF_FILE
  chown yano:owner $RDF_FILE
fi


[一語一絵/IT系]

rNoteも始めます / 2005-06-23 (木)

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

[External]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;
が足りなかった模様。