调用perl脚本在PHP APACHE中不起作用

时间:2014-05-06 21:13:26

标签: php perl apache2 call

我有服务器端代码,以这种方式调用perl脚本

exec("perl /home/horus/Instaladores/variant_effect_predictor/variant_effect_predictor.pl --everything --offline -i ../users/$username/$project/results/remove_duplicated_lines/BED_filtered/qual/StrandBalance/dbSNP/SnpEff/$vcf -o ../users/$username/$project/results/remove_duplicated_lines/BED_filtered/qual/StrandBalance/dbSNP/SnpEff/VEP/$vcf --stats_file ../users/$username/$project/results/remove_duplicated_lines/BED_filtered/qual/StrandBalance/dbSNP/SnpEff/VEP/$vcf.html",$output);

我尝试使用exec,system和passthru时没有成功。

如果我在exec之前做了一个echo,那么所有的变量都是相应的设置

如果我在Linux控制台中复制回显结果,使用php脚本所在文件夹中的www-data,一切都按预期工作

我在sudoers文件中有perl和variant_effect_predictor.pl脚本

www-data ALL =(ALL)NOPASSWD:/ usr / bin / perl www-data ALL =(ALL)NOPASSWD:/home/horus/Instaladores/variant_effect_predictor/variant_effect_predictor.pl

有什么想法吗?为什么php没有调用脚本?

1 个答案:

答案 0 :(得分:0)

第一步。看看你是否可以从该位置运行hello world perl脚本。

use strict;
use warnings;

print "Hello World\n";

如果你能让它正常工作,那么我怀疑问题是你作为参数发送的相对路径。尝试将它们设置为绝对路径,看看是否有帮助。