2012-06-20 23 views
9

Duplicar posibles:
Calling Perl script from PHP and passing in variables, while also using variablized perl script nameEjecutar Perl en PHP

Quiero ejecutar un script en perl través de PHP. Uso exec() para ejecutar el script de Perl. Funciona en mi máquina pero no funciona en el servidor. El servidor está basado en CentOS Linux.

Di permiso completo (777) para el archivo de script PHP y el de perl. Cuando trato de ejecutar, me sale el siguiente error en error_log

sh: /perl: No such file or directory 

Traté de ejecutar usando las siguientes formas

exec("perl -w Script.pl $username $password",$output); 
exec("/usr/bin/perl -w Script.pl $username $password",$output); 
exec("/usr/bin/perl Script.pl $username $password",$output); 

También probé utilizando la función system

$output = system("perl Script.pl $username $password"); 

Nada sucede cuando intento esto.

También probé para ejecutar Perl usando la función passthru()

passthru("/usr/bin/perl -w Script.pl $username $password",$output); 

Cuando ejecuto esta línea, $output impresiones 127 y no pasa nada en el guión.

Comprobé si el archivo es ejecutable o no con la función is_executable(). Muestra que el archivo no es ejecutable.

Código de la siguiente manera

$file = 'Script.pl'; 

if (is_executable($file)) 
{ 
    echo $file.' is executable'; 
} 
else 
{ 
    echo $file.' is not executable'; 
} 

Si ejecuto Perl a través del terminal, funciona bien pero cuando intento ejecutar a través de PHP, que no está funcionando.

+0

cambio '' ust' a usr' – k102

+0

@ K102 En este momento ya ... Me erróneamente escrito en este post .. –

+0

@Gordon Gracias por su enlace .. Todavía tengo los mismos problema .. –

Respuesta

6

Utilice la ruta completa para ejecutar el script.

exec("/usr/bin/perl /full/path/to/Script.pl $username $password",$output); 

Saludos,

+0

Ya lo intento ... No funciona. –

Cuestiones relacionadas