2013-08-05 94 views
1

我需要在我的Mac上设置一个环境变量,以便Apache运行时,PHP/PDO加载pdo_informix驱动程序,它知道Informix主目录的位置。我真的已经厌倦了一切!在Mac上为apache设置环境变量时遇到麻烦

/usr/sbin目录/ envvars中我已经加入:出口INFORMIXDIR = /应用/ 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 /应用/ IBM/Informix的

全部无济于事。

我已经添加了一个PassEnv行到apache全局配置。但是,当我重新启动该服务,我看到:

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

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

回答

2

我希望没有人浪费时间看着这个问题。我被前任设置了一个别名apachectl in /etc/bashrc

原来我并没有执行/usr/sbin目录/的apachectl但是,相反,/选择/本地/ Apache2的/斌/的apachectl

这个脚本进口/选择/本地/ Apache2的/ bin/envvars而不是/usr/sbin/envvars。它也不使用launchctl ...解释了为什么我的设置环境的步骤都不起作用。一旦发现,我可以立即开始工作。

对不起,你已经困扰了你。