Por que esse script php não executa o script bash?

1

Por que não consigo executar este script bash usando php? Eu tentei exec() , bem como shell_exec() .

index.php

<?php
$old = getcwd();
echo $old;
chdir($old);
$message=exec("a.sh");
print_r($message);
?>

a.sh

#!bin/bash
echo "i am a" > /opt/lampp/htdocs/a.txt
echo "Done"

Eu tentei chdir conforme sugerido aqui, assim como verifiquei meu disable_functions em php.ini , ele não tem nada. Também verifiquei outras questões, mas nenhuma parece resolver o meu problema.

    
por Optimus Prime 05.09.2014 / 19:12

1 resposta

2

Primeiro, certifique-se de que o shebang é exatamente o seguinte:

#!/bin/bash

Segundo, certifique-se de que o script é executável usando o seguinte comando no terminal:

chmod +x /path/to/a.sh

E terceiro, você deve usar o caminho completo para o script bash ou, no seu caso, você pode usar:

$message=exec("$old/a.sh");

E, como nota à parte, os dois comandos seguintes do seu script php não fazem sentido:

$old = getcwd();
chdir($old);

Eles são equivalentes a chdir(getcwd()) , que mudam o diretório atual para ... o diretório atual, então, de fato, nada acontece.

    
por Radu Rădeanu 05.09.2014 / 19:38