OSX - 如何将$ PATH添加到Xampp PHP

时间:2017-11-21 08:55:05

标签: php macos unix path xampp

在我的PHP文件中,我运行了var maxDate = new Date("9999-12-31"); var rowKeyValue = (maxDate.getTime() - (new Date()).getTime()).toString(); var task = { PartitionKey: entGen.String('ConfigData'), RowKey: rowKeyValue, DeviceId: entGen.String(req.body.devId), }; 并获得了var_dump(exec('echo $PATH')); 然后我在终端中运行了/usr/bin:/bin:/usr/sbin:/sbin,我得到了echo $PATH

如何将$ PATH变量添加到Xampp?

1 个答案:

答案 0 :(得分:0)

您的$PATH代表系统已经知道的文件夹,可以直接访问内容。就是这样。这是一个系统级的东西,而不是PHP的东西,但$PATH中的任何内容都已经可供PHP使用。

您应该知道Mac OSX和Linux都在UNIX命令行上运行,并且两者的工作方式完全相同。

比如说我有一个目录,如:

/usr/local/foobar

我想用foobar来表达某些东西。如果它不在我的$PATH中,那么我必须使用

访问它

/usr/local/foobar

如果它在我的$PATH中,那么我可以使用

访问它

foobar

$PATH:分隔,所以如果我的$PATH/usr/local:/usr/bin,那么我有两个系统自动知道的文件夹:

  • 的/ usr /本地
  • 的/ usr / bin中

其中的任何内容都可以直接访问。

如果我想在PHP中列出它们,我会使用以下内容来获取文件夹列表:

$path = explode(':', `echo $PATH`);

在命令行中,您只需执行echo $PATH

如果您需要向其添加新文件夹,您可以(从命令行)执行以下操作:

export $PATH=$PATH:/path/to/new/folder

export $PATH=/path/to/new/folder:$PATH

如果我希望新文件夹位于结果的末尾,我会使用第一个,如果我用其他我希望它使用的东西覆盖其中的现有值,就会出现这种情况。如果我希望将新文件夹放在列表的开头,我会使用第二个选项。

请勿忘记预先或以$PATH为新价值加密,否则您将失去一切已经并且可能会将您的系统归咎于您的系统

如果您向$PATH添加内容,则还需要获取.bashrc文件以告知系统重新加载路径并了解更改,如下所示:

source ~/.bashrc

您的路径不同的原因是,从命令行,您看到您的用户$PATH,并且从脚本中,您正在看} 用户在下运行网络服务器。要解决此问题,您有两种选择:

  • 以您的用户运行网络服务器(出于安全考虑,这是一个糟糕的主意,所以我不打算解释如何执行此操作)
  • 编辑网络服务器在下运行的用户的.bashrc(这是一个更好的选择)

首先,在您的脚本中,您想要

$PATH

这将告诉您网络服务器正在运行的用户。

然后,您可以使用echo `whoami`; (使用上述命令中的值代替sudo su webservername),然后使用上面的webservernameexport $PATH=...来修复根据需要使用网络服务器帐户的路径,然后source ~/.bashrc返回到您自己的帐户,或者只关闭shell窗口。然后返回到您的脚本并执行

exit

并且您应该看到正确的值(除了您自己不在var_dump( explode(':', `echo $PATH`) ); 之外的其他任何文件夹)。

您也可以通过

使用vim或vi来完成此任务
$PATH

并在该文件中每行放置一个文件夹,然后保存并关闭,并像往常一样重新加载vi ~/.bashrc 。如果您不熟悉vim,请改用source ~/.bashrc方法。