【问题标题】:OS X, Perl CGI environment [closed]OS X,Perl CGI 环境
【发布时间】:2013-01-01 00:07:43
【问题描述】:

在 OS X Snow Leopard 上,我使用 perlbrew 运行默认的 Apache。

我的 PATH 指向 perlbrew perl,所以我希望 /usr/bin/env perl 做同样的事情,它从 bash 做,但不是通过 cgi 脚本,这似乎使用系统 perl。

如何让 Apache 使用 perlbrew perl?

更新

这个问题在 StackOverflow 上有回答:$PATH environment variable for apache2 on mac

有趣的是,PHP 人认为这是一个有效的问题,但 Perl 人却不这样认为。如果 Perl 人员花几秒钟时间来说明他们为什么认为这个问题与常见问题解答中描述的编程和问题无关,会很有帮助。

【问题讨论】:

  • 我认为 Apache CGI 脚本的 shebang 行与常见问题解答中定义的软件开发相关。

标签: macos perl apache cgi environment-variables


【解决方案1】:

当您运行/usr/bin/env perl 时,它会在您的$PATH 环境变量中的某处找到perl...这是在您的一个点文件中设置的(可能是.bash_profile.bashrc)。

当 Apache 启动时,它通常由 launchd 启动,并且不会从您的 shell 初始化脚本中接收任何环境设置服务。您需要修改启动 Apache 的脚本以将必要的目录添加到 $PATH,或者修改您的 CGI 脚本以直接调用适当的 perl 二进制文件(使用 #!/path/to/my/perl 而不是 #!/usr/bin/env perl)。

【讨论】:

  • 当 apache 从我的开发 shell 以 /usr/sbin/httpd -k start 启动时会发生这种情况。我不能使用显式路径,因为实时机器和其他开发人员设置目前数量未知。
  • 您可以在 Apache 配置中使用 SetEnv 指令来设置 $PATH
  • 可以,但我还是想知道为什么会这样。
猜你喜欢
  • 1970-01-01
  • 2010-10-10
  • 2012-03-10
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多