1

Mac で環境変数を設定する必要があるため、Apache が実行され、PHP/PDO が pdo_informix ドライバーをロードすると、Informix ホーム ディレクトリの場所が認識されます。そして、私は本当にすべてに疲れました!

/usr/sbin/envvarsに以下を追加しました: export INFORMIXDIR=/Applications/IBM/informix

/System/Library/LaunchDaemons/org.apache.httpd.plistに挿入しました:

<key>EnvironmentVariables</key>
<dict>
        <key>INFORMIXDIR</key>
        <string>/Applications/IBM/informix</string>
</dict>

私は試しました: launchctl setenv INFORMIXDIR /Applications/IBM/informix

すべて役に立たない。

Apacheグローバル設定にPassEnv行を追加しました。しかし、サービスを再起動すると、次のように表示されます。

root 589 ->apachectl restart 
[Mon Aug 05 13:35:16 2013] [warn] PassEnv variable INFORMIXDIR was undefined

テスト .php ページを実行すると、ドライバーはロードされますが、DB ロケールを判別できないため、エラーが発生します。エラーメッセージ:

[Mon Aug 05 12:56:23 2013] [error] [client ::1] PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE=HY000, SQLDriverConnect: -23101 [Informix][Informix ODBC Driver][Informix]Unspecified System Error =  -23101.' ...

誰かが私が見逃したことを教えてもらえますか?

4

1 に答える 1

2

この問題を見て時間を無駄にした人がいないことを願っています。/etc/bashrcにapachectlのエイリアスを設定した前任者に見つかりました!

/usr/sbin/apachectlを実行していたのではなく、代わりに/opt/local/apache2/bin/apachectlを実行していたことが判明しました

このスクリプトは/opt/local/apache2/bin/envvarsをインポートしますが、 /usr/sbin/envvarsはインポートしません。また、 launchctlも使用しません...環境を設定するための私の手順がどれもうまくいかなかった理由を説明しています。発見したら、すぐに機能するようになりました。

皆様にはご迷惑をおかけしました。

于 2013-08-06T05:31:23.340 に答える