矢野です。
数年前になりますが、「Postfixを使って受信メールでPHPを動かす」のスタッフの投稿ですが、受信したメールの内容をデータベース登録しようとしたのですが、Oracleへ接続できずハマってしまいました。
原因はコマンドラインからPHPを実行すると環境変数を読み込んでやらないと駄目でした。
ってことで環境変数を読み込む場合はシェルスクリプト作成しPHPを実行するようにします。以下はスタッフさんが作成してくれてたスクリプトですが、せっかくなので公開しておきます。
/etc/aliasesの設定
php: "|/var/www/mail_exec.sh > /dev/null 2>&1"
/var/www/mail_exec.shで環境変数を読み込みます
#!/bin/sh BINDIR=<code>dirname $0</code> cd $BINDIR #環境変数設定ファイル ENVVARS=/usr/local/apache2/bin/envvars . $ENVVARS /usr/bin/php -d register_argc_argv=on -q $BINDIR/mail-exec.php $@
envvarsやPHPのパスは環境に合わせて変更してください。