PHP+Oracle コマンドラインで環境変数を読み込む

2012.06.01.金
挨拶・自己紹介

矢野です。

数年前になりますが、「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のパスは環境に合わせて変更してください。