Php LAMP环境变量出现故障($PATH)
我试图在bash脚本“test.sh”中执行这个shell命令Php LAMP环境变量出现故障($PATH),php,bash,apache,path,environment-variables,Php,Bash,Apache,Path,Environment Variables,我试图在bash脚本“test.sh”中执行这个shell命令 igblastn -query input.txt 2>&1 在这样的php文件中 <?php $string = "./test.sh"; $output = shell_exec($string); echo "<pre>$output</pre>; 但当我使用诸如“date”或“whoami”等更基本的命令时,它的输出就很好了。这使我相信,要么需要配置apach
igblastn -query input.txt 2>&1
在这样的php文件中
<?php
$string = "./test.sh";
$output = shell_exec($string);
echo "<pre>$output</pre>;
但当我使用诸如“date”或“whoami”等更基本的命令时,它的输出就很好了。这使我相信,要么需要配置apache web usr“www数据”的权限,要么我没有正确地路径到igblastn可执行文件。如果我去测试使www数据成为web服务器的超级用户,那么仍然会出现错误,因此我认为这不是权限问题,也不是路径问题。NCBI standalone blast的文档规定了$PATH变量的附件,并将另一个env变量引入与可执行文件位于同一文件夹中的数据库文件。目前,我已将路径位置添加到bin中,可执行文件作为对web服务器上/etc/environment中路径变量的添加而存储在该bin中,并添加了另一个环境变量,我还尝试将另一个环境变量添加到/etc/apache2/envars中,但我仍然无法执行。因此,我想知道是否有人确切地知道我应该在哪里创建额外的环境变量或为Apache指定路径 您的
$PATH
并不重要,因为前面的“/”
告诉您的操作系统在当前目录中查找该脚本。如果确实已将该路径添加到$path
中,则只需删除“/”
,否则,假设test.sh
与调用它的PHP脚本位于同一目录中,您就可以这样做
谢谢所有给我提建议的人。我决定从test.sh脚本运行“env”,并查看所有变量。从这一点上,我能够解释在/etc/apache2/envvars中设置所有变量确实是正确的方法,并且我在PATH变量中添加了一个附件,这是我的问题 您是否尝试过在命令行上执行命令?是否安装了最新版本?“未找到”命令表示未安装该命令(对所有用户?。@javidaceil PS,欢迎使用SO,当您选择答案时,您会得到前两分,因此如果这有帮助,请按我的答案打勾。如果你愿意,你也可以投票:)真不敢相信我错过了。好眼力
./test.sh: line 2: igblastn: command not found
$string = dirname(realpath(__FILE__))."/test.sh";
$output = shell_exec($string);