Comando exec() para executar aquivo .sh shell

1. Comando exec() para executar aquivo .sh shell

Matheus Resende Faria
teteuvec

(usa Ubuntu)

Enviado em 24/08/2014 - 21:04h

Olá a todos,

Minha necessidade é a seguinte, tenho um formulário que ao ser submetido dá imput a um arquivo chamado new_db_erp.php que precisa executar um arquivo .sh
Abaixo o código do arquivo que dará o imput e do arquivo new_db_erp.php responsável por executar o arquivo:

Arquivo imput:
<form name="form1" method="post" action="operations/new_db_erp.php">
<table width="100%" border="1">
<tr>
<td colspan="2" align="center">Teste</td>
</tr>
<tr>
<td align="center" valign="middle"><input type="text" name="new_dbname" id="new_dbname"></td>
<td>.erp.linked.com.br</td>
</tr>
<tr>
<td align="right" valign="middle"><label for="new_dbname"></label> e-mail:</td>
<td><input name="email_db" type="text" id="email_db"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="send" id="send" value="Criar"></td>
</tr>
</table>
</form>


Arquivo new_db_erp.php:
<?
$new_dbname=$_POST['new_dbname'];
$email_db=$_POST['email_db'];
echo 'CRIANDO...';
shell_exec('operations/new_db.sh');
mail("$email_db", "xxx", "Seu login é:\Login: x\Senha: x\ Você deve alterar o login e senha padrão para maior segurança.");
echo 'Criado com sucesso! Login e senha enviados para seu e-mail!';
sleep(2);
?>
<html>
<head>
<META HTTP-EQUIV="REFRESH" CONTENT="60; URL=linked.ddns.net/?db=<? $new_dbname?>" target="_blank">
</head>
</html>


O problema é que o arquivo operations/new_db.sh não está sendo executado.
Agradeço por antecipação ...


  


2. comando

CASSIO FERRAZ
cassio88

(usa Ubuntu)

Enviado em 25/08/2014 - 06:17h

oi,

1) tenta dessa forma:
shell_exec('sudo /local/exato/do/seu/arquivo.sh');
2) caso não consiga edite o arquivo /etc/sudoers e comente a linha que tem "Defaults requiretty"
3) aparece a seguinte mensagem: "Warning: SAFE MODE Restriction in effect. "? olha o link abaixo:
http://br2.php.net/manual/pt_BR/ini.sect.safe-mode.php
4) aparece a seguinte mensagem: Warning: open_basedir restriction in effect."? olha o link abaixo:
http://br2.php.net/manual/pt_BR/ini.sect.safe-mode.php

Espero ter ajudado




3. Re: Comando exec() para executar aquivo .sh shell

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 25/08/2014 - 06:55h

O arquivo tem permissão de execução?

chmod +x arquivo.sh

Verifique se o caminho operations/new_db_erp.php está na mesma pasta que o formulário.
E se o arquivo new_db.sh estiver na mesma pasta do new_db_erp.php, deveria ser chamado apenas new_db.sh e não operations/new_db.sh






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts