2007/12/27

FedoraのRPMで入れた AWStats 6.6 はケータイがロボットだってさ

こないだ作った Fedora6のwebサーバで、どれいっちょアクセス解析でもしようかと、AWStatsを入れたワケですよ。
でもね、一向にアクセスがカウントされないですよ。
でもね、「閲覧に含まれないアクセス」がガンガン増えてくですよ。
おぃおぃ、このサーバにはロボットかワームしか来てくれないのかい?ってちょっと悲しくなってアクセスログ見てみたら、そんなことねーじゃん!ちゃんと来てくれてるよケータイ君(俺のだけどorz)
ハハーン、どうやらAWStatsが勘違いしてるな?、というワケで対処してみる。

えっと、まず、ロボットの設定を見てみると、ありましたね、DoCoMoとauが。
これじゃあ、勘違いするワケですよ。なので、全部コメントアウトしちゃいやしょう。
/usr/share/awstats/lib/robots.pm
736c736
< #'docomo',
---
> ‘docomo’,
937c937
< #'up\.browser',
---
> ‘up\.browser’,
1374c1374
< #'docomo','DoCoMo‘,
---
> ‘docomo’,’DoCoMo‘,
1574c1574
< #'up\.browser','UP.Browser‘,
--- > ‘up\.browser’,’UP.Browser‘,


調子に乗った俺は、次もイッちゃうよ?
どうやら、SoftBank君を無視してるみたいなので、そのあたりをカスタマイズ
awstats/wwwroot/cgi-bin/lib/browsers.pm
43d42
< 'vodafone',
233d231
< 'vodafone','Softbank (3G/Non-3G)',
448d445
< 'vodafone','softbank',


これでめでたくカウントされるようになりましたとさ。

2007/12/18

PostgreSQLのユーザ定義関数

人が作ったDBを別のサーバに移す作業をしたワケですけど、pg_dump で出力したらユーザ定義関数の一部がエクスポートされないいんすよ?なんでだろ?わかんねーや。
#PostgreSQL 7.2.2 on i686-pc-linux-gnu, compiled by GCC 2.96

でも、なんとかしないといけないので、ダルいけど調べて対処しなきゃ。

ユーザ定義関数は システムカタログの pg_proc に格納されてるので、pg_user.usename でユーザID調べて抽出条件にする。
hoge=> SELECT usename, usesysid FROM pg_user;
usename | usesysid
----------+----------
postgres | 1
hoge | 100
(2 rows)

hoge=> SELECT proname, proowner, prosrc FROM pg_proc WHERE proowner = 100;
proname | pronargs | prosrc
---------------+----------+-----------------
foo | 2 | SELECT $1 + $2;
(1 rows)


あれ、引数と戻り値がわかんねーや。どこに格納されてんだろ?
8.0 以降だと、一緒に格納されてるみたいだけど?
まぁいいや、コマンドでしらべよう

hoge=> \df foo
List of functions
Result data type | Name | Argument data types
------------------+------+---------------------
integer | foo | integer, integer
(1 row)


あとは、CREATE FUNCTION で関数作ってやればオッケー
CREATE FUNCTION foo(integer, integer) RETURNS integer
AS 'SELECT $1 + $2;'
LANGUAGE SQL;

2007/12/16

P_BLOG_ver.1.2β3 でページ切替ができないです

P_BLOG で日本語を含むカテゴリーで検索してページ切替をすると2重にエンコードがかかってページが表示できません。
のでこんな感じで修正しました。

include/fnc_base.inc.php
//$keyword = urlencode($keyword);
$keyword = htmlspecialchars($keyword);

2007/12/15

Mailmanでヘッダを加工

Mailmanは標準でヘッダを加工する機能がない(?)みたいです。
なので、Pythonのハンドラでなんとかしてみる。

Mailman/Handlers に Headers.py として作成
def process(mlist, msg, msgdata):
msg['X-ML-Name'] = mlist.real_name

Mailman/mm_cfg.py にハンドラを追加
GLOBAL_PIPELINE.insert(1, 'Headers')

サービスを再起動
/usr/local/mailman/bin/mailmanctl

2007/12/03

PHPのエラーメッセージを表示(.htaccessで)

ちょくちょく使うくせに、全然憶えられないのでメモっときます。
年は取りたくないものです。

vi .htaccess
php_flag display_errors On
php_value error_reporting 2047

Google Analytics