mb_send_mail

Fedora 6 でPHPを動かしていて、mbstringがインストールされていないとmb_send_mailが使えないようだったので、インストールしました。インストールだけでは反映されないため、httpd を再起動したところ、使えるようになりました。


yum install php-pecl-mailparse php-mbstring
service httpd restart

例のごとく、SELinux関係でいろいろとエラーがでたのでaudit2allowコマンドを使って対応しました。一応メールはローカルで出せるようになりましたが、日本語については、うまくいっているのかよくわかりません。この先は、Postfix, dovecot などがきちんと動作している環境で確認するのが良さそうです。


<?php
mb_language('Japanese');
mb_send_mail(
  'foo@localhost',
  '日本語サブジェクト',
  '日本語本文',
  'From:info@localhost'
);
?>

PHPでは、ライブラリが動作すれば、メールの送信自体はそれほど大した話ではないのですが、SELinuxが入ってくると面倒になります。といいつつ、実際のところでは、PHPはライブラリとの整合性もかなり問題で、どのバージョンのPHPを使うかによって、ライブラリが動作するところまでが大変だったりします。こういったあたりで、プログラムを調整しないといけないというのが、 悩むところです。

SSH Checker

SSHポートフォワードをしているのですが、よく切れるのでチェック用シェルスクリプトを作成しました。


$ cat sshfcheck.sh
#!/bin/sh
procname=ssh
procpath="/usr/local/tool/sshf.sh"
mail="root"

killall -0 $procname 2> /dev/null
if [ $? -ne 0 ]; then
  $procpath
  (date; echo $procname) | mail -s "ssh portforward process restart" $mail
fi

ps2pdf

ps2pdfコマンドを使って、PSファイルからPDFファイルを生成するWebアプリケーションをPHPで実装してみました。ファイルアップロード、PDFファイル生成、ダウンロード用リンクの表示、という単純なものですが、結構使えると思います。あとは、3日たったらアップロードされたPSファイル、PDFを削除するcronを走らせておけば完成です。一応、複数名が使う事を想定すると、ログイン名や時刻を使ったりしてファイル名が衝突しないようにする必要がありますが、そのあたりはもう少し時間がとれてから対応しようと思います。PHPは簡単にLinuxコマンドを呼び出せるので、その点では重宝するのですが、フレームワークがなかなかこれ、というのがないので、それなりのWebアプリにするのは、意外と時間がかかるような気が最近はしています。生産性が高いようで低いのではないだろうか、とさえ思ってしまいます。ちなみに、参考にした本は「PHP ポケットリファレンス」です。

サンプルコードをざっとみているだけなので、資料として良いのか悪いのかまでは把握していませんが、インターネット上でバージョンやら環境やらを断片的な資料だけで判断しながら試行錯誤するよりは、速くプログラムができます。PHPはバージョンごとの差や、環境(使用するDBなど)ごとの差が大きいような気がしますから、どれか一冊購入して、その環境で対応するというのが現実的な気がしています。とはいえ、rpmなどで提供されているものを使う場合は、どうしても環境に合わせてコードを用意するしかないので、そのあたりは難しいところです。

ところで、今回はFedora 6 を使ったのですが、SELinux周りで若干はまりました。アクセス権まわりはすぐに忘れてしまっていけません。とりあえず checkpolicy とか setool をインストールして、それらに付属しているコマンドやツールを使って対処しました。日頃から慣れておかないと、実際にSELinuxベースで稼働させているサーバを管理するときに大変だからなのですが、やはり面倒くさいですね、SELinux。毎回、うまくいかないたびに、コマンドを確認して作業をしています。

その際に役に立っているのは、「Fedora7で作るネットワークサーバ構築ガイド」です。Fedora 7 ですが、Fedora系では同じなので、有用です。SELinuxについて、それほど詳しく書いてあるわけではありませんが、運用するにあたって最低限知っておくべき点は押さえられているので、重宝しています。

Mouse

マウスが壊れたので修理に出してあったのですが、新品と交換で返ってきました。同じ症状が出たらどうしようとおもっていたりするのですが、とりあえずはこれで使って様子をみようと思います。

Java Book

執筆した書籍がAmazonに登録されたようです。

2/29発売予定です。オーソドックスな内容でありつつ、BeanShellを使っていたり、デザインパターンを意識したコードとなっていたりと、チャレンジしています。基本を理解してもらうという視点から、初心者にとっても、経験者にとってもサンプルは面白いと思うのですが、基礎体力をつけるみたいなところがあるので、立ち読みとかしたときには難しそうだと勘違いされてしまうかもしれません。

Mac

やはり、そろそろ新しいMacが欲しいのですが、先立つ物をなんとかしたいところ。Airがいいか、MacBookがいいか、は微妙なところです。

カテゴリー: Mac

Tokyo

東京。密度の濃いミーティングをいくつか。かなり充実した一日でした。