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 页面时,驱动程序加载但抱怨它无法确定数据库区域设置。错误信息:

[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 回答