在Mac上为apache设置环境变量时遇到问题

时间:2013-08-05 12:44:51

标签: macos apache environment

我需要在我的Mac上设置一个环境变量,这样当Apache运行时,PHP / PDO加载pdo_informix驱动程序时,它就知道Informix Home目录的位置。我真的厌倦了一切!

/ usr / sbin / envvars 中我添加了:导出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页面时,驱动程序加载但是抱怨,因为它无法确定数据库区域设置。错误讯息:

[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.' ...

谁能告诉我我错过了什么?

1 个答案:

答案 0 :(得分:2)

我希望没有人浪费时间看这个问题。我被一位在 / etc / bashrc 中为 apachectl 设置别名的前任所感染了!

事实证明我没有执行 / usr / sbin / apachectl ,而是 / opt / local / apache2 / bin / apachectl

此脚本导入 / opt / local / apache2 / bin / envvars ,而不是 / usr / sbin / envvars 。它也没有使用 launchctl ...解释了为什么我的设置环境的步骤都没有用。一旦发现,我就可以直接使用它。

很抱歉打扰了你们所有人。