【问题标题】:Having trouble setting an environment variable for apache on Mac在 Mac 上为 apache 设置环境变量时遇到问题
【发布时间】:2013-08-05 12:44:50
【问题描述】:

我需要在我的 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.' ...

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

【问题讨论】:

    标签: macos apache environment


    【解决方案1】:

    我希望没有人浪费时间研究这个问题。我被一位前辈抓住了,他在 /etc/bashrc 中为 apachectl 设置了别名!

    原来我没有执行 /usr/sbin/apachectl 而是执行 /opt/local/apache2/bin/apachectl

    此脚本导入 /opt/local/apache2/bin/envvars 而不是 /usr/sbin/envvars。它也不使用 launchctl... 这解释了为什么我设置环境的步骤都不起作用。一旦发现,我就立即开始工作。

    很抱歉给大家带来了困扰。

    【讨论】:

      猜你喜欢
      • 2014-05-20
      • 2020-11-12
      • 2018-08-03
      • 1970-01-01
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      相关资源
      最近更新 更多