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について、それほど詳しく書いてあるわけではありませんが、運用するにあたって最低限知っておくべき点は押さえられているので、重宝しています。