Sto provando a eseguire uno script semplice Bash Script
da PHP
. Raccolgo i dati da una pagina di front end HTML5
, passano attraverso ajax
allo script PHP, prendono le variabili e poi, passare questi allo script .sh
, ma ho i messaggi come:Impossibile eseguire script Bash da PHP
./test_bash.sh: line 13: ./test.txt: Permission denied
Ho provato a cambiare le autorizzazioni chmod 777 test_bash.sh
, hanno provato a modificare il file sudoers.d
, provato con questo: shell_exec("echo password_for_the_user | sudo -S command_to_execute");
... ma lo Bash script
non può scrivere il file test.txt
.
Ecco il mio codice di base, in primo luogo il PHP code
:
<?php
$var1 = json_decode($_POST['var1']); //from front-end html5
$var2 = json_decode($_POST['var2']);
$var3 = json_decode($_POST['var3']);
$response = shell_exec("./test_bash.sh $var1 $var2 $var3 2>&1");
echo "$response";
?>
In secondo luogo, il codice Bash
:
#!/bin/bash
var1=$1;
var2=$2;
var3=$3;
echo "$var1";
echo "$var2";
echo "$var3";
echo $var1 $var2 $var3 > ./test.txt
Funziona se si dice "echo $ var1 $ var2 $ var3>/tmp/test.txt'? Sembra che tu non possa scrivere nella directory dove è 'test.txt'. – fedorqui
Sì, ora funziona. Grazie! – Sergi