smartyでin_array

2011/01/31 | Smarty

せっかくsmartyを使うんだから、極力テンプレートにはロジックを記述したくない。しかしifやforeachなどの構文はどうしても必要になってくる。今回if構文内で配列内に値が存在するかどうかをチェックしたかったのだが・・・。

{if in_array($value,$myArray)}

こんな記述はできない。だったsmartyはPHPで記述されているが、PHPではないからだ。さてどう記述するか。

{if $value|in_array:$myArray}

修飾子を使えばよかったのか。勉強になりました。

postfixの設定

2011/01/30 | メール

postfixの設定で、設定変更したら必ず以下のコマンドで設定を再読込。

/etc/rc.d/init.d/postfix reload

/etc/aliasesの記述を変更したら、以下のコマンド。

newaliases

/etc/postfix/virtual他のファイルの記述を変更したら、以下のコマンド。

postmap /path/to/file

postfixで.forward

2011/01/27 | メール

最近は、昔やっていたことを思い出せないことが多い。普段使わないと忘れてしまうのは当たり前の話なのだが、やっぱり年のせいだろうか。

postfixで.forwardを使ってプログラムにパイプするときの記述方法をメモ。

|”/usr/bin/php /path/to/script.php”

コマンドをダブルクォーテーションで囲んでおく。これで動かない場合は、こんな原因が考えられる。

  • そもそもスクリプトがパースエラー
    事前にパースエラーがないよう十分なチェックが必要
  • そもそも指定ユーザにメールが届いていない
    いくらスクリプトが正しく記述されていても、当該ユーザに対してメールが送信されていなければ・・・。
  • そもそもメールサーバの指定が間違っている
    外部から送信されたメールが受け取れない、とかではお話にならない。
  • そもそもメールが受け付けられていない
    ファイヤーウォールやiptables等の設定でメールが受け取れない設定になっている。

ま、いろいろあるわな。

innoDBが使えない?

2011/01/13 | MySQL

CentOS5.5の環境でMySQLを使っているとき、phpMyAdminを使ってテーブルをinnoDBにしようと思ったら・・・。あれ、できない、なんで。

たしかinnoDBはMySQL5から使えるようになったから大丈夫なはずなのに。いちおうMySQLのバージョンを確認してみると5.0.77。大丈夫なはずだよね。

とりあえず調べてみた。しかし情報が意外と少ない。そもそもこんなことで誰も悩まないのか、それともみんなあきらめがいいのか。

こちらのブログにひとつの方法が書いてあった。CentOS5.4でMySQL5.1ということでうちとは少し違うけど。my.cnfに2行ほど書き加えて、innoDBを使えるようにするというものだった。どうもその記述方法をみるとinnoDBがプラグインで動作しているような・・・。そんなんだったかなぁ。って調べてみたら5.1からプラグインがどうこうという情報がたくさんある。どうやら自分のところの5.0とは関係の無い話らしい。

しょうがないのでmy.cnfを確認。そして現時点でinnoDBを使えているサーバのmy.cnfも確認。そこに決定的な違いがあった。

skip-innodb

innoDBが使えない方のサーバの設定ファイルにはこんな記述が。なんじゃそりゃ。これは意図的にサーバ会社がこんなふうに設定していたのだろうか。よくわからない。

とりあえず使えている方のサーバには記述がないので、いったんmysqlを停止し、上記の行をコメントアウトしてmysqlを再起動。これで無事innoDBが使えるようになった(ように見えるだけかもしれないけれど)。

よかった。

chkconfig –list でpostfixが見つからない

すごく嫌なのだが、またサーバの設定をすることになった。

以前(といっても10年前の話だけど)は、ネットワーク屋さんではSMTPといえばqmailが流行だったように思う(主流はもちろんsendmailだったけど設定の難解さやセキュリティ問題等で避けられることが多かった)。

今はpostfixを使っている人が多いのではないだろうか。かくいう自分もpostfix。設定が簡単だし、デフォルトのyumリポジトリで簡単に管理できるからだ(OSはCentOS)。

今日、新たに借りたVPSの設定をしていて、起動時の設定を確認してみて少しあわてた。postfix自体はインストールされているのだがchkconfigの中にpostfixが見つからないのだ。ん~。何か理由があったような気がするけど、数年に1度しか設定しないのでわからない・・・。

とりあえずpostfixをいったんアンインストールし、再度インストール。しかしそれでも状況は変わらない。とよく確認してみると、chkconfigのリストの中にsendmailがある。あー、これかも。yumでsendmailをアンインストールして再度chkconfigで確認。ありました、ありました(というか現れました)。見つかりました、postfixが。

どちらも25番ポートを使うわけで、両方起動するようになっていると問題が起きるから、うまく制御されていたわけか。

あー、でも別ポートでそれぞれ起動させたい場合はどうなるんだろう、という疑問があったけど、自分はそういう使い方はしないので、これでヨシとした。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net