我有一个关于在AMPPS中为PHP脚本设置“$ PATH”变量的问题 (在OSX 10.10 Yosemite上)。
AMPPS中的PHP似乎以我的用户“danny”运行,但它看到的是$ PATH 是不同的。这是我在终端上看到的内容: Dannys-MacBook-Air:AMPPS danny $ echo $ PATH; 的/ usr / local / bin中:在/ usr / bin中:/ bin中:/ usr / sbin目录:/ sbin目录
这是我通过打印$ _ENV在PHP脚本中得到的: [ “PATH”] => string(29)“/ usr / bin:/ bin:/ usr / sbin:/ sbin”[“USER”] =>串(5) “丹尼”
我试过做“putenv()”,尝试用不同的$ PATH做“shell_exec”, 我尝试在.htaccess和Apache配置文件中执行SetEnv。我试过了 编辑系统范围的/etc/.bashrc和我的用户〜/ .bash_profile。也不 到目前为止帮助。
我需要的是将/ usr / local / bin作为$ PATH的一部分。
答案 0 :(得分:0)
我不知道它是否可能,但我想知道为什么你需要这个,即你真的需要改变你的PATH env变量吗?或者仅使用this function并仅为创建的进程设置变量就足够了吗?
答案 1 :(得分:0)
您可以设置 Apache服务器以使用凭据运行,并最终解决 $ PATH 问题。
但是,你也可以这样做,它应该有效:
<?php
putenv('PATH', getenv('PATH') . ';/usr/local/bin');
var_dump(getenv('PATH'));
?>
$ PATH 的修改仍然仅在 PHP 执行的持续时间内可用,还有其他方法可以永久设置环境变量
希望有所帮助:)
答案 2 :(得分:0)
这可能不太受欢迎,但我一直在你的位置,并且已经接近将我的机器扔到房间试图在OSX中正确设置MAMP的PHP路径。
我开始使用Vagrant并从VM开发,并发现它更容易,特别是如果你想更改其他项目的语言。相信我,从长远来看,它将为您节省时间。
cd
进入puphpet目录并运行vagrant up
(可能需要一段时间!)初始设置需要花费一点时间,但要快速前进,并且很容易与他人共享环境。
干杯
编辑:我认为这是一个非常真实的未来解决方案,但是现在对我有用的是:export PATH=/usr/local/php5/bin:$PATH
到.bash_profile
在OSX优胜美地。我相信优胜美地的文件夹结构发生了变化。
答案 3 :(得分:0)
我知道这是一篇较旧的文章,但这对我有所帮助((使用Ampps而不是MAMP进行此操作,但它应该可以正常工作)
来自here
使用您的PHP二进制文件的路径(在终端中)创建一个变量
他们推荐
export AMPPS_PHP=/Applications/AMPPS/php/bin
我的是export AMPPS_PHP=/Applications/AMPPS/php-7.1/bin
然后就
export PATH="$AMPPS_PHP:$PATH"
使用which php
或php -v