2012-08-30 29 views
3

您好我有這樣的Groovy腳本(在$ FRAPID_HOME/bin),然後我想它調用的Drupal:執行我自己的Groovy腳本在PHP

#!/usr/bin/env groovy 

def cli = new CliBuilder(usage: 'frapid-generate-keys projectPath') 
def opt = cli.parse(args) 

if (opt.h || opt.arguments().isEmpty()) { 
    cli.usage() 
    return 
} 

def path = "." 

println("Generating keys...") 
def frapid = new Frapid() 
println '---->' + opt.arguments()[0] 
println("Keys genarated") 
~    

PHP代碼是這樣的:

function api_manager_generate_keys_form_submit($form, &$form_state) { 

    $output = shell_exec('frapid-generate-keys '. $form_state['values']['api_manager_project_root']); 

    drupal_set_message($output); 

} 

我的.bashrc的配置是這樣的:

export FRAPID_HOME=/home/admin1/frapid 
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 
export GROOVY_HOME=/home/admin1/groovy-2.0.1 

export CLASSPATH=$FRAPID_HOME/classes:$CLASSPATH 
export PATH=$JAVA_HOME/bin:$PATH 
export PATH=$GROOVY_HOME/bin:$PATH 

當我試圖在Drupal apache的執行給了我這個錯誤:

sh: 1: frapi-generate-keys: not found 

然後我試圖給的絕對路徑:

$output = shell_exec('/home/admin1/frapid/bin/frapid-generate-keys '. $form_state['values']['api_manager_project_root']); 

但仍然是錯誤的:

/usr/bin/env: groovy: No such file or directory 
+0

您是否嘗試過從命令行手動執行腳本? – vector

+0

從命令行運行良好 – Antonio

+0

網絡服務器用戶是否有權限訪問該文件夾? – Clive

回答

0

好吧...阿帕奇對PATH變量不同的文件配置。 對於Ubuntu的文件是/ etc/apache2/envvars,在這裏我們可以'導出'我們的變量