我目前正在开发自己的小项目,但是我有一点问题:我想将$ PATH环境变量设置为./bin
,这样当我使用exec()
和类似函数时,它只会在该目录中搜索二进制文件(除非我明确告诉它)。
我已经尝试了putenv()
,除非我启用了安全模式,否则它将无法工作,我不愿意这样做;我也尝试了apache_setenv()
,但这似乎也没有用。
我可能想尝试其他任何解决方案吗?
(我使用的是带有PHP 5.3.2的Linux机器)
答案 0 :(得分:6)
如果您只想在特定情况下进行设置,可以执行以下操作:
exec("PATH=/my/path ./bin");
答案 1 :(得分:4)
此处描述了在Mac OS X上更改apache使用的PATH的方法: http://lists.apple.com/archives/macos-x-server/2008/Sep/msg00433.html
如该帖子所述:
[A]将以下文字输入[文件
/System/Library/LaunchDaemons/org.apache.httpd.plist
]在第五个 行:<key>EnvironmentVariables</key> <dict> <key>PATH</key> <string>/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin</ string> </dict>
有关语法的详细信息,请参阅
launchd.plist(5)
的手册页 在这里使用。如果您需要将PHP命令作为CLI会话运行,那么您也可以 可能需要在
/opt/local/bin
下添加/etc/paths.d
作为新路径 工作。例如,像这样:shell> sudo echo "/opt/local/bin" >> /etc/paths.d/macports
请参阅
path_helper(8)
的手册页。
答案 2 :(得分:2)
而不是将路径设置为bin
并调用foo
,为什么不直接调用bin/foo
?
答案 3 :(得分:0)
如果您为您的用户设置了路径,并且您的脚本是作为您的用户运行的,那么您应该做的只是为您的shell设置此路径,但是您的脚本是以ie运行的。用户可以使用apache用户(类似于debian的系统中的www-data),你应该为该用户设置此PATH