CentOS5でperl backend(slapd-perl)を使う
CentOS5にバンドルされている
openldapはslapd-perlがdisableでコンパイルされているので
perl backendのdatabaseが使えない
srpmでSPECファイルをenable-perlにしてビルドすると
ライブラリのリンクのところでPerl関連のエラーがでてNG
普通にmakeしてもコンパイルできるのに
おかしいとおもっていたらrpmは変なパッチがあたっていた
コメントアウトするとビルドできた
@@ -234,7 +234,7 @@ %patch3 -p1 -b .setugid %patch4 -p1 -b .pie %patch5 -p1 -b .toollinks -%patch6 -p1 -b .nosql +#%patch6 -p1 -b .nosql %patch7 -p1 -b .gethostbyname_r %patch8 -p1 -b .sasl %patch9 -p1 -b .timeout @@ -461,7 +461,7 @@ --enable-null \ --enable-shell \ --enable-sql=mod \ - --disable-perl \ + --enable-perl \ --disable-shared \ --disable-dynamic \ --enable-static \
追記:へんなパッチは具体的には
SLAPD_LIBS=$(LDBM_LIBS)
になってて
ほんらいは
SLAPD_PERL_LDFLAGS
とかいろんなバックエンド用のライブラリをすべて含むになっていた
MewからIMAPでGmailに過去メールをアップロードする
http://www.naney.org/diki/d/2008-01-09-Gmail.html
ローカルにあるメールは li コマンド(あるフォルダのメッセージを IMAP のフォルダへコピー) や mli コマンド (* の付いた複数のメッセージを IMAP フォルダへコピー) できる。
DokuwikiでjQueryが標準で使えるようになった
以前からwikiサイトは
ja:dokuwiki [DokuWiki]
をつかっていて
- DB不要
- URLをシンプルにできる(当時は短縮URLサービスもなかった)
なところがよくてちょっとしたマニュアルにつかっていたが
AnguaバージョンよりjQueryが標準で使えるようになったみたいで
devel:jqueryfaq [DokuWiki]
さっそく使ってみた
一番の注意点は$()ではなくjQuery()とすること
詳細はドキュメントを読むとして
JavaScriptは
ja:devel:javascript [DokuWiki]
にあるように
lib/tpl/default/script.js
に書いた
minifyされるのでセミコロンを忘れずに
ロードバランサ配下などでShibbolethを動かすときApache-2.0
ロードバランサというよりSSLアクセラレータの下で
Shibbolethを動かすとき
https://www.gakunin.jp/ml-archives/upki-fed/msg00390.html
にあるように
ServerName https://www.example.net:443 UseCanonicalName On
にしますが
Apache-2.0だとServerNameにこの書き方がエラーになります
この場合
ServerName www.example.net:443 ShibURLScheme https UseCanonicalName On
にしてあげるとよいです
Amon2でJSONPを使うとき
マニュアルどおりなんですが
http://amon.64p.org/output.html#json
具体的には
app.psgi
enable 'Plack::Middleware::JSONP';
Web.pm
__PACKAGE__->load_plugins(
...,
'Web::JSON',
);
Web/Dispatcher.pm
any '/' => sub { my ($c) = @_; my $data = Hogehoge->get_data($c); if (defined $c->req->param('type') && $c->req->param('type') eq 'json'){ return $c->render_json($data); } else { return $c->render('index.tt' => {data => $data}); } };
js(jquery)
$.ajax({ type: 'GET', url: 'http://www.example.net/?type=json&callback=?', dataType: 'jsonp', success: ... });
あと
render_jsonに渡すのはUTF8フラグをつけてから
perlのJSONの注意点
http://www.donzoko.net/cgi-bin/tdiary/20100406.html#p01
http://search.cpan.org/dist/JSON/lib/JSON.pm#HOW_DO_I_DECODE_A_DATA_FROM_OUTER_AND_ENCODE_TO_OUTER
Net::Google::Calendarでハマったこと
perlでNet::Google::Calendarを使うとき
401 Authorization required
と言われるのは
Cypt::SSLeayがないから
http://perl.g.hatena.ne.jp/ishiduca/20100504/1272948725
んで
Crypt::SSLeayのテスト01-connect.tがこけるのは
# Failed test 'Net::SSL->new' # at t/01-connect.t line
LANGがCじゃないから
http://smokycat.info/perl/240
それでもまだ401が返るので
http://www.cd.info.hiroshima-cu.ac.jp/~ichihara/wordpress/2009/07/29/netgooglecalendar/
にあるように
print $@;
すると
LWP will support https URLs if the LWP::Protocol::https module is installed.
っていわれるのでそれもインストール
あとcronで動かすときはPATHやhttp_proxyをわすれるな
PATH=/home/.../perl5/perlbrew/perls/perl-5.16.0/bin:/home/.../script:/usr/local/bin:/usr/bin:/bin http_proxy=http://proxy.example.net:8080 LANG=C 0 9 * * * get_gcal.pl
疲れるorz
Fedora17でsshdで新規ポートを開ける際のSELinuxの設定
Fedora17にアップデートして
sshdで新規ポートを追加であげたとき
---sshd.config--- Port 22 Port 10022 -----------------
単純に職場のDMZから職場のプライベートなネットワークへは
ハイポートしか許可されてないからなのだけど
こんなことすると本末転倒なのはとりあえず横において
% sudo systemctl restart sshd.service
とするとSELinuxが
type=AVC msg=audit(1339132675.450:303): avc: denied { name_bind } for pid=20291 comm="sshd" src=10022 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:unreserved_port_t:s0 tclass=tcp_socket
と怒る
ところがSELinux Alert Browserとかが自動で立ち上がり
you need to modify the port type. # semanage port -a -t PORT_TYPE -p tcp 10022 ここで、PORT_TYPE は 以下の1つとなります: xserver_port_t,ssh_port_t
なーんていうから
% sudo semanage port -a -t ssh_port_t -p tcp 10022
とすると無事新しいポートでも起動できた
便利だねー