我有服务器端代码,以这种方式调用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没有调用脚本?
答案 0 :(得分:0)
第一步。看看你是否可以从该位置运行hello world perl脚本。
use strict;
use warnings;
print "Hello World\n";
如果你能让它正常工作,那么我怀疑问题是你作为参数发送的相对路径。尝试将它们设置为绝对路径,看看是否有帮助。