ゆにてぃぼっとしすてむ について

日曜日, 5月 6, 2012 12:30
Posted in category Linux,freebsd

twitter 上で動作している 汎用型twitterボット「ゆにてぃぼっとしすてむ」 ですが、現在テスト中であり公開していません。公開する気も余り無い(というかプログラムが物凄く稚拙で見せたくない)です。すみません。中身的には、EasyBotter を参考に、使い勝手の悪い所、特にPHPが判らなくてもテキストで記載すれば読み込むように設計しています。( {name} なんかの命令も一部互換 )

最終的には個別で書いてる xml取得(RSS取得)をプラグイン化してAPIにして、WEBから全ての設定ができるように…と思ったりもしています。ちなみに、なりきりキャラボットに向いているように造られているらしいです。

もし使ってみたいなーとか思ったら、ノンサポートで良ければ一式送ります。その際には
・サポートを期待しない
・中身を見てトライアンドエラーで頑張ってください
・自分はプログラマじゃないので「動けばいい」で作ってます
 プログラムが稚拙?汚い?知らんなぁ

[FYI] qemu 1.4.1 が CentOS 5系でインストールできない

火曜日, 5月 14, 2013 17:50
Posted in category Linux,freebsd

qemu のツールを利用したくて、手持ちの CentOS 5.8 でコンパイルしようとしたところ、以下のようなエラーが出てしまった。

lt LINK libcacard.la /usr/bin/ld: libcacard/.libs/vcard.o: relocation R_X86_64_PC32 against `vcard_delete_applet' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value collect2: ld returned 1 exit status

さて困ったぞ。 vcard.o のコンパイルでエラーが出てしまう。今回はツールを使いたいだけだったので、こんなコンパイルオプションで逃げた。

./configure --target-list=i386-softmmu --disable-smartcard-nss

target-list は無くても通るかも。

これで無事にコンパイル完了。

ESXi 5.1 でストレージが追加できない

土曜日, 3月 16, 2013 2:21
Posted in category Linux,freebsd

ESXi 5.1 にて。
vSphere Client からストレージの追加をしようとすると、「入力文字形式が正しくありません」と言われて追加できない事があります。
その際には、vSphere Client のアイコンのプロパティを開いて、リンク先の末尾に

-locale en_US

とつけて保存し、起動すれば行けます。USモードじゃないと追加できないようですね。

AWS SDK for PHP の PEARインストール

月曜日, 11月 5, 2012 18:24
Posted in category Linux,freebsd

必要そうなchannelが多かったんでメモ程度に。

pear channel-discover pear.amazonwebservices.com
pear channel-discover pear.symfony.com
pear channel-discover guzzlephp.org/pear
pear install guzzle/guzzle
pear install aws/sdk

2012.11.06 追記
Using the SDK で必要な分

pear config-set auto_discover 1
pear install pear.phpunit.de/PHPUnit
curl -s http://getcomposer.org/installer | php
vi composer.json
php composer.phar install

PHPでリージョン指定する際の引数(東京の引数なんて想像できないよ)
Aws/Common/Enum/Region.php

VIRGINIA: US_EAST_1
CALIFORNIA: US_WEST_1
OREGON: US_WEST_2
IRELAND: EU_WEST_1
SINGAPORE: AP_SOUTHEAST_1
TOKYO: AP_NORTHEAST_1
SAO_PAULO: SA_EAST_1
GOV_CLOUD_US: US_GOV_WEST_1

mod_pagespeed 正式版を導入してみる

金曜日, 10月 12, 2012 20:20
Posted in category Linux,freebsd

とりあえず、CentOS 5.8 と CentOS 6.3 で確認。
但し、CentOS5系についてはかなり難儀です。

まず、CentOS 5.8 では gclientが動作しません。
これは、gclient が Python 2.5 以上で動作するからみたいです。

よって、python 2.6 をインストールする必要があります。
ここは割愛。epel あたりから yum で引っ張るといいです。
git も gperf も必要なので、epel で引っ張ってきます。

インストールしただけでは gclient は動作しません。
/usr/bin/python を /usr/bin/python26 のシンボリックリンクにしないといけないようです。(ファイル名が python 決め打ち?)

* CentOS 5系のみ

mv /usr/bin/python /usr/bin/python_ ; ln -s /usr/bin/python26 /usr/bin/python

そうしたらインストールコマンドを叩いていきます。
全て root でやってください。

mkdir -p ~/mod_pagespeed
cd ~/mod_pagespeed
svn co http://src.chromium.org/svn/trunk/tools/depot_tools
export PATH=$PATH:/root/mod_pagespeed/depot_tools/

depot_tools にパスを通すのがポイント。
export なのは、Shellがbashの為。

そうしたらソースの取得。

gclient config http://modpagespeed.googlecode.com/svn/branches/latest-beta/src
gclient sync --force --jobs=1
cd src
make BUILDTYPE=Release mod_pagespeed_test pagespeed_automatic_test
make BUILDTYPE=Release mod_pagespeed_test pagespeed_automatic_test
./out/Release/mod_pagespeed_test
./out/Release/pagespeed_automatic_test

上記でテストまで完了。
FAILが出ても(内容的に問題が無さそうなら)無視します。

make BUILDTYPE=Release
cd install
chmod 755 ./install_apxs.sh

権限を与えておく。
apacheをrpmで導入しているなら、apxsのパスを指定せず install_apxs.sh を叩いてください。
自分はソースコンパイルで導入したので、環境変数を指定します。

/bin/sh
APXS_BIN=/usr/local/apache/bin/apxs ./install_apxs.sh
Using /usr/local/apache/bin/apxs to determine installation location.

mod_pagespeed needs to cache optimized resources on the file system.
The default location for this cache is '/var/mod_pagespeed'.
Would you like to specify a different location? (y/N)

Preparing to install to the following locations:
/usr/local/apache/modules/mod_pagespeed.so (root:root)
/usr/local/apache/conf/pagespeed.conf (root:root)
/var/mod_pagespeed/cache (apache:apache)
/var/mod_pagespeed/files (apache:apache)

Continue? (y/N) y
Adding a load line for mod_pagespeed to /usr/local/apache/conf/httpd.conf.

Installation succeeded.
Restart apache to enable mod_pagespeed.

これでセットアップ完了。
動作には mod_version と mod_pagespeed 、 mod_deflate が必要です。
apache の conf 以下に pagespeed.conf ができているので、これを httpd.conf で include すれば完了です。
(おそらく最後の行に追加されているはず)

後は apache のリスタートで完了です。
早速このサイトに適応してみました。

メールフォームプロCGI 3.2.0 SSL利用時について

金曜日, 10月 5, 2012 7:33
Posted in category Linux,freebsd, 日記

たまたま mailform pro を使わせて頂く機会がありました。

https + BASIC認証 + 強制httpsリダイレクト という特殊な環境下で見つけたバグ?というか仕様です。
最初にBASIC認証をし内容登録してthanksページを表示しようとすると、BASIC認証が再表示します。

おや?と思ってプロトコルログを取ってみると、thanksページ表示時に http を経由しているようです。
firefoxやchromeだと問題無いのですが、IEではそのBASIC認証を厳密にチェックしているようで
一度 http に落ちた時にBASIC認証を求められるようでした。

ソースを見てみると、functions.cgi でこんな表記がありました。

if(index($ENV{'SERVER_PROTOCOL'},'HTTPS') > -1){
	$refreshurl = 'https://' . $ENV{'SERVER_NAME'} . $uri . $refreshurl;
}
else {
	$refreshurl = 'http://' . $ENV{'SERVER_NAME'} . $uri . $refreshurl;
}

多分、ここ間違ってると思います。
$ENV{‘SERVER_PROTOCOL’} で取れるものは、HTTP/1.1とかHTTP/1.0で HTTPS という文字列は取れないと思います。
取るなら、$ENV{‘SERVER_PORT’} で 443 を取るべきなんでしょうが、SSLも443だけとは限りません。
HTTP_REFERER で https という文字列を取ってもいいのですが、referer も100%取れる訳ではありません。
SSL_SECURE_RENEG の true を取るのがこの場合ベストなんですかねぇ…

if(index($ENV{'SSL_SECURE_RENEG'},'true') > -1){
	$refreshurl = 'https://' . $ENV{'SERVER_NAME'} . $uri . $refreshurl;
}
else {
	$refreshurl = 'http://' . $ENV{'SERVER_NAME'} . $uri . $refreshurl;
}

一応これで動作するようです。
とはいえ、自分はプログラマでは無いのでおかしな挙動をするかも知れません。
ご利用の際には自己責任にて宜しくお願い致します。
当方はトラブル・障害に対して一切関知致しません。

CentOS 5 + libmemcached でエラー

水曜日, 10月 3, 2012 16:44
Posted in category Linux,freebsd

libmemcached を CentOS 5.7 に導入しようとして、最新版の libmemcached 1.0.11 を導入しようとしたら、こんなエラーが表示されました。

make[1]: ディレクトリ `/usr/local/src/libmemcached-1.0.10' に入ります
  CXX    libmemcached/csl/libmemcached_libmemcached_la-context.lo
In file included from ./libmemcached/common.h:72,
                 from ./libmemcached/csl/common.h:40,
                 from libmemcached/csl/context.cc:38:
./libmemcached-1.0/memcached.h:46:27: error: tr1/cinttypes: No such file or directory
make[1]: *** [libmemcached/csl/libmemcached_libmemcached_la-context.lo] エラー 1
make[1]: ディレクトリ `/usr/local/src/libmemcached-1.0.10' から出ます
make: *** [all] エラー 2

どうやら CentOS の gcc のバージョンが古いようでコンパイルできないようです。
対策方法は2つ。
古いgccでもコンパイルが通る libmemcached まで落とす(1.0.4)か、gccのバージョンアップ。

yum install gcc44 gcc44-c++ libstdc++44-devel

上記で解消されます。